diff options
Diffstat (limited to 'documentation/deployment.rst')
-rw-r--r-- | documentation/deployment.rst | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/documentation/deployment.rst b/documentation/deployment.rst new file mode 100644 index 00000000..d0639c45 --- /dev/null +++ b/documentation/deployment.rst @@ -0,0 +1,149 @@ +Deployment +========== + +This application can be deployed on Heroku or on a traditional server. + +After installation, you will be able to connect with the email *root@pyAggr3g470r.localhost* and the password *password*. + +Deploying the application with Vagrant +-------------------------------------- + +Installation of VirtualBox and Vagrant + +.. code-block:: bash + + $ sudo apt-get install virtualbox + $ wget https://dl.bintray.com/mitchellh/vagrant/vagrant_1.6.5_x86_64.deb + $ sudo dpkg -i vagrant_1.6.5_x86_64.deb + +Deployment of pyAggr3g470r + +.. code-block:: bash + + $ git clone https://bitbucket.org/cedricbonhomme/pyaggr3g470r.git + $ cd pyaggr3g470r/vagrant/ + $ vagrant up + +Once the VM configured, go to the address http://127.0.0.1:5000. + +Deploying the application on Heroku +----------------------------------- + +An instance of pyAggr3g470r is running `here <https://pyaggr3g470r.herokuapp.com>`_. + +The geek way +'''''''''''' + +.. code-block:: bash + + $ git clone https://bitbucket.org/cedricbonhomme/pyaggr3g470r.git + $ cd pyaggr3g470r + $ heroku create + $ heroku addons:add heroku-postgresql:dev + $ heroku config:set HEROKU=1 + $ git push heroku master + $ heroku run init + $ heroku ps:scale web=1 + +To enable account creation for users, you have to set some environment variables: + +.. code-block:: bash + + $ heroku config:set SELF_REGISTRATION=1 + $ heroku config:set PLATFORM_URL=<URL-of-your-platform> + $ heroku config:set RECAPTCHA_PUBLIC_KEY=<your-recaptcha-public-key> + $ heroku config:set RECAPTCHA_PRIVATE_KEY=<your-recaptcha-private-key> + $ heroku config:set NOTIFICATION_EMAIL=<notification-email> + $ heroku config:set POSTMARK_API_KEY=<your-postmark-api-key> + $ heroku addons:add postmark:10k + +`Postmark <https://postmarkapp.com/>`_ is used to send account confirmation links. + +If you don't want to open your platform just set *SELF_REGISTRATION* to 0. +You will be still able to create accounts via the administration page. + + +The simple way +'''''''''''''' + +Alternatively, you can deploy your own copy of the app using this button: + +.. image:: https://www.herokucdn.com/deploy/button.png + :target: https://heroku.com/deploy?template=https://github.com/cedricbonhomme/pyAggr3g470r + +You will be prompted to choose an email and a password for the administrator's account. +And some other optional environment variables, as previously presented. + +Deploying the application on a traditional server +------------------------------------------------- + +.. code-block:: bash + + $ sudo apt-get install python libpq-dev python-dev python-pip build-essential git + $ sudo apt-get install libxml2-dev libxslt1-dev # for lxml + $ git clone https://bitbucket.org/cedricbonhomme/pyaggr3g470r.git + $ cd pyaggr3g470r + $ sudo pip install --upgrade -r requirements.txt + $ cp conf/conf.cfg-sample conf/conf.cfg + +If you want to use PostgreSQL +''''''''''''''''''''''''''''' + +.. code-block:: bash + + $ sudo apt-get install postgresql postgresql-server-dev-9.3 postgresql-client + $ echo "127.0.0.1:5432:aggregator:pgsqluser:pgsqlpwd" > ~/.pgpass + $ chmod 700 ~/.pgpass + $ sudo -u postgres createuser pgsqluser --no-superuser --createdb --no-createrole + $ createdb aggregator --no-password + $ echo "ALTER USER pgsqluser WITH ENCRYPTED PASSWORD 'pgsqlpwd';" | sudo -u postgres psql + $ echo "GRANT ALL PRIVILEGES ON DATABASE aggregator TO pgsqluser;" | sudo -u postgres psql + +Edit the configuration file with the line: + +.. code-block:: cfg + + [database] + uri = postgres://pgsqluser:pgsqlpwd@127.0.0.1:5433/aggregator + +If you want to use SQLite +''''''''''''''''''''''''' + +Just edit the configuration file with the line: + +.. code-block:: cfg + + [database] + uri = sqlite+pysqlite:///pyAggr3g470r.db + + +Finally: + +.. code-block:: bash + + $ python db_create.py + $ python runserver.py + * Running on http://0.0.0.0:5000/ + * Restarting with reloader + + +Configuration +============= + +Configuration (database url, email, proxy, user agent, etc.) is done via the file *conf/conf.cfg*. +Check these configuration before executing *db_create.py*. +If you want to use pyAggr3g470r with Tor/Privoxy, you just have to set the value of +*http_proxy* (most of the time: *http_proxy = 127.0.0.1:8118**). Else leave the value blank. + + +Automatic updates +================= + +You can fetch new articles with `cron <https://en.wikipedia.org/wiki/Cron>`_ and the script *fetch.py*. +For example if you want to check for updates every 30 minutes, add this line to your cron rules (*crontab -e*): + +.. code-block:: bash + + */30 * * * * cd ~/.pyaggr3g470r/ ; python fetch.py firstname.lastname@mail.com + +You must give the email address you use to login to pyAggr3g470r. |