aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/installation.rst135
1 files changed, 82 insertions, 53 deletions
diff --git a/docs/installation.rst b/docs/installation.rst
index 3f2c653..9fd96b7 100644
--- a/docs/installation.rst
+++ b/docs/installation.rst
@@ -18,6 +18,8 @@ it will work without if you prefer.
If wondering about the backend, SQLite is the simplest and will work fine for
most small to medium setups.
+.. note:: If curious, source config templates can be found in the `project git repository <https://github.com/spiral-project/ihatemoney/tree/master/ihatemoney/conf-templates>`_.
+
Prepare virtualenv (recommended)
================================
@@ -57,28 +59,56 @@ Now, if you want to deploy it on your own server, you have many options.
Two of them are documented at the moment.
*Of course, if you want to contribute another configuration, feel free to open a
-pull-request against this repository!*.
+pull-request against this repository!*
+
+
+Whatever your installation option is…
+--------------------------------------
+
+1. Initialize the ihatemoney directories::
+
+ mkdir /etc/ihatemoney /var/lib/ihatemoney
+
+2. Generate settings::
+
+ ihatemoney generate-config ihatemoney.cfg > /etc/ihatemoney/ihatemoney.cfg
+ chmod 740 /etc/ihatemoney/ihatemoney.cfg
+
+You probably want to adjust `/etc/ihatemoney/ihatemoney.cfg` contents, you may
+do it later, see `Configuration`_.
+
With Apache and mod_wsgi
------------------------
-1. Install Apache and mod_wsgi - libapache2-mod-wsgi(-py3) for Debian based and mod_wsgi for RedHat based distributions -
-2. Create an Apache virtual host based on the sample configuration file in `conf/apache-vhost.conf`
-3. Adapt it to your paths and specify your virtualenv path if you use one
+1. Fix permissions (considering `www-data` is the user running apache)::
+
+ chgrp www-data /etc/ihatemoney/ihatemoney.cfg
+ chown www-data /var/lib/ihatemoney
+
+2. Install Apache and mod_wsgi - libapache2-mod-wsgi(-py3) for Debian based and mod_wsgi for RedHat based distributions -
+3. Create an Apache virtual host, the command ``ihatemoney generate-config apache-vhost.conf`` will output a good starting point (read and adapt it)
4. Activate the virtual host if needed and restart Apache
With Nginx, Gunicorn and Supervisord
------------------------------------
-.. note:: For the 3 configuration files mentioned below, you will need to fix
- the paths to reflect yours.
+1. Create a dedicated unix user (here called `ihatemoney`), required dirs, and fix permissions::
+
+ useradd ihatemoney
+ chown ihatemoney /var/lib/ihatemoney/
+ chgrp ihatemoney /etc/ihatemoney/ihatemoney.cfg
+
+2. Create gunicorn config file ::
+
+ ihatemoney generate-config gunicorn.conf.py > /etc/ihatemoney/gunicorn.conf.py
+
+3. Create supervisor config file ::
-1. Copy *conf/gunicorn.conf.py* to */etc/ihatemoney/gunicorn.conf.py*
-2. Copy *conf/supervisord.conf* to */etc/supervisor/conf.d/ihatemoney.conf*
-3. Copy *conf/nginx.conf* with your nginx vhosts [#nginx-vhosts]_
-4. Reload both nginx and supervisord. It should be working ;)
+ ihatemoney generate-config supervisord.conf > /etc/supervisor/conf.d/ihatemoney.conf
-Don't forget to set the right permission for your files !
+4. Copy (and adapt) output of ``ihatemoney generate-config conf/nginx.conf`` with your nginx vhosts [#nginx-vhosts]_
+5. Reload both nginx and supervisord. It should be working ;)
.. [#nginx-vhosts] typically, */etc/nginx/conf.d/* or
*/etc/nginx/sites-available*, depending on your distribution.
@@ -90,48 +120,47 @@ ihatemoney relies on a configuration file. If you run the application for the
first time, you will need to take a few moments to configure the application
properly.
-.. warning:: You **must** customize the ``SECRET_KEY`` on a production installation.
-
-+-------------------------------+---------------------------------+----------------------------------------------------------------------------------+
-| Setting name | Default | What does it do? |
-+===============================+=================================+==================================================================================+
-| SQLALCHEMY_DATABASE_URI | ``sqlite:///tmp/ihatemoney.db`` | Specifies the type of backend to use and its location. More information |
-| | | on the format used can be found on `the SQLAlchemy documentation |
-| | | <http://docs.sqlalchemy.org/en/latest/core/engines.html#database-urls>`_. |
-+-------------------------------+---------------------------+----------------------------------------------------------------------------------------+
-| SECRET_KEY | ``tralala`` | The secret key used to encrypt the cookies. **This needs to be changed**. |
-+-------------------------------+---------------------------+----------------------------------------------------------------------------------------+
-| MAIL_DEFAULT_SENDER | ``("Budget manager", | A python tuple describing the name and email adress to use when sending |
-| | "budget@notmyidea.org")`` | emails. |
-+-------------------------------+---------------------------+----------------------------------------------------------------------------------------+
-| ACTIVATE_DEMO_PROJECT | ``True`` | If set to `True`, a demo project will be available on the frontpage. |
-+-------------------------------+---------------------------+----------------------------------------------------------------------------------------+
-| | | Hashed password to access protected endpoints. If left empty, all administrative |
-| ADMIN_PASSWORD | ``""`` | tasks are disabled. |
-| | | To generate the proper password HASH, use ``ihatemoney generate_password_hash`` |
-| | | and copy the output into the value of *ADMIN_PASSWORD*. |
-+-------------------------------+---------------------------+----------------------------------------------------------------------------------------+
-| ALLOW_PUBLIC_PROJECT_CREATION | ``True`` | If set to `True`, everyone can create a project without entering the admin password |
-| | | If set to `False`, the password needs to be entered (and as such, defined in the |
-| | | settings). |
-+-------------------------------+---------------------------+----------------------------------------------------------------------------------------+
-| ACTIVATE_ADMIN_DASHBOARD | ``False`` | If set to `True`, the dashboard will become accessible entering the admin password |
-| | | If set to `True`, a non empty ADMIN_PASSWORD needs to be set |
-+-------------------------------+---------------------------+----------------------------------------------------------------------------------------+
-| APPLICATION_ROOT | ``""`` | If empty, ihatemoney will be served at domain root (e.g: *http://domain.tld*), if set |
-| | | to ``"foo"``, it will be served from a "folder" (e.g: *http://domain.tld/foo*) |
-+-------------------------------+---------------------------+----------------------------------------------------------------------------------------+
-
-In a production environment
----------------------------
-
-Make a copy of ``ihatemoney/default_settings.py`` and name it ``ihatemoney.cfg``.
-Then adjust the settings to your needs and move this file to
-``/etc/ihatemoney/ihatemoney.cfg``.
-
-This is the default path of the settings but you can also place it
-elsewhere and pass the configuration file path to the application using
-the IHATEMONEY_SETTINGS_FILE_PATH environment variable.
+Defaults given here, are those for development mode. To know defaults on your
+deployed instance, simply look at your *ihatemoney.cfg*.
+
+
++-------------------------------+---------------------------------+----------------------------------------------------------------------------------------+
+| Setting name | Default | What does it do? |
++===============================+=================================+========================================================================================+
+| SQLALCHEMY_DATABASE_URI | ``sqlite:///tmp/ihatemoney.db`` | Specifies the type of backend to use and its location. More information on the |
+| | | format used can be found on `the SQLAlchemy documentation`_. |
++-------------------------------+---------------------------------+----------------------------------------------------------------------------------------+
+| SECRET_KEY | ``tralala`` | The secret key used to encrypt the cookies. `ihatemoney conf-example ihatemoney.cfg` |
+| | | sets it to something random, which is good. |
++-------------------------------+---------------------------------+----------------------------------------------------------------------------------------+
+| MAIL_DEFAULT_SENDER | ``("Budget manager", | A python tuple describing the name and email adress to use when sending |
+| | "budget@notmyidea.org")`` | emails. |
++-------------------------------+---------------------------------+----------------------------------------------------------------------------------------+
+| ACTIVATE_DEMO_PROJECT | ``True`` | If set to `True`, a demo project will be available on the frontpage. |
++-------------------------------+---------------------------------+----------------------------------------------------------------------------------------+
+| | | Hashed password to access protected endpoints. If left empty, all administrative |
+| ADMIN_PASSWORD | ``""`` | tasks are disabled. |
+| | | To generate the proper password HASH, use ``ihatemoney generate_password_hash`` |
+| | | and copy the output into the value of *ADMIN_PASSWORD*. |
++-------------------------------+---------------------------------+----------------------------------------------------------------------------------------+
+| ALLOW_PUBLIC_PROJECT_CREATION | ``True`` | If set to `True`, everyone can create a project without entering the admin password |
+| | | If set to `False`, the password needs to be entered (and as such, defined in the |
+| | | settings). |
++-------------------------------+---------------------------------+----------------------------------------------------------------------------------------+
+| ACTIVATE_ADMIN_DASHBOARD | ``False`` | If set to `True`, the dashboard will become accessible entering the admin password |
+| | | If set to `True`, a non empty ADMIN_PASSWORD needs to be set |
++-------------------------------+---------------------------------+----------------------------------------------------------------------------------------+
+| APPLICATION_ROOT | ``""`` | If empty, ihatemoney will be served at domain root (e.g: *http://domain.tld*), if set |
+| | | to ``"foo"``, it will be served from a "folder" (e.g: *http://domain.tld/foo*) |
++-------------------------------+---------------------------------+----------------------------------------------------------------------------------------+
+
+.. _the SQLAlchemy documentation: http://docs.sqlalchemy.org/en/latest/core/engines.html#database-urls
+
+Using an alternate settings path
+--------------------------------
+
+You can put your settings file where you want, and pass its path to the
+application using the ``IHATEMONEY_SETTINGS_FILE_PATH`` environment variable.
e.g.::