Document the non-superuser PostgreSQL role of the Docker Compose stack - #900
Merged
Merged
Conversation
The Docker Compose stack now connects to PostgreSQL with an unprivileged login role and keeps a separate administrative superuser, configurable via the new POSTGRES_SUPERUSER and POSTGRES_SUPERUSER_PASS variables. Since that role is not allowed to create databases and the stack creates the database up front, POSTGRESQL_DB_CREATE defaults to false there. See zammad/zammad-docker-compose#611
ArtifactsProduced during runtime |
The superuser password follows POSTGRES_PASS unless it is set explicitly, so that hardening that one variable does not leave a superuser behind on the default password. Also document that the superuser name must differ from POSTGRES_USER, since the stack refuses to start otherwise. See zammad/zammad-docker-compose#611
ralf401
approved these changes
Sep 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Documentation follow-up for zammad/zammad-docker-compose#611, which makes the Docker Compose stack run Zammad against an unprivileged PostgreSQL role instead of the
postgresimage's bootstrap superuser. Refs zammad/coordination-technical-debt#854.Changes to
appendix/environment-variables.rst:POSTGRES_USER— clarifies that in the Docker Compose stack this is an unprivileged login role owning Zammad's database, created when the database volume is initialized.POSTGRES_SUPERUSERandPOSTGRES_SUPERUSER_PASS— new variables for the administrative superuser of the stack's PostgreSQL service, which Zammad itself never uses.POSTGRESQL_DB_CREATE— the image default staystrue, but the Docker Compose stack now setsfalse, because it creates the database up front and the Zammad role has noCREATEDBattribute. Documents that an external database server needstrueplus a role holdingCREATEDB.The migration steps for existing installations are intentionally not repeated here — they are a one-off upgrade concern and live in the stack's README and the release notes. Happy to add them to the install docs instead if you prefer them here.
Verified with
rstcheck[sphinx]<=6.1.0, the same version theCheck RST SyntaxCI step uses: no issues in the changed file.Please merge only together with (or after) zammad/zammad-docker-compose#611.