Useful tips — Modoboa 1.7.4 documentation

### Navigation

- index
- next |
- previous |
- Modoboa 1.7.4 documentation »
- How to contribute »

# Useful tips

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.

## 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 <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.

## Deploy an instance for development

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.

## 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 `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.

## Test your modifications

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.

## Start a basic Modoboa instance

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.

## Build the documentation

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

## 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

### Navigation

- index
- next |
- previous |
- Modoboa 1.7.4 documentation »
- How to contribute »