aboutsummaryrefslogtreecommitdiff
path: root/docs/installation.rst
blob: 785ccc66292ab170c56875449eb3c34dc0a334e2 (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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
Installation
############

First, you need to get the source files. One way to get them is to download
them from the github repository, using git::

  git clone https://github.com/spiral-project/ihatemoney.git

Requirements
============

«Ihatemoney» depends on:

* **Python**: either 2.7, 3.4, 3.5 will work.
* **A Backend**: to choose among MySQL, PostgreSQL, SQLite or Memory.

We recommend to use `pip <https://pypi.python.org/pypi/pip/>`_ and
`virtualenv <https://pypi.python.org/pypi/virtualenv>`_ but it will work
without if you prefer.

If you have everything installed, you can just issue::

    make serve

Alternatively, you can also use the `requirements.txt` file to install the
dependencies yourself (that's what the `make serve` does). That would be::

     pip install -r requirements.txt

And then run the application::

    cd budget
    python run.py

In any case, you can point your browser at `http://localhost:5000 <http://localhost:5000>`_.
It's as simple as that!

In case you want to update to newer versions, you can just run the "update" command::

  make update

Deploy it
=========

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!*.

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
4. Activate the virtual host if needed and restart Apache

With Nginx, Gunicorn and Supervisord
------------------------------------

1. Add the lines in conf/supervisord.conf to your supervisord.conf file.
2. Copy and paste the content of conf/nginx.conf in your nginx conf file.
3. reload both nginx and supervisord. It should be working ;)

Don't forget to set the right permission for your files !

Configuration
=============

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.

+----------------------------+---------------------------+-----------------------------------------------------------------------------+
| Setting name               |  Default                  | What does it do?                                                            |
+============================+===========================+=============================================================================+
| SQLALCHEMY_DATABASE_URI    |  ``sqlite:///budget.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. **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.        |
+----------------------------+---------------------------+-----------------------------------------------------------------------------+
| ADMIN_PASSWORD             |  ``""``                   | If not empty, the specified password must be entered to create new projects |
+----------------------------+---------------------------+-----------------------------------------------------------------------------+

.. _`the SQLAlechemy documentation`: http://docs.sqlalchemy.org/en/latest/core/engines.html#database-urls

In a production environment
---------------------------

Make a copy of ``budget/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.

e.g.::

    $ export IHATEMONEY_SETTINGS_FILE_PATH="/path/to/your/conf/file.cfg"

Note that you can also pass additional flask parameters with this file.
e.g. If you want to prefix your URLs to serve ihatemonney in the *folder*
of a domain, use the following: ::

    APPLICATION_ROOT='/budget'