163 lines
3.9 KiB
YAML
163 lines
3.9 KiB
YAML
|
version: '3.4'
|
||
|
|
||
|
# @Gernot: TODO env file
|
||
|
x-server-env: &default-server-env
|
||
|
SECRET_KEY: "TODO"
|
||
|
# @Gernot: TODO secret key generation. -> secret?
|
||
|
INSTANCE_DOMAIN: "http://example.com:8000"
|
||
|
x-pgnode: &default-pgnode
|
||
|
image: openslides/openslides-repmgr:latest
|
||
|
build: https://github.com/OpenSlides/openslides-docker-compose.git#:repmgr
|
||
|
networks:
|
||
|
- dbnet
|
||
|
labels:
|
||
|
org.openslides.role: "postgres"
|
||
|
restart: always
|
||
|
x-pgnode-env: &default-pgnode-env
|
||
|
REPMGR_RECONNECT_ATTEMPTS: 30
|
||
|
REPMGR_RECONNECT_INTERVAL: 10
|
||
|
|
||
|
services:
|
||
|
server:
|
||
|
image: openslides/openslides-server:latest
|
||
|
networks:
|
||
|
- front
|
||
|
- back
|
||
|
restart: always
|
||
|
# Below is the default command. You can uncomment it to override the
|
||
|
# number of workers, for example:
|
||
|
# command: "gunicorn -w 8 --preload -b 0.0.0.0:8000
|
||
|
# -k uvicorn.workers.UvicornWorker openslides.asgi:application"
|
||
|
#
|
||
|
# Uncomment the following line to use daphne instead of gunicorn:
|
||
|
# command: "daphne -b 0.0.0.0 -p 8000 openslides.asgi:application"
|
||
|
depends_on:
|
||
|
- postfix
|
||
|
- media
|
||
|
- pgbouncer
|
||
|
- redis
|
||
|
- redis-slave
|
||
|
- redis-channels
|
||
|
environment:
|
||
|
<< : *default-server-env
|
||
|
secrets:
|
||
|
- os_admin
|
||
|
- os_user
|
||
|
|
||
|
server-db-setup:
|
||
|
image: openslides/openslides-server:latest
|
||
|
networks:
|
||
|
- back
|
||
|
restart: always
|
||
|
entrypoint: /usr/local/sbin/entrypoint-db-setup
|
||
|
depends_on:
|
||
|
- pgbouncer
|
||
|
- redis
|
||
|
- redis-slave
|
||
|
- redis-channels
|
||
|
environment:
|
||
|
<< : *default-server-env
|
||
|
secrets:
|
||
|
- os_admin
|
||
|
- os_user
|
||
|
|
||
|
client:
|
||
|
image: openslides/openslides-client:latest
|
||
|
restart: always
|
||
|
depends_on:
|
||
|
- server
|
||
|
networks:
|
||
|
- front
|
||
|
ports:
|
||
|
- "127.0.0.1:8000:80"
|
||
|
|
||
|
pgnode1:
|
||
|
<< : *default-pgnode
|
||
|
environment:
|
||
|
<< : *default-pgnode-env
|
||
|
REPMGR_NODE_ID: 1
|
||
|
REPMGR_PRIMARY: # empty; this *is* the primary
|
||
|
volumes:
|
||
|
- "dbdata1:/var/lib/postgresql"
|
||
|
# Note: You can add more postgres nodes by copying the template
|
||
|
# and replacing all %X% with the number of the pgnode. Remember
|
||
|
# to add all pgnodes to the pgbouncer below!
|
||
|
# pgnode%X%:
|
||
|
# << : *default-pgnode
|
||
|
# environment:
|
||
|
# << : *default-pgnode-env
|
||
|
# REPMGR_NODE_ID: %X%
|
||
|
# REPMGR_PRIMARY: pgnode1
|
||
|
# volumes:
|
||
|
# - "dbdata%X%:/var/lib/postgresql"
|
||
|
|
||
|
pgbouncer:
|
||
|
# environment:
|
||
|
# - PG_NODE_LIST=pgnode1,pgnode2,pgnode3
|
||
|
image: openslides/openslides-pgbouncer:latest
|
||
|
build: https://github.com/OpenSlides/openslides-docker-compose.git#:pgbouncer
|
||
|
restart: always
|
||
|
networks:
|
||
|
back:
|
||
|
aliases:
|
||
|
- db
|
||
|
- postgres
|
||
|
dbnet:
|
||
|
postfix:
|
||
|
image: openslides/openslides-postfix:latest
|
||
|
build: https://github.com/OpenSlides/openslides-docker-compose.git#:postfix
|
||
|
restart: always
|
||
|
environment:
|
||
|
MYHOSTNAME: localhost
|
||
|
RELAYHOST: localhost
|
||
|
networks:
|
||
|
- back
|
||
|
redis:
|
||
|
image: redis:alpine
|
||
|
restart: always
|
||
|
networks:
|
||
|
- back
|
||
|
redis-slave:
|
||
|
image: redis:alpine
|
||
|
restart: always
|
||
|
command: ["redis-server", "--save", "", "--slaveof", "redis", "6379"]
|
||
|
depends_on:
|
||
|
- redis
|
||
|
networks:
|
||
|
- back
|
||
|
redis-channels:
|
||
|
image: redis:alpine
|
||
|
restart: always
|
||
|
networks:
|
||
|
- back
|
||
|
media:
|
||
|
image: openslides/openslides-media-service:latest
|
||
|
build: https://github.com/OpenSlides/openslides-media-service.git
|
||
|
environment:
|
||
|
- CHECK_REQUEST_URL=server:8000/check-media/
|
||
|
restart: always
|
||
|
networks:
|
||
|
front:
|
||
|
back:
|
||
|
# Override command to run more workers per task
|
||
|
# command: ["gunicorn", "-w", "4", "--preload", "-b",
|
||
|
# "0.0.0.0:8000", "src.mediaserver:app"]
|
||
|
|
||
|
volumes:
|
||
|
dbdata1:
|
||
|
dbdata2:
|
||
|
dbdata3:
|
||
|
|
||
|
networks:
|
||
|
front:
|
||
|
back:
|
||
|
dbnet:
|
||
|
|
||
|
secrets:
|
||
|
os_admin:
|
||
|
file: ./secrets/admin.env
|
||
|
os_user:
|
||
|
file: ./secrets/user.env
|
||
|
|
||
|
# vim: set ft=yaml sw=2 et:
|