Skip to content

Commit 6532f1a

Browse files
committed
Merge remote-tracking branch 'origin/develop'
2 parents 2517359 + 49dfd25 commit 6532f1a

File tree

1 file changed

+98
-63
lines changed

1 file changed

+98
-63
lines changed

README.md

Lines changed: 98 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ This is a FOSS project for asset management in IT Operations. Knowing who has wh
66

77
It is built on [Laravel 4.1](http://laravel.com) and uses the [Sentry 2](https://github.com/cartalyst/sentry) package.
88

9-
Many thanks to the [Laravel 4 starter site](https://github.com/brunogaspar/laravel4-starter-kit) for a quick start.
10-
119
This project is being actively developed (at what seems like breakneck speed sometimes!) We're still in alpha release, so this is NOT recommended for production use yet, as many more things will likely change before v1.0-stable is ready - but we're [releasing quite frequently](https://github.com/snipe/snipe-it/releases).
1210

11+
__This is web-based software__. This means there there is no executable file (aka no .exe files), and it must be run on a web server and accessed through a web browser. It runs on any Mac OSX, flavor of Linux, as well as Windows.
12+
1313
### Bug Reports & Feature Requests
1414

1515
Feel free to check out the [GitHub Issues for this project](https://github.com/snipe/snipe-it/issues) to open a bug report or see what open issues you can help with. Please search through existing issues (open and closed) to see if your question hasn't already been answered before opening a new issue.
@@ -24,14 +24,31 @@ To be notified of important news (such as new releases, security advisories, etc
2424

2525
-----
2626

27+
### Contents
28+
29+
- [Requirements](https://github.com/snipe/snipe-it#requirements)
30+
- [Important Notes on Updating](https://github.com/snipe/snipe-it#important-notes-on-updating)
31+
- [How to Install in Production](https://github.com/snipe/snipe-it#how-to-install-in-production)
32+
- [Downloading](https://github.com/snipe/snipe-it#1-downloading)
33+
- [Set Up Environment Database and Email Settings](https://github.com/snipe/snipe-it#2-setup-environment-database-and-mail-settings)
34+
- [Install Dependencies via Composer](https://github.com/snipe/snipe-it#3-install-the-dependencies-via-composer)
35+
- [Use Custom CLI Installer Command](https://github.com/snipe/snipe-it#4-use-custom-cli-installer-command)
36+
- [Fix Permissions](https://github.com/snipe/snipe-it#6-fix-permissions)
37+
- [Set the correct document root for your server](https://github.com/snipe/snipe-it#7-set-the-correct-document-root-for-your-server)
38+
- [Seed the Database](https://github.com/snipe/snipe-it#8-seed-the-database)
39+
- [Developing & Contributing](https://github.com/snipe/snipe-it#developing--contributing)
40+
- [Application Logs](https://github.com/snipe/snipe-it#application-logs)
41+
- [Running this on an EC2 Micro Instance](https://github.com/snipe/snipe-it#running-this-on-an-ec2-micro-instance)
42+
43+
-----
2744
## Requirements
2845

2946
- PHP 5.4 or later
3047
- MCrypt PHP Extension
3148

3249
-----
3350

34-
## Important Note on Updating
51+
## Important Notes on Updating
3552

3653
Whenever you pull down a new version from master or develop, when you grab the [latest official release](https://github.com/snipe/snipe-it/releases), make sure to run the following commands via command line:
3754

@@ -42,28 +59,30 @@ Forgetting to do this can mean your DB might end up out of sync with the new fil
4259

4360
-----
4461

45-
## How to Install
62+
## How to Install in Production
63+
64+
Bear in mind that Snipe-IT is still in pre-release. While it's generally pretty stable, installing this in a production environment is generally not recommended. We do our best to make sure future changes won't hoark your install, but you should always back up your databases when you upgrade to newer releases.
65+
66+
Note: Installation for Windows IIS [can be found here](https://gist.github.com/madd15/e48a9c4aaa4b14b6f69a) (thanks, [madd15](https://github.com/madd15)!)
4667

4768
### 1) Downloading
48-
#### 1.1) Clone the Repository
69+
#### Clone the Repository
4970

5071
git clone https://github.com/snipe/snipe-it your-folder
5172

52-
#### 1.2) Download the Repository
73+
or
74+
75+
#### Download the source from [https://github.com/snipe/snipe-it/archive/master.zip](https://github.com/snipe/snipe-it/archive/master.zip)
76+
5377

54-
https://github.com/snipe/snipe-it/archive/master.zip
5578

5679
-----
5780

5881
### 2) Setup Environment, Database and Mail Settings
5982

6083
#### 2.1) Adjust Environments
6184

62-
Update the file `boostrap/start.php` under the section `Detect The Application Environment`.
63-
64-
vi bootstrap/start.php
65-
66-
-----
85+
Update the file `bootstrap/start.php` under the section `Detect The Application Environment`.
6786

6887
__AS OF LARAVEL 4.1__
6988
Per the [Laravel 4.1 upgrade docs](http://laravel.com/docs/upgrade):
@@ -72,12 +91,11 @@ __*"For security reasons, URL domains may no longer be used to detect your appli
7291

7392
To find out your local machine's hostname, type `hostname` from a terminal prompt on the machine you're installing it on. The command-line response is that machine's hostname. Please note that the hostname is NOT always the same as the domain name.
7493

75-
So for example, if you're installing this locally on your Mac named SnipeMBP, the environmental variable section of `bootstrap/start.php` might look like this:
94+
So for example, if you're installing this on your server named www.yourserver.com, the environmental variable section of `bootstrap/start.php` might look like this:
7695

7796
$env = $app->detectEnvironment(array(
78-
'local' => array('SnipeMBP'),
79-
'staging' => array('staging.mysite.com'),
80-
'production' => array('www.mysite.com')
97+
...
98+
'production' => array('www.yourserver.com')
8199
));
82100

83101
If your development, staging and production sites all run on the same server (which is generally a terrible idea), [see this example](http://words.weareloring.com/development/setting-up-multiple-environments-in-laravel-4-1/) of how to configure the app using environmental variables.
@@ -86,37 +104,40 @@ If your development, staging and production sites all run on the same server (wh
86104

87105
#### 2.2) Setup Your Database
88106

89-
Copy the example database config `app/config/local/database.example.php` to `app/config/local/database.php`.
90-
Update the file `app/config/local/database.php` with your database name and credentials.
107+
Copy the example database config `app/config/production/database.example.php` to `app/config/production/database.php`.
108+
Update the file `app/config/production/database.php` with your database name and credentials:
91109

92-
vi app/config/local/database.php
110+
'mysql' => array(
111+
'driver' => 'mysql',
112+
'host' => 'localhost',
113+
'database' => 'snipeit_laravel',
114+
'username' => 'travis',
115+
'password' => '',
116+
'charset' => 'utf8',
117+
'collation' => 'utf8_unicode_ci',
118+
'prefix' => '',
119+
),
93120

94121

95-
#### 2.3) Setup Mail Settings
96122

97-
Copy the example mail config `app/config/local/mail.example.php` to `app/config/local/mail.php`.
98-
Update the file `app/config/local/mail.php` with your mail settings.
123+
#### 2.3) Setup Mail Settings
99124

100-
vi app/config/local/mail.php
125+
Copy the example mail config `app/config/production/mail.example.php` to `app/config/production/mail.php`.
126+
Update the file `app/config/production/mail.php` with your mail settings.
101127

102-
This will be used to send emails to your users, when they register and they request a password reset.
128+
This will be used to send emails to your users, when they register and when they request a password reset.
103129

104130
#### 2.4) Adjust the application settings.
105131

106-
Copy the example app config `app/config/local/app.example.php` to `app/config/local/app.php`.
132+
Copy the example app config `app/config/production/app.example.php` to `app/config/production/app.php`.
107133

108-
Update the file `app/config/local/app.php` with your URL settings.
134+
Update the file `app/config/production/app.php` with your URL settings.
109135

110-
vi app/config/local/app.php
136+
'url' => 'http://www.yourserver.com',
111137

112138
You should also change your secret key here -- if you prefer to have your key randomly generated, run the artisan key:generate command from the application root.
113139

114-
php artisan key:generate --env=local
115-
116-
117-
#### 2.5) Additional Adjustments
118-
119-
The app is configured to automatically detect if you're in a local, staging, or production environment. Before deploying to a staging or production environment, follow sets 2.1, 2.2, and 2.3 above to tweak each environment as necessary. Configuration files for each environment can be found in app/config/{environment} (local, staging, and production).
140+
php artisan key:generate --env=production
120141

121142
-----
122143

@@ -140,7 +161,7 @@ Now, you need to create yourself a user and finish the installation.
140161

141162
Use the following command to create your default user, user groups and run all the necessary migrations automatically.
142163

143-
php artisan app:install --env=local
164+
php artisan app:install
144165

145166
-----
146167

@@ -158,28 +179,27 @@ If you still run into a permissions error, you may need to increase the permissi
158179

159180
### 7) Set the correct document root for your server
160181

161-
The document root for the app should be set to the public directory. In a standard Apache virtualhost setup, that might look something like this on a standard linux LAMP stack:
182+
The document root for the app should be set to the `public` directory. In a standard Apache virtualhost setup, that might look something like this on a standard linux LAMP stack:
162183

163184
<VirtualHost *:80>
164185
<Directory /var/www/html/public>
165186
AllowOverride All
166187
</Directory>
167188
DocumentRoot /var/www/html/public
168-
ServerName www.example.org
169-
189+
ServerName www.yourserver.com
170190
# Other directives here
171191
</VirtualHost>
172192

173193
An OS X virtualhost setup could look more like:
174194

175-
Directory "/Users/flashingcursor/Sites/snipe-it/public/">
176-
Allow From All
177-
AllowOverride All
178-
Options +Indexes
195+
<Directory "/Users/youruser/Sites/snipe-it/public/">
196+
Allow From All
197+
AllowOverride All
198+
Options +Indexes
179199
</Directory>
180200
<VirtualHost *:80>
181-
ServerName "snipe-it.dev"
182-
DocumentRoot "/Users/flashingcursor/Sites/snipe-it/public"
201+
ServerName "www.yourserver.com"
202+
DocumentRoot "/Users/youruser/Sites/snipe-it/public"
183203
SetEnv LARAVEL_ENV development
184204
</VirtualHost>
185205

@@ -191,51 +211,66 @@ Loading up the sample data will give you an idea of how this should look, how yo
191211

192212
php artisan db:seed
193213

214+
__If you run this command on a database that already has your own asset data in it, it will over-write your database. ALL of your data will be gone. NEVER run the db seeder on production after on your initial install.__
215+
194216
-----
195217

218+
### Application logs
196219

197-
## Optional Development Stuff
198-
### Set up the debugbar
220+
Application logs for this app are found in `app/storage/logs`, as is customary of Laravel.
199221

200-
In dev mode, I use the fabulous [Laravel Debugbar](https://github.com/barryvdh/laravel-debugbar) by @barryvdh. After you've installed/updated composer, you'll need to publish the assets for the debugbar:
222+
-----
201223

202-
php artisan debugbar:publish
224+
### Running this on an EC2 Micro Instance
203225

204-
The profiler is enabled by default if you have debug set to true in your app.php. You certainly don't have to use it, but it's pretty handy for troubleshooting queries, seeing how much memory your pages are using, etc.
226+
Depending on your needs, you could probably run this system in an EC2 micro instance. It doesn't take up very much memory and typically won't be a super-high-traffic application. EC2 micros fall into the free/dirt-cheap tier, which might make this a nice option. One thing to note though - composer can be a little memory-intensive while you're running updates, and you may have trouble with it failing on a micro. You can crank the memory_limit up in php.ini, but EC2 micros have swap disabled by default, so even that may not cut it. If you run into totally unhelpful error messages while running composer updates (like simply 'Killed') or fatal memory issues mentioning phar, your best bet will be to enable swap:
227+
228+
sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
229+
sudo /sbin/mkswap /var/swap.1
230+
sudo /sbin/swapon /var/swap.1
231+
232+
If you need more than 1024MB then change that to something higher.
233+
234+
To enable it by default after reboot, add this line to /etc/fstab:
235+
236+
/var/swap.1 swap swap defaults 0 0
205237

206238
-----
207239

208-
### Purging the autoloader
240+
## Developing & Contributing
209241

210-
If you're doing any development on this, make sure you purge the auto-loader if you see any errors stating the new model you created can't be found, etc, otherwise your new models won't be grokked.
242+
Please be sure to see the [contributing guidelines](https://github.com/snipe/snipe-it/blob/develop/CONTRIBUTING.md) before submitting pull requests.
211243

212-
php composer.phar dump-autoload
244+
The only real difference in setting Snipe-IT up for local development versus setting it up for production usage is the configuration files, and remembering to add the local environment flag on the artisan commands.
213245

246+
You'll notice in your `app/config` directory, you have directories such as `local`, `staging`, and `production`. (The `testing` directory is reserved for unit tests, so don't mess with that one.)
214247

215-
-----
248+
You'll want to make sure you have the configuration files updated for whichever environment you're in, which will most likely be `local`.
216249

217-
### Application logs
250+
If you run the command line tools without the local flag, it will default to the production environment, so you'll want to make sure you run the commands as:
218251

219-
Application logs for this app are found in `app/storage/logs`, as is customary of Laravel.
252+
php artisan key:generate --env=local
253+
php artisan app:install --env=local
220254

221-
-----
255+
### Set up the debugbar
222256

223-
### Running this on an EC2 Micro Instance
257+
In dev mode, I use the fabulous [Laravel Debugbar](https://github.com/barryvdh/laravel-debugbar) by [barryvdh](https://github.com/barryvdh). After you've installed/updated composer, you'll need to publish the assets for the debugbar:
224258

225-
Depending on your needs, you could probably run this system in an EC2 micro instance. It doesn't take up very much memory and typically won't be a super-high-traffic application. EC2 micros fall into the free/dirt-cheap tier, which might make this a nice option. One thing to note though - composer can be a little memory-intensive while you're running updates, and you may have trouble with it failing on a micro. You can crank the memory_limit up in php.ini, but EC2 micros have swap disabled by default, so even that may not cut it. If you run into totally unhelpful error messages while running composer updates (like simply 'Killed') or fatal memory issues mentioning phar, your best bet will be to enable swap:
259+
php artisan debugbar:publish
226260

227-
sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
228-
sudo /sbin/mkswap /var/swap.1
229-
sudo /sbin/swapon /var/swap.1
261+
The profiler is enabled by default if you have debug set to true in your app.php. You certainly don't have to use it, but it's pretty handy for troubleshooting queries, seeing how much memory your pages are using, etc.
230262

231-
If you need more than 1024 then change that to something higher.
263+
-----
232264

233-
To enable it by default after reboot, add this line to /etc/fstab:
265+
### Purging the autoloader
234266

235-
/var/swap.1 swap swap defaults 0 0
267+
If you're doing any development on this, make sure you purge the auto-loader if you see any errors stating the new model you created can't be found, etc, otherwise your new models won't be grokked.
268+
269+
php composer.phar dump-autoload
236270

237271
-----
238272

273+
239274
## License
240275

241276
Copyright (C) 2013 Alison Gianotto - [email protected]

0 commit comments

Comments
 (0)