Skip to main content

Webapp to manage mail server domains, users and aliases.

Project description

mailserver-admin

This application manages domains, users and aliases of a mail server.

This has been tested with dovecot, using either mysql or postgresql database.

The main goal was to enhance/replace Jeffrey Boehm’s PHP mailserver-admin application because I didn’t want to have a mail server administration application in PHP and I wanted to have administration account per domain.

Environment variables

Required:

  • DJANGO_SECRET_KEY: at least 40 characters. Should be specified for production.
  • DJANGO_DB_TYPE: postgres or mysql, default to mysql.
  • DJANGO_DB_HOST: database hostname, default to db (for use in docker-compose).
  • DJANGO_DB_PORT: database port, default to empty (default port).
  • DJANGO_DB_NAME: database name, default to mailserver.
  • DJANGO_DB_USER: database user, default to mailserver.
  • DJANGO_DB_PASSWORD: database password, default to changeme.

Optional:

  • DJANGO_DEBUG: default False. Set to True to enable debug toolbar, more logs and static files served.
  • DJANGO_LOG_LEVEL: default to WARNING (INFO if DJANGO_DEBUG).
  • DJANGO_RUNSERVER_LOG_LEVEL: default to INFO (DEBUG if DJANGO_DEBUG). Used only when run with runserver or runserver_plus.
  • DJANGO_TZ: timezone, defaut to UTC.
  • DJANGO_WEBMAIL_URL: webmail url to show in the footer, default to no link.
  • DJANGO_VENDOR_NAME: any vendor name you want to appear on the footer, default to Sources.
  • DJANGO_VENDOR_URL: any url you want to be linked to your vendor name, default to this repository url. Set to empty to disable the link.
  • DJANGO_HIDE_VERSION: default False if DJANGO_DEBUG else True. Set to True to hide the mailserver-admin version.

Install from PyPi

VirtualEnv and Dependencies

Minium python version is 3.9.

Use:

pipenv install mailserver-admin

to install it without any database backend.

If you want to install the mysql or postgresql database backend alongside, use for instance:

pipenv install mailserver-admin[mysql]

Configuration

Define the required environment variables then:

export DJANGO_SETTINGS_MODULE=mailserveradmin.config.settings
pipenv run django migrate
pipenv run django createsuperuser
TODO

You can now server the application using any WSGI server pointing to $(VISUAL='readlink -f' pipenv open mailserveradmin|tail -n1)/config/wsgi.py.

Don’t forget to also serve static ressources located at $(VISUAL='readlink -f' pipenv open mailserveradmin|tail -n1)/to_serve folder.

You can of course make symlinks to those locations to simplify configuration.

Install from sources

VirtualEnv and Dependencies

Use:

pipenv sync -d

to install dependencies. Default python version is 3.9.

Installation

You should also install a database driver, either mysqlclient or psycopg2-binary:

pipenv run pip install mysqlclient

Configuration

Define the required environment variables then:

pipenv run ./manage.py migrate
pipenv run ./manage.py createsuperuser
pipenv run ./manage.py collectstatic

You can now server the application using any WSGI server pointing to the config/wsgi.py file.

Don’t forget to also serve the static/ folder.

Alternatively, you can test the application with pipenv run ./manage.py runserver_plus but this should only be used for testing/development.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mailserver-admin-0.9.0.tar.gz (1.5 MB view hashes)

Uploaded Source

Built Distribution

mailserver_admin-0.9.0-py3-none-any.whl (1.5 MB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page