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``. | ... | ... |