blob: f2e643ec5cb8921876d6e4d062107637b7332cc7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# Deployment
mySociety uses a custom deployment and buildout system however Capistrano is included as part of Alaveteli as a standard deployment system.
## Capistrano
### Set up
First you need to customise your deployment settings, e.g. the name of the server you're deploying to. This is done by copying the example file `config/deploy.yml.example` to `config/deploy.yml` and editing the settings to suit you.
TODO: The following instructions could be greatly improved
These are the general steps required to get your staging server up and running:
* Install packages from `config/packages`
* Install Postgres and configure a user
* Create a directory to deploy to and make sure your deployment user can write to it
* Run `cap deploy:setup` to create directories, etc.
* Run `cap deploy:update_code` so that we've got a copy of the example config on the server. This process will take a long time installing gems, etc. it will also fail on `rake:themes:install` but that's OK
* SSH to the server, change to the `deploy_to` directory
* `cp releases/[SOME_DATE]/config/general.yml-example shared/general.yml`
* `cp releases/[SOME_DATE]/config/database.yml-example shared/database.yml`
* Edit those files to match your required settings
* Back on your machine run `cap deploy` and it should successfully deploy
* Run the DB migrations `cap deploy:migrate`
* Build the Xapian DB `cap xapian:rebuild_index`
* Configure Apache/Passenger with a DocumentRoot of `your_deploy_to/current/public`
* Phew. Time to admire your work by browsing to the server!
### Usage
Ensure you've got a `config/deploy.yml` file with the correct settings for your site. You'll need to share this with everyone in your team that deploys so it might be a good idea to keep the latest version in a [Gist](http://gist.github.com/).
To deploy to staging just run `cap deploy` but if you want to deploy to production you need to run `cap -S stage=production deploy`.
For additional usage instructions, see the [Capistrano wiki](https://github.com/capistrano/capistrano/wiki/).
### TODO
* Get `cap deploy:setup` to do most of the work described above in the *Set up* section
* Use [Whenever](https://github.com/javan/whenever) to set up cronjobs
|