Docker: Add backend variables to .env and templates
This setup chooses to avoid the env_file option available for Docker Compose files. Docker has a peculiar way of parsing variables which makes it, for example, include quotes verbatim. This is both confusing and incompatible with shells parsing the same file which is a requirement. For this reason, the configuration does not import the complete environment using env_file but assigns variables explicitly on a need-to-know basis in the YAML file, much like Docker secrets. Since the configuration is generated automatically, the burden on users is the same as with env_file: they only need to edit .env for customizations.
This commit is contained in:
parent
d1640bc98d
commit
2b7e4d3d19
31
docker/.env
31
docker/.env
@ -45,3 +45,34 @@ MEDIA_SERVICE_REPLICAS=
|
|||||||
DEFAULT_FROM_EMAIL=
|
DEFAULT_FROM_EMAIL=
|
||||||
POSTFIX_MYHOSTNAME=
|
POSTFIX_MYHOSTNAME=
|
||||||
POSTFIX_RELAYHOST=
|
POSTFIX_RELAYHOST=
|
||||||
|
|
||||||
|
# OpenSlides Backend settings (settings.py)
|
||||||
|
# -----------------------------------------
|
||||||
|
# Features
|
||||||
|
ENABLE_SAML=
|
||||||
|
ENABLE_ELECTRONIC_VOTING=
|
||||||
|
# Connections
|
||||||
|
AUTOUPDATE_DELAY=
|
||||||
|
CONNECTION_POOL_LIMIT=
|
||||||
|
DATABASE_HOST=
|
||||||
|
DATABASE_PASSWORD=
|
||||||
|
DATABASE_PORT=
|
||||||
|
DATABASE_USER=
|
||||||
|
EMAIL_HOST=
|
||||||
|
EMAIL_HOST_PASSWORD=
|
||||||
|
EMAIL_HOST_USER=
|
||||||
|
EMAIL_PORT=
|
||||||
|
JITSI_DOMAIN=
|
||||||
|
JITSI_PASSWORD=
|
||||||
|
JITSI_ROOM_NAME=
|
||||||
|
REDIS_CHANNLES_HOST=
|
||||||
|
REDIS_CHANNLES_PORT=
|
||||||
|
REDIS_HOST=
|
||||||
|
REDIS_PORT=
|
||||||
|
REDIS_SLAVE_HOST=
|
||||||
|
REDIS_SLAVE_PORT=
|
||||||
|
REDIS_SLAVE_WAIT_TIMEOUT=
|
||||||
|
# Logging
|
||||||
|
DJANGO_LOG_LEVEL=
|
||||||
|
OPENSLIDES_LOG_LEVEL=
|
||||||
|
RESET_PASSWORD_VERBOSE_ERRORS=
|
||||||
|
@ -43,9 +43,34 @@ x-osserver:
|
|||||||
- back
|
- back
|
||||||
restart: always
|
restart: always
|
||||||
x-osserver-env: &default-osserver-env
|
x-osserver-env: &default-osserver-env
|
||||||
INSTANCE_DOMAIN: "ifenvelse(`INSTANCE_DOMAIN', http://example.com:8000)"
|
AMOUNT_REPLICAS: ifenvelse(`REDIS_RO_SERVICE_REPLICAS', 1)
|
||||||
|
AUTOUPDATE_DELAY: ifenvelse(`AUTOUPDATE_DELAY', 1)
|
||||||
|
CONNECTION_POOL_LIMIT: ifenvelse(`CONNECTION_POOL_LIMIT', 100)
|
||||||
|
DATABASE_HOST: "ifenvelse(`DATABASE_HOST', pgbouncer)"
|
||||||
|
DATABASE_PASSWORD: "ifenvelse(`DATABASE_PASSWORD', openslides)"
|
||||||
|
DATABASE_PORT: ifenvelse(`DATABASE_PORT', 5432)
|
||||||
|
DATABASE_USER: "ifenvelse(`DATABASE_USER', openslides)"
|
||||||
DEFAULT_FROM_EMAIL: "ifenvelse(`DEFAULT_FROM_EMAIL', noreply@example.com)"
|
DEFAULT_FROM_EMAIL: "ifenvelse(`DEFAULT_FROM_EMAIL', noreply@example.com)"
|
||||||
REDIS_REPLICAS: ifenvelse(`REDIS_RO_SERVICE_REPLICAS', 1)
|
DJANGO_LOG_LEVEL: "ifenvelse(`DJANGO_LOG_LEVEL', INFO)"
|
||||||
|
EMAIL_HOST: "ifenvelse(`EMAIL_HOST', postfix)"
|
||||||
|
EMAIL_HOST_PASSWORD: "ifenvelse(`EMAIL_HOST_PASSWORD',)"
|
||||||
|
EMAIL_HOST_USER: "ifenvelse(`EMAIL_HOST_USER',)"
|
||||||
|
EMAIL_PORT: ifenvelse(`EMAIL_PORT', 25)
|
||||||
|
ENABLE_ELECTRONIC_VOTING: "ifenvelse(`ENABLE_ELECTRONIC_VOTING', False)"
|
||||||
|
ENABLE_SAML: "ifenvelse(`ENABLE_SAML', False)"
|
||||||
|
INSTANCE_DOMAIN: "ifenvelse(`INSTANCE_DOMAIN', http://example.com:8000)"
|
||||||
|
JITSI_DOMAIN: "ifenvelse(`JITSI_DOMAIN', None)"
|
||||||
|
JITSI_PASSWORD: "ifenvelse(`JITSI_PASSWORD', None)"
|
||||||
|
JITSI_ROOM_NAME: "ifenvelse(`JITSI_ROOM_NAME', None)"
|
||||||
|
OPENSLIDES_LOG_LEVEL: "ifenvelse(`OPENSLIDES_LOG_LEVEL', INFO)"
|
||||||
|
REDIS_CHANNLES_HOST: "ifenvelse(`REDIS_CHANNLES_HOST', redis-channels)"
|
||||||
|
REDIS_CHANNLES_PORT: ifenvelse(`REDIS_CHANNLES_PORT', 6379)
|
||||||
|
REDIS_HOST: "ifenvelse(`REDIS_HOST', redis)"
|
||||||
|
REDIS_PORT: ifenvelse(`REDIS_PORT', 6379)
|
||||||
|
REDIS_SLAVE_HOST: "ifenvelse(`REDIS_SLAVE_HOST', redis-slave)"
|
||||||
|
REDIS_SLAVE_PORT: ifenvelse(`REDIS_SLAVE_PORT', 6379)
|
||||||
|
REDIS_SLAVE_WAIT_TIMEOUT: ifenvelse(`REDIS_SLAVE_WAIT_TIMEOUT', 10000)
|
||||||
|
RESET_PASSWORD_VERBOSE_ERRORS: "ifenvelse(`RESET_PASSWORD_VERBOSE_ERRORS', False)"
|
||||||
x-pgnode: &default-pgnode
|
x-pgnode: &default-pgnode
|
||||||
image: ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/openslides-repmgr:latest
|
image: ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/openslides-repmgr:latest
|
||||||
networks:
|
networks:
|
||||||
|
@ -42,9 +42,34 @@ x-osserver:
|
|||||||
- front
|
- front
|
||||||
- back
|
- back
|
||||||
x-osserver-env: &default-osserver-env
|
x-osserver-env: &default-osserver-env
|
||||||
INSTANCE_DOMAIN: "ifenvelse(`INSTANCE_DOMAIN', http://example.com:8000)"
|
AMOUNT_REPLICAS: ifenvelse(`REDIS_RO_SERVICE_REPLICAS', 3)
|
||||||
|
AUTOUPDATE_DELAY: ifenvelse(`AUTOUPDATE_DELAY', 1)
|
||||||
|
CONNECTION_POOL_LIMIT: ifenvelse(`CONNECTION_POOL_LIMIT', 100)
|
||||||
|
DATABASE_HOST: "ifenvelse(`DATABASE_HOST', pgbouncer)"
|
||||||
|
DATABASE_PASSWORD: "ifenvelse(`DATABASE_PASSWORD', openslides)"
|
||||||
|
DATABASE_PORT: ifenvelse(`DATABASE_PORT', 5432)
|
||||||
|
DATABASE_USER: "ifenvelse(`DATABASE_USER', openslides)"
|
||||||
DEFAULT_FROM_EMAIL: "ifenvelse(`DEFAULT_FROM_EMAIL', noreply@example.com)"
|
DEFAULT_FROM_EMAIL: "ifenvelse(`DEFAULT_FROM_EMAIL', noreply@example.com)"
|
||||||
REDIS_REPLICAS: ifenvelse(`REDIS_RO_SERVICE_REPLICAS', 3)
|
DJANGO_LOG_LEVEL: "ifenvelse(`DJANGO_LOG_LEVEL', INFO)"
|
||||||
|
EMAIL_HOST: "ifenvelse(`EMAIL_HOST', postfix)"
|
||||||
|
EMAIL_HOST_PASSWORD: "ifenvelse(`EMAIL_HOST_PASSWORD',)"
|
||||||
|
EMAIL_HOST_USER: "ifenvelse(`EMAIL_HOST_USER',)"
|
||||||
|
EMAIL_PORT: ifenvelse(`EMAIL_PORT', 25)
|
||||||
|
ENABLE_ELECTRONIC_VOTING: "ifenvelse(`ENABLE_ELECTRONIC_VOTING', False)"
|
||||||
|
ENABLE_SAML: "ifenvelse(`ENABLE_SAML', False)"
|
||||||
|
INSTANCE_DOMAIN: "ifenvelse(`INSTANCE_DOMAIN', http://example.com:8000)"
|
||||||
|
JITSI_DOMAIN: "ifenvelse(`JITSI_DOMAIN', None)"
|
||||||
|
JITSI_PASSWORD: "ifenvelse(`JITSI_PASSWORD', None)"
|
||||||
|
JITSI_ROOM_NAME: "ifenvelse(`JITSI_ROOM_NAME', None)"
|
||||||
|
OPENSLIDES_LOG_LEVEL: "ifenvelse(`OPENSLIDES_LOG_LEVEL', INFO)"
|
||||||
|
REDIS_CHANNLES_HOST: "ifenvelse(`REDIS_CHANNLES_HOST', redis-channels)"
|
||||||
|
REDIS_CHANNLES_PORT: ifenvelse(`REDIS_CHANNLES_PORT', 6379)
|
||||||
|
REDIS_HOST: "ifenvelse(`REDIS_HOST', redis)"
|
||||||
|
REDIS_PORT: ifenvelse(`REDIS_PORT', 6379)
|
||||||
|
REDIS_SLAVE_HOST: "ifenvelse(`REDIS_SLAVE_HOST', redis-slave)"
|
||||||
|
REDIS_SLAVE_PORT: ifenvelse(`REDIS_SLAVE_PORT', 6379)
|
||||||
|
REDIS_SLAVE_WAIT_TIMEOUT: ifenvelse(`REDIS_SLAVE_WAIT_TIMEOUT', 10000)
|
||||||
|
RESET_PASSWORD_VERBOSE_ERRORS: "ifenvelse(`RESET_PASSWORD_VERBOSE_ERRORS', False)"
|
||||||
x-pgnode: &default-pgnode
|
x-pgnode: &default-pgnode
|
||||||
image: ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/openslides-repmgr:latest
|
image: ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/openslides-repmgr:latest
|
||||||
networks:
|
networks:
|
||||||
|
Loading…
Reference in New Issue
Block a user