Merge pull request #5988 from FinnStutzenstein/prod
OS4 Prod with swarm mode
This commit is contained in:
commit
4088913d7d
16
.gitmodules
vendored
16
.gitmodules
vendored
@ -1,31 +1,31 @@
|
|||||||
[submodule "openslides-datastore-service"]
|
[submodule "openslides-datastore-service"]
|
||||||
path = openslides-datastore-service
|
path = openslides-datastore-service
|
||||||
url = git@github.com:OpenSlides/openslides-datastore-service.git
|
url = https://github.com/OpenSlides/openslides-datastore-service.git
|
||||||
branch = master
|
branch = master
|
||||||
[submodule "openslides-client"]
|
[submodule "openslides-client"]
|
||||||
path = openslides-client
|
path = openslides-client
|
||||||
url = git@github.com:OpenSlides/openslides-client.git
|
url = https://github.com/OpenSlides/openslides-client.git
|
||||||
branch = master
|
branch = master
|
||||||
[submodule "openslides-backend"]
|
[submodule "openslides-backend"]
|
||||||
path = openslides-backend
|
path = openslides-backend
|
||||||
url = git@github.com:OpenSlides/openslides-backend.git
|
url = https://github.com/OpenSlides/openslides-backend.git
|
||||||
branch = master
|
branch = master
|
||||||
[submodule "openslides-autoupdate-service"]
|
[submodule "openslides-autoupdate-service"]
|
||||||
path = openslides-autoupdate-service
|
path = openslides-autoupdate-service
|
||||||
url = git@github.com:OpenSlides/openslides-autoupdate-service.git
|
url = https://github.com/OpenSlides/openslides-autoupdate-service.git
|
||||||
[submodule "openslides-auth-service"]
|
[submodule "openslides-auth-service"]
|
||||||
path = openslides-auth-service
|
path = openslides-auth-service
|
||||||
url = git@github.com:OpenSlides/openslides-auth-service.git
|
url = https://github.com/OpenSlides/openslides-auth-service.git
|
||||||
branch = master
|
branch = master
|
||||||
[submodule "openslides-media-service"]
|
[submodule "openslides-media-service"]
|
||||||
path = openslides-media-service
|
path = openslides-media-service
|
||||||
url = git@github.com:OpenSlides/openslides-media-service.git
|
url = https://github.com/OpenSlides/openslides-media-service.git
|
||||||
branch = openslides4-dev
|
branch = openslides4-dev
|
||||||
[submodule "openslides-permission-service"]
|
[submodule "openslides-permission-service"]
|
||||||
path = openslides-permission-service
|
path = openslides-permission-service
|
||||||
url = git@github.com:OpenSlides/openslides-permission-service.git
|
url = https://github.com/OpenSlides/openslides-permission-service.git
|
||||||
branch = master
|
branch = master
|
||||||
[submodule "openslides-manage-service"]
|
[submodule "openslides-manage-service"]
|
||||||
path = openslides-manage-service
|
path = openslides-manage-service
|
||||||
url = git@github.com:OpenSlides/openslides-manage-service.git
|
url = https://github.com/OpenSlides/openslides-manage-service.git
|
||||||
branch = main
|
branch = main
|
||||||
|
@ -10,6 +10,8 @@ TARGETS=(
|
|||||||
[backend]="$HOME/../openslides-backend/"
|
[backend]="$HOME/../openslides-backend/"
|
||||||
[auth]="$HOME/../openslides-auth-service/"
|
[auth]="$HOME/../openslides-auth-service/"
|
||||||
[autoupdate]="$HOME/../openslides-autoupdate-service/"
|
[autoupdate]="$HOME/../openslides-autoupdate-service/"
|
||||||
|
[permission]="$HOME/../openslides-permission-service/"
|
||||||
|
[manage]="$HOME/../openslides-manage-service/"
|
||||||
[datastore-reader]="$HOME/../openslides-datastore-service/reader"
|
[datastore-reader]="$HOME/../openslides-datastore-service/reader"
|
||||||
[datastore-writer]="$HOME/../openslides-datastore-service/writer"
|
[datastore-writer]="$HOME/../openslides-datastore-service/writer"
|
||||||
[media]="$HOME/../openslides-media-service/"
|
[media]="$HOME/../openslides-media-service/"
|
||||||
@ -19,11 +21,11 @@ TARGETS=(
|
|||||||
)
|
)
|
||||||
|
|
||||||
DOCKER_REPOSITORY="openslides"
|
DOCKER_REPOSITORY="openslides"
|
||||||
DOCKER_TAG="latest"
|
DOCKER_TAG="latest-4"
|
||||||
CONFIG="/etc/osinstancectl"
|
CONFIG="/etc/osinstancectl"
|
||||||
OPTIONS=()
|
OPTIONS=()
|
||||||
BUILT_IMAGES=()
|
BUILT_IMAGES=()
|
||||||
DEFAULT_TARGETS=(proxy client backend auth autoupdate datastore-reader datastore-writer media)
|
DEFAULT_TARGETS=(proxy client backend auth autoupdate permission manage datastore-reader datastore-writer media)
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
cat << EOF
|
cat << EOF
|
||||||
|
@ -8,6 +8,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- DATASTORE_ENABLE_DEV_ENVIRONMENT=1
|
- DATASTORE_ENABLE_DEV_ENVIRONMENT=1
|
||||||
- NUM_WORKERS=8
|
- NUM_WORKERS=8
|
||||||
|
- OPENSLIDES_DEVELOPMENT=1
|
||||||
volumes:
|
volumes:
|
||||||
- ../openslides-datastore-service/shared/shared:/app/shared
|
- ../openslides-datastore-service/shared/shared:/app/shared
|
||||||
- ../openslides-datastore-service/reader/reader:/app/reader
|
- ../openslides-datastore-service/reader/reader:/app/reader
|
||||||
@ -27,6 +28,7 @@ services:
|
|||||||
- DATASTORE_ENABLE_DEV_ENVIRONMENT=1
|
- DATASTORE_ENABLE_DEV_ENVIRONMENT=1
|
||||||
- COMMAND=create_initial_data
|
- COMMAND=create_initial_data
|
||||||
- DATASTORE_INITIAL_DATA_FILE=https://raw.githubusercontent.com/OpenSlides/OpenSlides/openslides4-dev/docs/example-data.json
|
- DATASTORE_INITIAL_DATA_FILE=https://raw.githubusercontent.com/OpenSlides/OpenSlides/openslides4-dev/docs/example-data.json
|
||||||
|
- OPENSLIDES_DEVELOPMENT=1
|
||||||
ports:
|
ports:
|
||||||
- 9011:9011
|
- 9011:9011
|
||||||
postgres:
|
postgres:
|
||||||
@ -41,6 +43,8 @@ services:
|
|||||||
- backend
|
- backend
|
||||||
- autoupdate
|
- autoupdate
|
||||||
env_file: services.env
|
env_file: services.env
|
||||||
|
environment:
|
||||||
|
- OPENSLIDES_DEVELOPMENT=1
|
||||||
volumes:
|
volumes:
|
||||||
- ../openslides-client/client/src:/app/src
|
- ../openslides-client/client/src:/app/src
|
||||||
backend:
|
backend:
|
||||||
@ -51,6 +55,8 @@ services:
|
|||||||
- auth
|
- auth
|
||||||
- permission
|
- permission
|
||||||
env_file: services.env
|
env_file: services.env
|
||||||
|
environment:
|
||||||
|
- OPENSLIDES_DEVELOPMENT=1
|
||||||
volumes:
|
volumes:
|
||||||
- ../openslides-backend/openslides_backend:/app/openslides_backend
|
- ../openslides-backend/openslides_backend:/app/openslides_backend
|
||||||
ports:
|
ports:
|
||||||
@ -61,6 +67,8 @@ services:
|
|||||||
- datastore-reader
|
- datastore-reader
|
||||||
- message-bus
|
- message-bus
|
||||||
env_file: services.env
|
env_file: services.env
|
||||||
|
environment:
|
||||||
|
- OPENSLIDES_DEVELOPMENT=1
|
||||||
volumes:
|
volumes:
|
||||||
- ../openslides-autoupdate-service/cmd:/root/cmd
|
- ../openslides-autoupdate-service/cmd:/root/cmd
|
||||||
- ../openslides-autoupdate-service/internal:/root/internal
|
- ../openslides-autoupdate-service/internal:/root/internal
|
||||||
@ -69,6 +77,8 @@ services:
|
|||||||
depends_on:
|
depends_on:
|
||||||
- datastore-reader
|
- datastore-reader
|
||||||
env_file: services.env
|
env_file: services.env
|
||||||
|
environment:
|
||||||
|
- OPENSLIDES_DEVELOPMENT=1
|
||||||
volumes:
|
volumes:
|
||||||
- ../openslides-permission-service/cmd:/app/cmd
|
- ../openslides-permission-service/cmd:/app/cmd
|
||||||
- ../openslides-permission-service/internal:/app/internal
|
- ../openslides-permission-service/internal:/app/internal
|
||||||
@ -79,6 +89,8 @@ services:
|
|||||||
- datastore-reader
|
- datastore-reader
|
||||||
- cache
|
- cache
|
||||||
env_file: services.env
|
env_file: services.env
|
||||||
|
environment:
|
||||||
|
- OPENSLIDES_DEVELOPMENT=1
|
||||||
volumes:
|
volumes:
|
||||||
- ../openslides-auth-service/auth/src:/app/src
|
- ../openslides-auth-service/auth/src:/app/src
|
||||||
ports:
|
ports:
|
||||||
@ -91,6 +103,8 @@ services:
|
|||||||
- backend
|
- backend
|
||||||
- postgres
|
- postgres
|
||||||
env_file: services.env
|
env_file: services.env
|
||||||
|
environment:
|
||||||
|
- OPENSLIDES_DEVELOPMENT=1
|
||||||
volumes:
|
volumes:
|
||||||
- ../openslides-media-service/src:/app/src
|
- ../openslides-media-service/src:/app/src
|
||||||
manage:
|
manage:
|
||||||
@ -99,6 +113,8 @@ services:
|
|||||||
- auth
|
- auth
|
||||||
- datastore-writer
|
- datastore-writer
|
||||||
env_file: services.env
|
env_file: services.env
|
||||||
|
environment:
|
||||||
|
- OPENSLIDES_DEVELOPMENT=1
|
||||||
ports:
|
ports:
|
||||||
- "8001:8001"
|
- "8001:8001"
|
||||||
message-bus:
|
message-bus:
|
||||||
|
@ -14,43 +14,46 @@ define(`ifenvelse', `ifelse(read_env(`$1'),, `$2', read_env(`$1'))')
|
|||||||
define(`BACKEND_IMAGE',
|
define(`BACKEND_IMAGE',
|
||||||
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
||||||
ifenvelse(`DOCKER_OPENSLIDES_BACKEND_NAME', openslides-backend):dnl
|
ifenvelse(`DOCKER_OPENSLIDES_BACKEND_NAME', openslides-backend):dnl
|
||||||
ifenvelse(`DOCKER_OPENSLIDES_BACKEND_TAG', latest))
|
ifenvelse(`DOCKER_OPENSLIDES_BACKEND_TAG', latest-4))
|
||||||
define(`PROXY_IMAGE',
|
define(`PROXY_IMAGE',
|
||||||
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
||||||
ifenvelse(`DOCKER_OPENSLIDES_PROXY_NAME', openslides-proxy):dnl
|
ifenvelse(`DOCKER_OPENSLIDES_PROXY_NAME', openslides-proxy):dnl
|
||||||
ifenvelse(`DOCKER_OPENSLIDES_PROXY_TAG', latest))
|
ifenvelse(`DOCKER_OPENSLIDES_PROXY_TAG', latest-4))
|
||||||
define(`CLIENT_IMAGE',
|
define(`CLIENT_IMAGE',
|
||||||
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
||||||
ifenvelse(`DOCKER_OPENSLIDES_CLIENT_NAME', openslides-client):dnl
|
ifenvelse(`DOCKER_OPENSLIDES_CLIENT_NAME', openslides-client):dnl
|
||||||
ifenvelse(`DOCKER_OPENSLIDES_CLIENT_TAG', latest))
|
ifenvelse(`DOCKER_OPENSLIDES_CLIENT_TAG', latest-4))
|
||||||
define(`AUTH_IMAGE',
|
define(`AUTH_IMAGE',
|
||||||
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
||||||
ifenvelse(`DOCKER_OPENSLIDES_AUTH_NAME', openslides-auth):dnl
|
ifenvelse(`DOCKER_OPENSLIDES_AUTH_NAME', openslides-auth):dnl
|
||||||
ifenvelse(`DOCKER_OPENSLIDES_AUTH_TAG', latest))
|
ifenvelse(`DOCKER_OPENSLIDES_AUTH_TAG', latest-4))
|
||||||
define(`AUTOUPDATE_IMAGE',
|
define(`AUTOUPDATE_IMAGE',
|
||||||
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
||||||
ifenvelse(`DOCKER_OPENSLIDES_AUTOUPDATE_NAME', openslides-autoupdate):dnl
|
ifenvelse(`DOCKER_OPENSLIDES_AUTOUPDATE_NAME', openslides-autoupdate):dnl
|
||||||
ifenvelse(`DOCKER_OPENSLIDES_AUTOUPDATE_TAG', latest))
|
ifenvelse(`DOCKER_OPENSLIDES_AUTOUPDATE_TAG', latest-4))
|
||||||
define(`DATASTORE_READER_IMAGE',
|
define(`DATASTORE_READER_IMAGE',
|
||||||
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
||||||
ifenvelse(`DOCKER_OPENSLIDES_DATASTORE_READER_NAME', openslides-datastore-reader):dnl
|
ifenvelse(`DOCKER_OPENSLIDES_DATASTORE_READER_NAME', openslides-datastore-reader):dnl
|
||||||
ifenvelse(`DOCKER_OPENSLIDES_DATASTORE_READER_TAG', latest))
|
ifenvelse(`DOCKER_OPENSLIDES_DATASTORE_READER_TAG', latest-4))
|
||||||
define(`DATASTORE_WRITER_IMAGE',
|
define(`DATASTORE_WRITER_IMAGE',
|
||||||
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
||||||
ifenvelse(`DOCKER_OPENSLIDES_DATASTORE_WRITER_NAME', openslides-datastore-writer):dnl
|
ifenvelse(`DOCKER_OPENSLIDES_DATASTORE_WRITER_NAME', openslides-datastore-writer):dnl
|
||||||
ifenvelse(`DOCKER_OPENSLIDES_DATASTORE_WRITER_TAG', latest))
|
ifenvelse(`DOCKER_OPENSLIDES_DATASTORE_WRITER_TAG', latest-4))
|
||||||
define(`MEDIA_IMAGE',
|
define(`MEDIA_IMAGE',
|
||||||
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
||||||
ifenvelse(`DOCKER_OPENSLIDES_MEDIA_NAME', openslides-media):dnl
|
ifenvelse(`DOCKER_OPENSLIDES_MEDIA_NAME', openslides-media):dnl
|
||||||
ifenvelse(`DOCKER_OPENSLIDES_MEDIA_TAG', latest))
|
ifenvelse(`DOCKER_OPENSLIDES_MEDIA_TAG', latest-4))
|
||||||
define(`MANAGE_IMAGE',
|
define(`MANAGE_IMAGE',
|
||||||
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
||||||
ifenvelse(`DOCKER_OPENSLIDES_MANAGE_NAME', openslides-manage):dnl
|
ifenvelse(`DOCKER_OPENSLIDES_MANAGE_NAME', openslides-manage):dnl
|
||||||
ifenvelse(`DOCKER_OPENSLIDES_MANAGE_TAG', latest))
|
ifenvelse(`DOCKER_OPENSLIDES_MANAGE_TAG', latest-4))
|
||||||
|
define(`PERMISSION_IMAGE',
|
||||||
|
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
||||||
|
ifenvelse(`DOCKER_OPENSLIDES_PERMISSION_NAME', openslides-permission):dnl
|
||||||
|
ifenvelse(`DOCKER_OPENSLIDES_PERMISSION_TAG', latest-4))
|
||||||
|
|
||||||
define(`PROJECT_DIR', ifdef(`PROJECT_DIR',PROJECT_DIR,.))
|
define(`PROJECT_DIR', ifdef(`PROJECT_DIR',PROJECT_DIR,.))
|
||||||
define(`ADMIN_SECRET_AVAILABLE', `syscmd(`test -f 'PROJECT_DIR`/secrets/admin.env')sysval')
|
define(`ADMIN_SECRET_AVAILABLE', `syscmd(`test -f 'PROJECT_DIR`/secrets/admin.env')sysval')
|
||||||
define(`USER_SECRET_AVAILABLE', `syscmd(`test -f 'PROJECT_DIR`/secrets/user.env')sysval')
|
|
||||||
divert(0)dnl
|
divert(0)dnl
|
||||||
dnl ----------------------------------------
|
dnl ----------------------------------------
|
||||||
# This configuration was created from a template file. Before making changes,
|
# This configuration was created from a template file. Before making changes,
|
||||||
@ -88,6 +91,9 @@ services:
|
|||||||
- datastore-reader
|
- datastore-reader
|
||||||
- datastore-writer
|
- datastore-writer
|
||||||
env_file: services.env
|
env_file: services.env
|
||||||
|
environment:
|
||||||
|
- AUTH_TOKEN_KEY=test123
|
||||||
|
- AUTH_COOKIE_KEY=test123
|
||||||
networks:
|
networks:
|
||||||
- frontend
|
- frontend
|
||||||
- backend
|
- backend
|
||||||
@ -103,6 +109,7 @@ services:
|
|||||||
- backend
|
- backend
|
||||||
- datastore-reader
|
- datastore-reader
|
||||||
- postgres
|
- postgres
|
||||||
|
|
||||||
datastore-writer:
|
datastore-writer:
|
||||||
image: DATASTORE_WRITER_IMAGE
|
image: DATASTORE_WRITER_IMAGE
|
||||||
depends_on:
|
depends_on:
|
||||||
@ -118,6 +125,7 @@ services:
|
|||||||
- DATASTORE_INITIAL_DATA_FILE=/data/initial-data.json
|
- DATASTORE_INITIAL_DATA_FILE=/data/initial-data.json
|
||||||
volumes:
|
volumes:
|
||||||
- ./initial-data.json:/data/initial-data.json
|
- ./initial-data.json:/data/initial-data.json
|
||||||
|
|
||||||
postgres:
|
postgres:
|
||||||
image: postgres:11
|
image: postgres:11
|
||||||
environment:
|
environment:
|
||||||
@ -133,6 +141,9 @@ services:
|
|||||||
- datastore-reader
|
- datastore-reader
|
||||||
- message-bus
|
- message-bus
|
||||||
env_file: services.env
|
env_file: services.env
|
||||||
|
environment:
|
||||||
|
- AUTH_KEY_TOKEN=test123
|
||||||
|
- AUTH_KEY_COOKIE=test123
|
||||||
networks:
|
networks:
|
||||||
- frontend
|
- frontend
|
||||||
- backend
|
- backend
|
||||||
@ -145,13 +156,15 @@ services:
|
|||||||
- message-bus
|
- message-bus
|
||||||
- cache
|
- cache
|
||||||
env_file: services.env
|
env_file: services.env
|
||||||
|
environment:
|
||||||
|
- AUTH_TOKEN_KEY=test123
|
||||||
|
- AUTH_COOKIE_KEY=test123
|
||||||
networks:
|
networks:
|
||||||
- datastore-reader
|
- datastore-reader
|
||||||
- frontend
|
- frontend
|
||||||
- message-bus
|
- message-bus
|
||||||
- auth
|
- auth
|
||||||
volumes:
|
|
||||||
- ./keys:/keys
|
|
||||||
cache:
|
cache:
|
||||||
image: redis:latest
|
image: redis:latest
|
||||||
networks:
|
networks:
|
||||||
@ -183,6 +196,26 @@ services:
|
|||||||
- backend
|
- backend
|
||||||
- auth
|
- auth
|
||||||
|
|
||||||
|
manage-setup:
|
||||||
|
image: MANAGE_IMAGE
|
||||||
|
entrypoint: /root/entrypoint-setup
|
||||||
|
depends_on:
|
||||||
|
- manage
|
||||||
|
env_file: services.env
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
ifelse(ADMIN_SECRET_AVAILABLE, 0,secrets:
|
||||||
|
- admin)
|
||||||
|
|
||||||
|
permission:
|
||||||
|
image: PERMISSION_IMAGE
|
||||||
|
depends_on:
|
||||||
|
- datastore-reader
|
||||||
|
env_file: services.env
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
- auth
|
||||||
|
|
||||||
# Setup: host <-uplink-> proxy <-frontend-> services that are reachable from the client <-backend-> services that are internal-only
|
# Setup: host <-uplink-> proxy <-frontend-> services that are reachable from the client <-backend-> services that are internal-only
|
||||||
# There are special networks for some services only, e.g. postgres only for the postgresql, datastore reader and datastore writer
|
# There are special networks for some services only, e.g. postgres only for the postgresql, datastore reader and datastore writer
|
||||||
networks:
|
networks:
|
||||||
@ -200,8 +233,6 @@ networks:
|
|||||||
auth:
|
auth:
|
||||||
internal: true
|
internal: true
|
||||||
|
|
||||||
dnl secrets:
|
ifelse(ADMIN_SECRET_AVAILABLE, 0,secrets:
|
||||||
dnl ifelse(ADMIN_SECRET_AVAILABLE, 0,os_admin:
|
admin:
|
||||||
dnl file: ./secrets/admin.env)
|
file: ./secrets/admin.env)
|
||||||
dnl ifelse(USER_SECRET_AVAILABLE, 0,os_user:
|
|
||||||
dnl file: ./secrets/user.env)
|
|
||||||
|
@ -12,21 +12,48 @@ define(`read_env', `esyscmd(`printf "%s" "$$1"')')
|
|||||||
define(`ifenvelse', `ifelse(read_env(`$1'),, `$2', read_env(`$1'))')
|
define(`ifenvelse', `ifelse(read_env(`$1'),, `$2', read_env(`$1'))')
|
||||||
|
|
||||||
define(`BACKEND_IMAGE',
|
define(`BACKEND_IMAGE',
|
||||||
ifenvelse(`DOCKER_OPENSLIDES_BACKEND_NAME', openslides/openslides-server):dnl
|
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
||||||
ifenvelse(`DOCKER_OPENSLIDES_BACKEND_TAG', latest))
|
ifenvelse(`DOCKER_OPENSLIDES_BACKEND_NAME', openslides-backend):dnl
|
||||||
define(`FRONTEND_IMAGE',
|
ifenvelse(`DOCKER_OPENSLIDES_BACKEND_TAG', latest-4))
|
||||||
ifenvelse(`DOCKER_OPENSLIDES_FRONTEND_NAME', openslides/openslides-client):dnl
|
define(`PROXY_IMAGE',
|
||||||
ifenvelse(`DOCKER_OPENSLIDES_FRONTEND_TAG', latest))
|
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
||||||
|
ifenvelse(`DOCKER_OPENSLIDES_PROXY_NAME', openslides-proxy):dnl
|
||||||
define(`PRIMARY_DB', `ifenvelse(`PGNODE_REPMGR_PRIMARY', pgnode1)')
|
ifenvelse(`DOCKER_OPENSLIDES_PROXY_TAG', latest-4))
|
||||||
|
define(`CLIENT_IMAGE',
|
||||||
define(`PGBOUNCER_NODELIST',
|
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
||||||
`ifelse(read_env(`PGNODE_2_ENABLED'), 1, `,pgnode2')`'dnl
|
ifenvelse(`DOCKER_OPENSLIDES_CLIENT_NAME', openslides-client):dnl
|
||||||
ifelse(read_env(`PGNODE_3_ENABLED'), 1, `,pgnode3')')
|
ifenvelse(`DOCKER_OPENSLIDES_CLIENT_TAG', latest-4))
|
||||||
|
define(`AUTH_IMAGE',
|
||||||
|
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
||||||
|
ifenvelse(`DOCKER_OPENSLIDES_AUTH_NAME', openslides-auth):dnl
|
||||||
|
ifenvelse(`DOCKER_OPENSLIDES_AUTH_TAG', latest-4))
|
||||||
|
define(`AUTOUPDATE_IMAGE',
|
||||||
|
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
||||||
|
ifenvelse(`DOCKER_OPENSLIDES_AUTOUPDATE_NAME', openslides-autoupdate):dnl
|
||||||
|
ifenvelse(`DOCKER_OPENSLIDES_AUTOUPDATE_TAG', latest-4))
|
||||||
|
define(`DATASTORE_READER_IMAGE',
|
||||||
|
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
||||||
|
ifenvelse(`DOCKER_OPENSLIDES_DATASTORE_READER_NAME', openslides-datastore-reader):dnl
|
||||||
|
ifenvelse(`DOCKER_OPENSLIDES_DATASTORE_READER_TAG', latest-4))
|
||||||
|
define(`DATASTORE_WRITER_IMAGE',
|
||||||
|
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
||||||
|
ifenvelse(`DOCKER_OPENSLIDES_DATASTORE_WRITER_NAME', openslides-datastore-writer):dnl
|
||||||
|
ifenvelse(`DOCKER_OPENSLIDES_DATASTORE_WRITER_TAG', latest-4))
|
||||||
|
define(`MEDIA_IMAGE',
|
||||||
|
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
||||||
|
ifenvelse(`DOCKER_OPENSLIDES_MEDIA_NAME', openslides-media):dnl
|
||||||
|
ifenvelse(`DOCKER_OPENSLIDES_MEDIA_TAG', latest-4))
|
||||||
|
define(`MANAGE_IMAGE',
|
||||||
|
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
||||||
|
ifenvelse(`DOCKER_OPENSLIDES_MANAGE_NAME', openslides-manage):dnl
|
||||||
|
ifenvelse(`DOCKER_OPENSLIDES_MANAGE_TAG', latest-4))
|
||||||
|
define(`PERMISSION_IMAGE',
|
||||||
|
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
||||||
|
ifenvelse(`DOCKER_OPENSLIDES_PERMISSION_NAME', openslides-permission):dnl
|
||||||
|
ifenvelse(`DOCKER_OPENSLIDES_PERMISSION_TAG', latest-4))
|
||||||
|
|
||||||
define(`PROJECT_DIR', ifdef(`PROJECT_DIR',PROJECT_DIR,.))
|
define(`PROJECT_DIR', ifdef(`PROJECT_DIR',PROJECT_DIR,.))
|
||||||
define(`ADMIN_SECRET_AVAILABLE', `syscmd(`test -f 'PROJECT_DIR`/secrets/adminsecret.env')sysval')
|
define(`ADMIN_SECRET_AVAILABLE', `syscmd(`test -f 'PROJECT_DIR`/secrets/admin.env')sysval')
|
||||||
define(`USER_SECRET_AVAILABLE', `syscmd(`test -f 'PROJECT_DIR`/secrets/usersecret.env')sysval')
|
|
||||||
divert(0)dnl
|
divert(0)dnl
|
||||||
dnl ----------------------------------------
|
dnl ----------------------------------------
|
||||||
# This configuration was created from a template file. Before making changes,
|
# This configuration was created from a template file. Before making changes,
|
||||||
@ -35,242 +62,217 @@ dnl ----------------------------------------
|
|||||||
# place for customizations instead.
|
# place for customizations instead.
|
||||||
version: '3.4'
|
version: '3.4'
|
||||||
|
|
||||||
x-osserver:
|
|
||||||
&default-osserver
|
|
||||||
image: BACKEND_IMAGE
|
|
||||||
networks:
|
|
||||||
- front
|
|
||||||
- back
|
|
||||||
x-osserver-env: &default-osserver-env
|
|
||||||
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)"
|
|
||||||
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',)"
|
|
||||||
JITSI_ROOM_PASSWORD: "ifenvelse(`JITSI_ROOM_PASSWORD',)"
|
|
||||||
JITSI_ROOM_NAME: "ifenvelse(`JITSI_ROOM_NAME',)"
|
|
||||||
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
|
|
||||||
image: ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/openslides-repmgr:latest
|
|
||||||
networks:
|
|
||||||
- dbnet
|
|
||||||
labels:
|
|
||||||
org.openslides.role: "postgres"
|
|
||||||
deploy:
|
|
||||||
replicas: 1
|
|
||||||
x-pgnode-env: &default-pgnode-env
|
|
||||||
REPMGR_RECONNECT_ATTEMPTS: 30
|
|
||||||
REPMGR_RECONNECT_INTERVAL: 10
|
|
||||||
REPMGR_WAL_ARCHIVE: "ifenvelse(`PGNODE_WAL_ARCHIVING', on)"
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
server:
|
proxy:
|
||||||
<< : *default-osserver
|
image: PROXY_IMAGE
|
||||||
# Below is the default command. You can uncomment it to override the
|
networks:
|
||||||
# number of workers, for example:
|
- uplink
|
||||||
# command: "gunicorn -w 8 --preload -b 0.0.0.0:8000
|
- frontend
|
||||||
# -k uvicorn.workers.UvicornWorker openslides.asgi:application"
|
ports:
|
||||||
#
|
- "127.0.0.1:ifenvelse(`EXTERNAL_HTTP_PORT', 8000):8000"
|
||||||
# Uncomment the following line to use daphne instead of gunicorn:
|
|
||||||
# command: "daphne -b 0.0.0.0 -p 8000 openslides.asgi:application"
|
|
||||||
environment:
|
|
||||||
<< : *default-osserver-env
|
|
||||||
secrets:
|
|
||||||
- django
|
|
||||||
ifelse(read_env(`ENABLE_SAML'), `True',- saml_cert
|
|
||||||
- saml_key
|
|
||||||
- saml_config)
|
|
||||||
deploy:
|
deploy:
|
||||||
restart_policy:
|
restart_policy:
|
||||||
condition: on-failure
|
condition: on-failure
|
||||||
delay: 5s
|
delay: 5s
|
||||||
replicas: ifenvelse(`OPENSLIDES_BACKEND_SERVICE_REPLICAS', 1)
|
replicas: ifenvelse(`OPENSLIDES_PROXY_REPLICAS', 1)
|
||||||
|
|
||||||
server-setup:
|
|
||||||
<< : *default-osserver
|
|
||||||
entrypoint: /usr/local/sbin/entrypoint-db-setup
|
|
||||||
environment:
|
|
||||||
<< : *default-osserver-env
|
|
||||||
secrets:
|
|
||||||
- django
|
|
||||||
ifelse(ADMIN_SECRET_AVAILABLE, 0,- os_admin)
|
|
||||||
ifelse(USER_SECRET_AVAILABLE, 0,- os_user)
|
|
||||||
ifelse(read_env(`ENABLE_SAML'), `True',- saml_cert
|
|
||||||
- saml_key
|
|
||||||
- saml_config)
|
|
||||||
|
|
||||||
client:
|
client:
|
||||||
image: FRONTEND_IMAGE
|
image: CLIENT_IMAGE
|
||||||
networks:
|
networks:
|
||||||
- front
|
- frontend
|
||||||
ports:
|
deploy:
|
||||||
- "0.0.0.0:ifenvelse(`EXTERNAL_HTTP_PORT', 8000):80"
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
delay: 5s
|
||||||
|
replicas: ifenvelse(`OPENSLIDES_CLIENT_REPLICAS', 1)
|
||||||
|
|
||||||
|
backend:
|
||||||
|
image: BACKEND_IMAGE
|
||||||
|
env_file: services.env
|
||||||
|
environment:
|
||||||
|
- AUTH_TOKEN_KEY=test123
|
||||||
|
- AUTH_COOKIE_KEY=test123
|
||||||
|
networks:
|
||||||
|
- frontend
|
||||||
|
- backend
|
||||||
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
delay: 5s
|
||||||
|
replicas: ifenvelse(`OPENSLIDES_BACKEND_REPLICAS', 1)
|
||||||
|
|
||||||
|
datastore-reader:
|
||||||
|
image: DATASTORE_READER_IMAGE
|
||||||
|
env_file: services.env
|
||||||
|
environment:
|
||||||
|
- NUM_WORKERS=8
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
- datastore-reader
|
||||||
|
- postgres
|
||||||
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
delay: 5s
|
||||||
|
replicas: ifenvelse(`OPENSLIDES_DATASTORE_READER_REPLICAS', 1)
|
||||||
|
|
||||||
|
datastore-writer:
|
||||||
|
image: DATASTORE_WRITER_IMAGE
|
||||||
|
env_file: services.env
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
- postgres
|
||||||
|
- message-bus
|
||||||
|
environment:
|
||||||
|
- COMMAND=create_initial_data
|
||||||
|
- DATASTORE_INITIAL_DATA_FILE=/data/initial-data.json
|
||||||
|
volumes:
|
||||||
|
- ./initial-data.json:/data/initial-data.json
|
||||||
deploy:
|
deploy:
|
||||||
replicas: ifenvelse(`OPENSLIDES_FRONTEND_SERVICE_REPLICAS', 1)
|
|
||||||
restart_policy:
|
restart_policy:
|
||||||
condition: on-failure
|
condition: on-failure
|
||||||
delay: 5s
|
delay: 5s
|
||||||
|
|
||||||
pgnode1:
|
postgres:
|
||||||
<< : *default-pgnode
|
image: postgres:11
|
||||||
environment:
|
environment:
|
||||||
<< : *default-pgnode-env
|
- POSTGRES_USER=openslides
|
||||||
REPMGR_NODE_ID: 1
|
- POSTGRES_PASSWORD=openslides
|
||||||
REPMGR_PRIMARY: ifelse(PRIMARY_DB, pgnode1, `# This is the primary', PRIMARY_DB)
|
- POSTGRES_DB=openslides
|
||||||
|
networks:
|
||||||
|
- postgres
|
||||||
deploy:
|
deploy:
|
||||||
placement:
|
restart_policy:
|
||||||
constraints: ifenvelse(`PGNODE_1_PLACEMENT_CONSTR', [node.labels.openslides-db == dbnode1])
|
condition: on-failure
|
||||||
volumes:
|
delay: 5s
|
||||||
- "dbdata1:/var/lib/postgresql"
|
|
||||||
ifelse(read_env(`PGNODE_2_ENABLED'), 1, `'
|
|
||||||
pgnode2:
|
|
||||||
<< : *default-pgnode
|
|
||||||
environment:
|
|
||||||
<< : *default-pgnode-env
|
|
||||||
REPMGR_NODE_ID: 2
|
|
||||||
REPMGR_PRIMARY: ifelse(PRIMARY_DB, pgnode2, `# This is the primary', PRIMARY_DB)
|
|
||||||
deploy:
|
|
||||||
placement:
|
|
||||||
constraints: ifenvelse(`PGNODE_2_PLACEMENT_CONSTR', [node.labels.openslides-db == dbnode2])
|
|
||||||
volumes:
|
|
||||||
- "dbdata2:/var/lib/postgresql")
|
|
||||||
ifelse(read_env(`PGNODE_3_ENABLED'), 1, `'
|
|
||||||
pgnode3:
|
|
||||||
<< : *default-pgnode
|
|
||||||
environment:
|
|
||||||
<< : *default-pgnode-env
|
|
||||||
REPMGR_NODE_ID: 3
|
|
||||||
REPMGR_PRIMARY: ifelse(PRIMARY_DB, pgnode3, `# This is the primary', PRIMARY_DB)
|
|
||||||
deploy:
|
|
||||||
placement:
|
|
||||||
constraints: ifenvelse(`PGNODE_3_PLACEMENT_CONSTR', [node.labels.openslides-db == dbnode3])
|
|
||||||
volumes:
|
|
||||||
- "dbdata3:/var/lib/postgresql")
|
|
||||||
|
|
||||||
pgbouncer:
|
autoupdate:
|
||||||
|
image: AUTOUPDATE_IMAGE
|
||||||
|
env_file: services.env
|
||||||
environment:
|
environment:
|
||||||
- PG_NODE_LIST=pgnode1`'PGBOUNCER_NODELIST
|
- AUTH_KEY_TOKEN=test123
|
||||||
image: ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/openslides-pgbouncer:latest
|
- AUTH_KEY_COOKIE=test123
|
||||||
networks:
|
networks:
|
||||||
back:
|
- frontend
|
||||||
aliases:
|
- backend
|
||||||
- db
|
- message-bus
|
||||||
- postgres
|
|
||||||
dbnet:
|
|
||||||
deploy:
|
deploy:
|
||||||
restart_policy:
|
restart_policy:
|
||||||
condition: on-failure
|
condition: on-failure
|
||||||
delay: 10s
|
delay: 5s
|
||||||
placement:
|
replicas: ifenvelse(`OPENSLIDES_AUTOUPDATE_REPLICAS', 1)
|
||||||
constraints: ifenvelse(`PGBOUNCER_PLACEMENT_CONSTR', [node.role == manager])
|
|
||||||
postfix:
|
auth:
|
||||||
image: ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/openslides-postfix:latest
|
image: AUTH_IMAGE
|
||||||
|
env_file: services.env
|
||||||
environment:
|
environment:
|
||||||
MYHOSTNAME: "ifenvelse(`POSTFIX_MYHOSTNAME', localhost)"
|
- AUTH_TOKEN_KEY=test123
|
||||||
RELAYHOST: "ifenvelse(`POSTFIX_RELAYHOST', localhost)"
|
- AUTH_COOKIE_KEY=test123
|
||||||
networks:
|
networks:
|
||||||
- back
|
- datastore-reader
|
||||||
|
- frontend
|
||||||
|
- message-bus
|
||||||
|
- auth
|
||||||
deploy:
|
deploy:
|
||||||
restart_policy:
|
restart_policy:
|
||||||
condition: on-failure
|
condition: on-failure
|
||||||
delay: 5s
|
delay: 5s
|
||||||
replicas: 1
|
replicas: ifenvelse(`OPENSLIDES_AUTH_REPLICAS', 1)
|
||||||
placement:
|
|
||||||
constraints: [node.role == manager]
|
cache:
|
||||||
redis:
|
image: redis:latest
|
||||||
image: redis:alpine
|
|
||||||
networks:
|
networks:
|
||||||
back:
|
- auth
|
||||||
aliases:
|
|
||||||
- rediscache
|
|
||||||
deploy:
|
deploy:
|
||||||
replicas: 1
|
|
||||||
restart_policy:
|
restart_policy:
|
||||||
condition: on-failure
|
condition: on-failure
|
||||||
delay: 5s
|
delay: 5s
|
||||||
redis-slave:
|
|
||||||
image: redis:alpine
|
message-bus:
|
||||||
command: ["redis-server", "--save", "", "--slaveof", "redis", "6379"]
|
image: redis:latest
|
||||||
networks:
|
networks:
|
||||||
back:
|
- message-bus
|
||||||
aliases:
|
|
||||||
- rediscache-slave
|
|
||||||
deploy:
|
deploy:
|
||||||
replicas: ifenvelse(`REDIS_RO_SERVICE_REPLICAS', 3)
|
|
||||||
restart_policy:
|
|
||||||
condition: on-failure
|
|
||||||
delay: 5s
|
|
||||||
redis-channels:
|
|
||||||
image: redis:alpine
|
|
||||||
networks:
|
|
||||||
back:
|
|
||||||
deploy:
|
|
||||||
replicas: 1
|
|
||||||
restart_policy:
|
restart_policy:
|
||||||
condition: on-failure
|
condition: on-failure
|
||||||
delay: 5s
|
delay: 5s
|
||||||
|
|
||||||
media:
|
media:
|
||||||
image: ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/openslides-media-service:latest
|
image: MEDIA_IMAGE
|
||||||
environment:
|
env_file: services.env
|
||||||
- CHECK_REQUEST_URL=server:8000/check-media/
|
networks:
|
||||||
|
- frontend
|
||||||
|
- backend
|
||||||
|
- postgres
|
||||||
deploy:
|
deploy:
|
||||||
replicas: ifenvelse(`MEDIA_SERVICE_REPLICAS', 8)
|
|
||||||
restart_policy:
|
restart_policy:
|
||||||
condition: on-failure
|
condition: on-failure
|
||||||
delay: 10s
|
delay: 5s
|
||||||
networks:
|
replicas: ifenvelse(`OPENSLIDES_MEDIA_REPLICAS', 1)
|
||||||
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:
|
manage:
|
||||||
dbdata1:
|
image: MANAGE_IMAGE
|
||||||
ifelse(read_env(`PGNODE_2_ENABLED'), 1, ` dbdata2:')
|
env_file: services.env
|
||||||
ifelse(read_env(`PGNODE_3_ENABLED'), 1, ` dbdata3:')
|
networks:
|
||||||
|
- backend
|
||||||
|
- auth
|
||||||
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
delay: 5s
|
||||||
|
|
||||||
|
manage-setup:
|
||||||
|
image: MANAGE_IMAGE
|
||||||
|
entrypoint: /root/entrypoint-setup
|
||||||
|
env_file: services.env
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
ifelse(ADMIN_SECRET_AVAILABLE, 0,secrets:
|
||||||
|
- admin)
|
||||||
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
delay: 5s
|
||||||
|
|
||||||
|
permission:
|
||||||
|
image: PERMISSION_IMAGE
|
||||||
|
env_file: services.env
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
- auth
|
||||||
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
delay: 5s
|
||||||
|
replicas: ifenvelse(`OPENSLIDES_PERMISSION_REPLICAS', 1)
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
front:
|
uplink:
|
||||||
back:
|
frontend:
|
||||||
driver_opts:
|
driver_opts:
|
||||||
encrypted: ""
|
encrypted: ""
|
||||||
dbnet:
|
internal: true
|
||||||
|
backend:
|
||||||
driver_opts:
|
driver_opts:
|
||||||
encrypted: ""
|
encrypted: ""
|
||||||
|
internal: true
|
||||||
|
postgres:
|
||||||
|
driver_opts:
|
||||||
|
encrypted: ""
|
||||||
|
internal: true
|
||||||
|
datastore-reader:
|
||||||
|
driver_opts:
|
||||||
|
encrypted: ""
|
||||||
|
internal: true
|
||||||
|
message-bus:
|
||||||
|
driver_opts:
|
||||||
|
encrypted: ""
|
||||||
|
internal: true
|
||||||
|
auth:
|
||||||
|
driver_opts:
|
||||||
|
encrypted: ""
|
||||||
|
internal: true
|
||||||
|
|
||||||
secrets:
|
ifelse(ADMIN_SECRET_AVAILABLE, 0,secrets:
|
||||||
django:
|
admin:
|
||||||
file: ./secrets/django.env
|
file: ./secrets/admin.env)
|
||||||
ifelse(ADMIN_SECRET_AVAILABLE, 0,os_admin:
|
|
||||||
file: ./secrets/adminsecret.env)
|
|
||||||
ifelse(USER_SECRET_AVAILABLE, 0,os_user:
|
|
||||||
file: ./secrets/usersecret.env)
|
|
||||||
ifelse(read_env(`ENABLE_SAML'), `True', saml_cert:
|
|
||||||
file: ./secrets/saml/sp.crt
|
|
||||||
saml_key:
|
|
||||||
file: ./secrets/saml/sp.key
|
|
||||||
saml_config:
|
|
||||||
file: ./secrets/saml/saml_settings.json)
|
|
||||||
|
|
||||||
# vim: set sw=2 et:
|
|
||||||
|
@ -12,6 +12,9 @@ ACTION_PORT=9002
|
|||||||
PRESENTER_HOST=backend
|
PRESENTER_HOST=backend
|
||||||
PRESENTER_PORT=9003
|
PRESENTER_PORT=9003
|
||||||
|
|
||||||
|
AUTOUPDATE_HOST=autoupdate
|
||||||
|
AUTOUPDATE_PORT=9012
|
||||||
|
|
||||||
PERMISSION_HOST=permission
|
PERMISSION_HOST=permission
|
||||||
PERMISSION_PORT=9005
|
PERMISSION_PORT=9005
|
||||||
|
|
||||||
@ -24,3 +27,6 @@ MEDIA_HOST=media
|
|||||||
MEDIA_PORT=9006
|
MEDIA_PORT=9006
|
||||||
MEDIA_DATABASE_HOST=postgres
|
MEDIA_DATABASE_HOST=postgres
|
||||||
MEDIA_DATABASE_NAME=openslides
|
MEDIA_DATABASE_NAME=openslides
|
||||||
|
|
||||||
|
MANAGE_HOST=manage
|
||||||
|
MANAGE_PORT=9008
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit fb6e25d7a88ec8202b5080b5563e95451b6071c3
|
Subproject commit d284650811d2ae0bb512c4db268952862b5722b4
|
@ -1 +1 @@
|
|||||||
Subproject commit acef4bbf409f53f90f34f68a6ab2c5794f023981
|
Subproject commit a24b735b482be4ff5f5425f2e92dd85f805f353d
|
@ -1 +1 @@
|
|||||||
Subproject commit 88e620ec4efd634f8fbbffad9c35d4a541a69fcd
|
Subproject commit 412741773c15a0d4515c12910416a16a50faada8
|
@ -1 +1 @@
|
|||||||
Subproject commit a40e5bd940c41a1eb98533a01f046c0061e2d866
|
Subproject commit df61ded339c1cb07e46876d4e463c5f9812d25cc
|
@ -1 +1 @@
|
|||||||
Subproject commit e30d357684526c139a397e11ed77ab5befcf2598
|
Subproject commit c33b68b0c701f7fc503096c1d89d6c82e5a50232
|
@ -1,12 +1,12 @@
|
|||||||
import endpoint
|
import endpoint
|
||||||
|
|
||||||
reverse_proxy /system/action/* backend:9002
|
reverse_proxy /system/action* backend:9002
|
||||||
reverse_proxy /system/presenter/* backend:9003
|
reverse_proxy /system/presenter* backend:9003
|
||||||
reverse_proxy /system/autoupdate/* autoupdate:9012 {
|
reverse_proxy /system/autoupdate* autoupdate:9012 {
|
||||||
flush_interval -1
|
flush_interval -1
|
||||||
}
|
}
|
||||||
reverse_proxy /system/auth/* auth:9004
|
reverse_proxy /system/auth* auth:9004
|
||||||
reverse_proxy /system/media/* media:9006
|
reverse_proxy /system/media* media:9006
|
||||||
|
|
||||||
reverse_proxy client:9001
|
reverse_proxy client:9001
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user