Commit cd257248b8014443bd4b879c911f9133198169f5
1 parent
5df9e498
Exists in
master
and in
39 other branches
Update README.rst
Updating README (the vagrant way)
Showing
1 changed file
with
86 additions
and
72 deletions
Show diff stats
README.rst
... | ... | @@ -9,112 +9,126 @@ Colab, a Software for Communities |
9 | 9 | ================================= |
10 | 10 | |
11 | 11 | |
12 | -Installation | |
13 | -============ | |
12 | +Installation (Development Environment) | |
13 | +========================================== | |
14 | 14 | |
15 | -Installation instructions for Ubuntu 10.04 | |
16 | -------------------------------------------- | |
15 | +Here we'll cover how to setup a development environment using a Vagrant | |
16 | +virtual machine. | |
17 | 17 | |
18 | -* Install Apache2 with WSGI support: | |
18 | +Before getting started you should install the following softwares: | |
19 | 19 | |
20 | - * apt-get install apache2 libapache2-mod-wsgi | |
20 | +* Vagrant (tested with version 1.2.7) | |
21 | 21 | |
22 | -* Install dependencies to compile psycopg2: | |
22 | +* Virtualbox (version >= 4.0) | |
23 | 23 | |
24 | - * apt-get build-dep python-psycopg2 | |
24 | +* fabric (tested with version 1.7.0) | |
25 | 25 | |
26 | -* Install Python PIP and update it: | |
27 | - | |
28 | - * apt-get install python-pip | |
29 | - * pip install -U pip | |
26 | +* Git | |
30 | 27 | |
31 | -* Install python virtualenv: | |
32 | - | |
33 | - * pip install virtualenv | |
34 | 28 | |
35 | -* Create a virtualenv for the deploy | |
36 | - | |
37 | - * mkdir /usr/local/django/ | |
38 | - * virtualenv /usr/local/django/colab/ | |
29 | +Getting started with the Virtual Machine | |
30 | +------------------------------------------ | |
39 | 31 | |
40 | -* Download the colab src code: | |
32 | +First you will need to clone the repository: | |
41 | 33 | |
42 | - * hg clone https://bitbucket.org/seocam/atu-colab /usr/local/src/colab/ | |
34 | +.. code-block:: | |
43 | 35 | |
44 | -* Install the django site: | |
36 | + git clone git@github.com:interlegis/colab.git | |
45 | 37 | |
46 | - * pip install /usr/local/src/colab -E /usr/local/django/colab/ | |
47 | 38 | |
48 | -* Configure your database settings in /usr/local/django/colab/lib/python2.6/site-packages/settings_local.py | |
49 | - | |
50 | -* Enable the colab site on apache and reload it: | |
39 | +*NOTE:* | |
40 | + | |
41 | + Here we are assuming you have ssh permissions to clone the repo using ssh. If not | |
42 | + fork it and clone your own fork (or use https instead of ssh). | |
43 | + | |
44 | + | |
45 | +Enter in the repository you've just cloned. | |
46 | +To start working all you need is to turn the virtual machine on with the command: | |
47 | + | |
48 | +.. code-block:: | |
51 | 49 | |
52 | - * ln -s /usr/local/django/colab/apache-site/colab /etc/apache2/sites-available | |
53 | - * a2ensite colab | |
54 | - * service apache2 restart | |
50 | + vagrant up | |
51 | + | |
52 | + | |
53 | +*NOTE:* | |
54 | + | |
55 | + BE PATIENT! | |
56 | + | |
57 | + This will take a while. The `vagrant up` will download a full vm (virtualbox) | |
58 | + running a Ubuntu 12.04 64bits. After the vm is up and running the command | |
59 | + will also configure it (using puppet) and that will also take a bit. | |
55 | 60 | |
56 | 61 | |
57 | -Configuring server to send emails | |
58 | ----------------------------------- | |
62 | +Running Colab | |
63 | +-------------- | |
59 | 64 | |
60 | -* Install postfix and mailutils: | |
65 | +Now that you have a vm running we have two options to run Colab: | |
66 | + | |
67 | +* Django development server (runserver) | |
61 | 68 | |
62 | - * apt-get install mailutils postfix | |
69 | +* Gunicorn + supervisor + Nginx | |
63 | 70 | |
64 | -* Update the file /etc/aliases adding users that should receive root's messages and run the update command: | |
65 | 71 | |
66 | - * newaliases | |
72 | +Django development server (runserver) | |
73 | +++++++++++++++++++++++++++++++++++++++ | |
67 | 74 | |
75 | +This option is advised for developers working in new features for Colab. | |
76 | +The code used to run Colab will be the same code placed on your machine, | |
77 | +that means that if you change the code in your own computer the code on | |
78 | +the vm will also change. | |
68 | 79 | |
69 | -Cron job to import emails | |
70 | ---------------------------- | |
80 | +Make sure you have a ``local_settings.py`` file placed in your repository. It | |
81 | +should be located in ``src/colab/``. | |
71 | 82 | |
72 | -* Install sshfs: | |
73 | - | |
74 | - * apt-get install sshfs autofs | |
75 | - | |
76 | -* Create SSH keys. You should use a password but this tutorial won't cover it (if you use you will need to install and configure keychain process to be able to proceed): | |
83 | +To get started you can copy the example file as follow: | |
77 | 84 | |
78 | - * ssh-keygen | |
79 | - | |
80 | -* Copy the content of your key (/root/.ssh/id_rsa.pub) to the file /root/.ssh/authorized_keys on the mailinglist server. | |
85 | +.. code-block:: | |
81 | 86 | |
82 | -* Append the following content to /etc/auto.master file: | |
87 | + cp src/colab/local_settings-dev.py src/colab/local_settings.py | |
83 | 88 | |
84 | - * /usr/local/django/colab/mnt /usr/local/django/colab/autofs/listas --timeout=600,--ghost | |
85 | 89 | |
86 | -* Restart autofs: | |
90 | +Now we are ready to run: | |
87 | 91 | |
88 | - * service autofs restart | |
89 | - | |
90 | -* Link cron script into /etc/cron.d/ folder: | |
92 | +.. code-block:: | |
91 | 93 | |
92 | - * ln -s /usr/local/django/colab/cron.d/colab_import_emails /etc/cron.d/ | |
94 | + fab runserver | |
93 | 95 | |
94 | -* From now on the emails should be imported every minute | |
95 | 96 | |
97 | +*Note* | |
96 | 98 | |
97 | -Cron job to reindex Solr | |
98 | -------------------------- | |
99 | + As this is the first time you run this command it will install all | |
100 | + requirements from ``requirements.txt`` into a virtualenv. To update | |
101 | + those requirements you should run ``fab runserver:update``. | |
99 | 102 | |
100 | -* Install wget: | |
101 | - | |
102 | - * apt-get install wget | |
103 | - | |
104 | -* Link cron script into /etc/cron.d/ folder: | |
105 | - | |
106 | - * ln -s /usr/local/django/colab/cron.d/colab_solr_reindex /etc/cron.d/ | |
107 | - | |
108 | -* From now on delta reindex should run every 10 minutes and full reindex once a day. | |
109 | 103 | |
104 | +The ``fab runserver`` command will open the django builtin development | |
105 | +server on the port 7000 but due to vagrant magic you will be able to | |
106 | +access it on ``http://localhost:8000/``. | |
107 | + | |
108 | + | |
109 | +Gunicorn + supervisor + Nginx | |
110 | +++++++++++++++++++++++++++++++ | |
111 | + | |
112 | +This option will run Colab in a way very similar to the production | |
113 | +environment. This should be used to test puppet manifests and also | |
114 | +the configuration of each one of the services running. | |
110 | 115 | |
111 | -Updating an installed version | |
112 | ------------------------------- | |
116 | +First of all we need to clone the repo and configure your ``local_settings.py``. | |
117 | +That is done by calling the command: | |
113 | 118 | |
114 | -* Update the source code: | |
119 | +.. code-block:: | |
120 | + | |
121 | + fab install:path/to/your/local_settings.py | |
122 | + | |
123 | + | |
124 | +Now you need to deploy the code using the command: | |
125 | + | |
126 | +.. code-block:: | |
127 | + | |
128 | + fab deploy | |
115 | 129 | |
116 | - * cd /usr/local/src/colab/ | |
117 | - * hg pull | |
118 | - * hg up | |
119 | - * pip install /usr/local/src/colab/ -E /usr/local/django/colab/ -U | |
120 | - * service apache2 restart | |
130 | + | |
131 | +For the next deploy you can just run ``fab deploy`` and in case your | |
132 | +``requirements.txt`` changes ``fab deploy:update``. | |
133 | + | |
134 | +The deployed code will be accessible on ``http://localhost:8080``. | ... | ... |