###############################
Development recipes for Modoboa
###############################
You would like to work on Modoboa but you don't know where to start?
You're at the right place! Browse this page to learn useful tips.
.. _venv_for_dev:
Prepare a virtual environment
=============================
A `virtual environment
`_ is a good way to
setup a development environment on your machine.
.. note::
``virtualenv`` is available on all major distributions, just
install it using your favorite packages manager.
To do so, run the following commands::
$ virtualenv
$ source /bin/activate
$ git clone https://github.com/tonioo/modoboa.git
$ cd modoboa
$ python setup.py develop
The ``develop`` command creates a symbolic link to your local copy so
any modification you make will be automatically available in your
environment, no need to copy them.
Deploy an instance for development
==================================
.. warning::
Make sure to :ref:`create a database ` before running
this step.
Now that you have a :ref:`running environment `, you're
ready to deploy a test instance::
$ modoboa-admin.py deploy --devel --dburl
$ cd
$ python manage.py runserver
You're ready to go!
Manage static files
===================
Modoboa uses `bower `_ (thanks to `django-bower `_)
to manage its CSS and javascript dependencies.
Those dependencies are listed in a file called :file:`dev_settings.py`
located inside the :file:`/modoboa/core`
directory.
If you want to add a new dependency, just complete the
``BOWER_INSTALLED_APPS`` parameter and run the following command::
$ python manage.py bower install
It will download and store the required files into the
:file:`/modoboa/bower_components` directory.
FAQ
===
bower command is missing in manage.py
-------------------------------------
*bower* command is missing in *manage.py* if you don't use the
``--devel`` option of the ``modoboa-admin.py deploy`` command.
To fix it, regenerate your instance or update your ``settings.py``
file manually. Look at ``devmode`` in
https://github.com/tonioo/modoboa/blob/master/modoboa/core/commands/templates/settings.py.tpl