This Docker image runs Sal. The container expects a linked PostgreSQL database container.
Several options, such as the timezone and admin password are customizable using environment variables.
ADMIN_PASS: The default admin's password. This is only set if there are no other superusers, so if you choose your own admin username and password later on, this won't be created.
DOCKER_SAL_DISPLAY_NAME: This sets the name that appears in the title bar of the window. Defaults to
DOCKER_SAL_TZ: The desired timezone. Defaults to
DOCKER_SAL_ADMINS: The admin user's details. Defaults to
Docker User, docker@localhost.
DOCKER_SAL_PLUGIN_ORDER: The order plugins are displayed in. Defaults to
If you require more advanced settings, for example if you want to hide certain plugins from certain Business Units or if you have a plugin that needs settings, you can override
settings.py with your own. A good starting place can be found on this image's Github repository.
The plugins directory is exposed as a volume to the host, so you can add your own plugins using the
-v option to link to
/home/docker/sal/plugins in the container.
Out of the box, Sal uses a SQLite database, however if you are running it in a production environment, it is recommended that you use a Postgres Database.
I have created a Postgres container that is set up ready to use with Sal - just tell it where you want to store your data, and pass it some environment variables for the database name, username and password.
$ docker pull grahamgilbert/postgres $ docker run -d --name="postgres-sal" \ -v /db:/var/lib/postgresql/data \ -e DB_NAME=sal \ -e DB_USER=admin \ -e DB_PASS=password \ --restart="always" \ grahamgilbert/postgres
#Running the Sal Container
$ docker run -d --name="sal" \ -p 80:8000 \ --link postgres-sal:db \ -e ADMIN_PASS=pass \ -e DB_NAME=sal \ -e DB_USER=admin \ -e DB_PASS=password \ --restart="always" \ macadmins/sal
- Add support for SQLite and MySQL