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.
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 <path>
$ source <path>/bin/activate
$ git clone https://github.com/modoboa/modoboa.git
$ cd modoboa
$ python setup.py develop
$ pip install -r dev-requirements.txt
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.
Warning
Make sure to create a database before running this step. The format of the database url is also described in this page.
Now that you have a running environment, you’re ready to deploy a test instance:
$ cd <path>
$ modoboa-admin.py deploy --dburl default:<database url> --hostname localhost --devel instance
$ python manage.py runserver
You’re ready to go! You should be able to access Modoboa at http://localhost:8000 using admin:password as credentials.
Modoboa uses bower (thanks to django-bower) to manage its CSS and javascript dependencies.
Those dependencies are listed in a file called dev_settings.py located inside the <path_to_local_copy>/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 <path_to_local_copy>/modoboa/bower_components directory.
If you deployed a specific instance for your development needs, you can run the tests suite as follows:
> python manage.py test modoboa.core modoboa.lib modoboa.admin modoboa.limits modoboa.relaydomains
Otherwise, you can run the tests suite from the repository using tox.
From the repository, run the following command to launch a simple instance with a few fixtures:
> tox -e serve
You can use admin/password to log in.
If you need to modify the documenation and want to see the result, you can build it as follows:
> tox -e doc
> firefox .tox/doc/tmp/html/index.html
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