Docker demo
The public Postfix Admin Console Docker image
is a disposable way to evaluate the administration interface. It starts a fresh
Drupal site using SQLite, applies the base Recipe and
dedicated-site preset, and creates an operator account.
The image supports linux/amd64 and linux/arm64.
Run locally
With Docker installed, pull and start the image:
docker pull pixieworks/postfix_admin_console:latest
docker run --detach --rm \
--name postfix-admin-console \
-p 127.0.0.1:8080:80 \
pixieworks/postfix_admin_console:latest
docker logs postfix-admin-console
The first start installs Drupal and can take a little while. Once the
first-install message appears, open
http://localhost:8080/user/login?destination=/admin/structure/postfix_admin/domain.
Use the username and password printed by docker logs postfix-admin-console.
Keep those logs private because they contain the demo password. After login,
the Domain list, other resource tabs, Settings tab, and + menu are available.
If port 8080 is occupied, change only the host side of the mapping, such as
-p 127.0.0.1:8081:80, and use port 8081 in the login URL.
Credentials and data
By default, the operator username is admin and a random password is generated
at first start. To choose credentials for a new container, pass
POSTFIX_ADMIN_CONSOLE_USERNAME and POSTFIX_ADMIN_CONSOLE_PASSWORD with
Docker's --env or --env-file options. Avoid putting a password directly in
shell history. The site_owner username is reserved for the internal Drupal
administrator account.
The SQLite database and credential files are stored outside the web root in the container. Restarting the same container preserves them. Changing an explicitly supplied username or password after initialization is rejected rather than silently replacing the account.
Stop and discard the demo with:
docker stop postfix-admin-console
The recommended invocation uses --rm and no volume. Stopping it removes
the container and all demo data. Starting it again creates a fresh site with a
new random password unless you explicitly provide one.
Intended use
This image is for local evaluation of the Postfix Admin Console look and feel.
It is not a production deployment and does not provide Postfix, Dovecot, DNS,
TLS, or mail delivery. Keep the port bound to 127.0.0.1, do not expose it to
the internet, and do not enter production data or secrets.
Image versions
Use latest for the most recently published demo. Pull it again before creating
a new container to pick up a later publication; pulling does not update existing
containers. To select an exact publication, choose an available tag or digest
from Docker Hub.
The verified digest is recorded with each publication rather than duplicated here.
To check the package versions in your running container:
docker exec postfix-admin-console composer show drupal/postfix_admin
docker exec postfix-admin-console composer show drupal/postfix_admin_console
latest may advance after a later publication. Recipe releases and Docker Hub
images are published separately, so releasing a newer Recipe or merging a source
change does not automatically rebuild or replace an existing image.
The Docker build installs both stable packages from the committed composer.lock
without resolving new dependencies at build time. It computes checksums before
installation and compares them afterward to detect changes to the Composer input
files. Its smoke test compares the installed versions with that lock, rather than
hardcoded version numbers, and checks the administration UI, dark mode,
permissions, credentials, and restart behavior. Dependency updates require a
reviewed lock update and a separately tested image publication.