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

.. contents::

.. _configuration_daemon:

Mailjam daemon configuration file
---------------------------------

All the configurations that can be applied to the Mailjam daemon are registered
in the **mailjam.conf** file. That file contains ini-style [1]_ configuration 
parameters, separated in different *categories*.

.. note::

   The mailjam.conf file will be installed in different locations depending on
   your setup. The usual locations are:

   - */etc/mailjam.conf* - In most Linux systems (like archlinux, gentoo, 
     fedora, debian, ubuntu, etc)

   - */usr/local/etc/mailjam.conf* - In most BSD systems (like FreeBSD, OpenBSD,
     NetBSD, etc)

   There is a copy of the configuration file in the *conf/* directory, within
   the sources.

.. _configuration_daemon_xmlrpc:

xmlrpc_server
+++++++++++++

This section contains the configuration parameters that modify the behaviour of
the daemon when serving content through XMLRPC [2]_. 

These are all the available parameters in this section:

.. _configuration_daemon_xmlrpc_address:

address
*******

Default: ``localhost``

The address where the daemon will be listening for XMLRPC requests. Use ``*``
to listen an all available addresses, or any specific ``hostname`` or 
``ip address`` value.

.. _configuration_daemon_xmlrpc_port:

port
****

Default: ``9876``

The port where the daemon will be listening por XMLRPC requests.

.. _configuration_daemon_xmlrpc_ssl:

ssl
***

Default: ``off`` (because ssl support hasn't been added yet)

Enables/disables SSL [3]_ support in the daemon. If ``off`` all the traffic 
to/from the server will travel unencrypted. If ``on`` all the traffic will
travel encrypted.

.. _configuration_daemon_xmlrpc_ssl_key:

ssl_key
*******

Default: ``/usr/local/etc/mailjam/ssl/mailjam.key``

Path to the ssl key used for encrypted SSL sessions.

.. warning::

   This parameter is not used right now, as ssl support hasn't been added yet)

.. _configuration_daemon_xmlrpc_ssl_crt:

ssl_crt
*******

Default: ``/usr/local/etc/mailjam/ssl/mailjam.crt``

Path to the ssl certificate used for encrypted SSL sessions.

.. warning::

   This parameter is not used right now, as ssl support hasn't been added yet)

.. _configuration_daemon_xmlrpc_logfile:

logfile
*******

Default: ``/var/log/mailjam/xmlrpc_server.log``

Path to the file where log messages will be saved
   
.. _configuration_daemon_storage:

storage
+++++++

This section contains the configuration parameters that modify the way the
daemon saves data to disk, using one of the storage backends.

These are all the available parameters in this section:

.. _configuration_daemon_storage_backend:

backend
*******

Default: ``json``

Sets the type of backend the daemon is going to use. Right now the only backend
available is ``json``.

.. _configuration_daemon_xmlrpc_path:

path
****

Default: ``/usr/local/mailjam/storage``

Path to the directory where the backend will save data.

.. _configuration_daemon_storage_lists_db:

lists_db
********

Default: ``/usr/local/mailjam/storage/mailings.json``

Path to the file where the identifiers of existing mailing lists will be saved.

.. note::

   The default configuration file contains a dynamic setting for this 
   parameter::

     lists_db = %(path)s/mailings.%(backend)s

   That means that the parameter will inherit the values of the base path and 
   the extension of the file from the *storage.path* and *storage.backend* 
   settings. 

.. seealso::

   More information about this (and other tricks) here:

   http://docs.python.org/library/configparser.html

   http://www.doughellmann.com/PyMOTW/ConfigParser

.. _configuration_daemon_xmlrpc_members_db:

members_db
**********

Default: ``/usr/local/mailjam/storage/members.json``

Path to the file where the identifiers of existing members will be saved.

.. note::

   The same notes as for the *lists_db* parameter apply to this configuration
   parameter.

.. _configuration_daemon_archive:

archive
+++++++

This section contains the configuration parameters that modify the way the
daemon saves data to disk, using one of the storage backends.

These are all the available parameters in this section:

.. _configuration_daemon_archive_enabled:

enabled
*******

Default: ``true``

Enables/disables the *archives* feature. When enabled, Mailjam saves copies of
email address into an *archive*, so they can be read later, through a web 
interface.

To disable that feature, set this to ``false``.

.. warning::

   This feature is not ready yet, so it doesn't matter if you set this to true
   or false

.. _configuration_daemon_archive_backend:

backend
*******

Default: ``json``

Sets the type of backend used to store messages into the archive.

.. warning::

   This feature is not ready yet.

.. _configuration_daemon_archive_path:

path
****

Default: ``/usr/local/mailjam/archives``

Path to the directory where the archives will be saved.

.. warning::

   This feature is not ready yet.

.. _configuration_daemon_mailing_lists:

mailing_lists
+++++++++++++

This section contains the configuration parameters that set the default 
behaviour for mailing lists.

.. warning::

   This parameters are not currently used in mailjam, we are still working
   on per-mailing-list configuration parameters.

These are all the available parameters in this section:

.. _configuration_daemon_mailing_lists_private:

private
*******

Default: ``true``

Sets if a given mailing list is *private* (only registered members can send 
messages to the list) or not (anyone can send messages to the list).

If ``false``, by default all new lists will not be private.

.. _configuration_daemon_members:

members
+++++++

This section contains the configuration parameters that set the default 
behaviour for members.

.. warning::

   This parameters are not currently used in mailjam, we are still working
   on per-member configuration parameters.

These are all the available parameters in this section:

.. _configuration_daemon_members_auto_signup:

auto_signup
***********

Default: ``false``

Enables/disables auto-registration of members to mailing lists through a public
web application. If ``true``, users can register themselves into mailing lists
using a public web interface. If ``false``, only mailing lists administrators 
will be able to add new members to the list.

.. _configuration_daemon_members_allow_chpasswd:

allow_chpasswd
**************

Default: ``false``

Enables/disables the option to update passwords by the members themselves.

If ``true``, members of a mailing list will be able to update their passwords
using a public web interface. If ``false``, only mailing lists administrators
will be able to reset those passwords.


.. [1] http://en.wikipedia.org/wiki/INI_file
.. [2] http://en.wikipedia.org/wiki/XML-RPC
.. [3] http://en.wikipedia.org/wiki/Secure_Socket_Layer
