aboutsummaryrefslogtreecommitdiff
path: root/doc/administration/configuration.rst
blob: 52689034a6ab3dcf110e7e26696cdeb0d0f2a61e (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
Configuration
=============

The main configuration of Fietsboek is done via ``.ini``-files. By default,
three such files exist:

* ``production.ini`` contains the configuration for the production environment.
  It turns off debugging features (as they are a security risk!) and should
  contain the URL of the production database. This is the main file you want to
  use if you just want to deploy Fietsboek.
* ``development.ini`` contains the configuration for local development on
  Fietsboek. **This should not be used for production purposes, as it provides
  debugging information that poses a security risk!**
* ``testing.ini`` contains the configuration that the automated tests will use.

Most of the configuration is in the ``[app:main]`` category and looks like this:

.. code:: ini

    [app:main]
    use = egg:fietsboek

    pyramid.reload_templates = false
    pyramid.debug_authorization = false
    pyramid.debug_notfound = false
    pyramid.debug_routematch = false
    pyramid.default_locale_name = en

    email.from = fietsboek@kingdread.de
    email.smtp_url = debug://localhost:1025

    available_locales = en de
    enable_account_registration = true

    session_key = <EDIT THIS>

    sqlalchemy.url = sqlite:///%(here)s/fietsboek.sqlite
    fietsboek.data_dir = %(here)s/data

    retry.attempts = 3

* You should leave the ``use``, ``pyramid.reload_templates`` and
  ``pyramid.debug_*`` settings as they are.
* ``pyramid.default_locale_name`` can be used to set the default language of
  the installation. Note that Fietsboek will try to detect the user's language,
  so the ``default_locale_name`` is used as a fallback.
* ``available_locales`` sets the list of available languages. Currently,
  Fietsboek ships with English ("en") and German ("de"). Removing a language
  from this list will make it unavailable. If you create a custom language
  locally, make sure to add it to this list here!
* ``enable_account_registration`` can be used to enable and disable the
  creation of new accounts via the web interface, for example if you want to
  have a private instance. New accounts can always be created using the CLI
  management tool.
* ``session_key`` should be set to a random string of characters. This is the
  key used to sign session data, so it should not get into wrong hands!
* ``sqlalchemy.url`` is the URL to the database. See the `SQLAlchemy
  documentation
  <https://docs.sqlalchemy.org/en/14/core/engines.html#database-urls>`__ for
  more information.
* ``fietsboek.data_dir`` sets the directory for data uploads. This directory
  must be writable by the Fietsboek process, as Fietsboek will save track
  images in there.
* ``fietsboek.pages`` see :doc:`custom-pages`.
* ``email.from`` sets the sender of emails, for example for account verifications.
* ``email.smtp_url`` sets the URL of the SMTP server. The following formats are accepted:

  * ``debug://`` a debug implementation that simply prints emails to the
    standard output. Should not be used in production, as no emails would ever
    arrive.
  * ``smtp://host:port`` use the given SMTP server (without transport encryption!)
  * ``smtp+ssl://host:port`` use the given SMTP server over a SSL connection
  * ``smtp+starttls://host:port`` use the given SMTP server and the STARTTLS
    command to start an encrypted channel.

* ``email.username`` and ``email.password`` can be used to set the login
  information for the SMTP server.
* ``thunderforest.api_key`` can be set to an API key of `Thunderforest
  <https://www.thunderforest.com/>`__ to enable support for the OpenCycleMap,
  Landscape and Outdoors maps.

.. warning::

    The API key will be embedded in the source of the website, therefore it is
    possible for visitors to "steal" the API key. Keep that in mind when
    setting an API key for a publicly accessible site!