Merge pull request #6152 from normanjaeckel/RemoveProdSetup
Moved production setup to manage service.
This commit is contained in:
commit
2a5b4a3126
@ -45,7 +45,7 @@ Setup initial-data:
|
||||
|
||||
$ ./manage initial-data
|
||||
|
||||
Now you can open http://localhost:8000 and use OpenSlides.
|
||||
Now you can open https://localhost:8000 and use OpenSlides. # TODO: Enable HTTPS support
|
||||
|
||||
To stop OpenSlides run:
|
||||
|
||||
|
@ -1,270 +0,0 @@
|
||||
dnl This is a YAML template file. Simply translate it with m4 to create
|
||||
dnl a standard configuration. Customizations can and should be added in .env
|
||||
dnl by setting the appropriate variables.
|
||||
dnl
|
||||
dnl Usage:
|
||||
dnl m4 docker-compose.yml.m4 > docker-compose.yml
|
||||
dnl ( set -a; source .env; m4 docker-compose.yml.m4 ) > docker-compose.yml
|
||||
dnl
|
||||
dnl ----------------------------------------
|
||||
divert(-1)dnl
|
||||
define(`read_env', `esyscmd(`printf "%s" "$$1"')')
|
||||
define(`ifenvelse', `ifelse(read_env(`$1'),, `$2', read_env(`$1'))')
|
||||
|
||||
define(`BACKEND_IMAGE',
|
||||
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
||||
ifenvelse(`DOCKER_OPENSLIDES_BACKEND_NAME', openslides-backend):dnl
|
||||
ifenvelse(`DOCKER_OPENSLIDES_BACKEND_TAG', latest-4))
|
||||
define(`PROXY_IMAGE',
|
||||
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
||||
ifenvelse(`DOCKER_OPENSLIDES_PROXY_NAME', openslides-proxy):dnl
|
||||
ifenvelse(`DOCKER_OPENSLIDES_PROXY_TAG', latest-4))
|
||||
define(`CLIENT_IMAGE',
|
||||
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
||||
ifenvelse(`DOCKER_OPENSLIDES_CLIENT_NAME', openslides-client):dnl
|
||||
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(`ICC_IMAGE',
|
||||
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
||||
ifenvelse(`DOCKER_OPENSLIDES_ICC_NAME', openslides-icc):dnl
|
||||
ifenvelse(`DOCKER_OPENSLIDES_ICC_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(`ADMIN_SECRET_AVAILABLE', `syscmd(`test -f 'PROJECT_DIR`/secrets/admin.env')sysval')
|
||||
divert(0)dnl
|
||||
dnl ----------------------------------------
|
||||
# This configuration was created from a template file. Before making changes,
|
||||
# please make sure that you do not have a process in place that would override
|
||||
# your changes in the future. The accompanying .env file might be the correct
|
||||
# place for customizations instead.
|
||||
version: '3.4'
|
||||
|
||||
services:
|
||||
proxy:
|
||||
image: PROXY_IMAGE
|
||||
depends_on:
|
||||
- client
|
||||
- backend
|
||||
- autoupdate
|
||||
- auth
|
||||
- media
|
||||
networks:
|
||||
- uplink
|
||||
- frontend
|
||||
ports:
|
||||
- "127.0.0.1:ifenvelse(`EXTERNAL_HTTP_PORT', 8000):8000"
|
||||
|
||||
client:
|
||||
image: CLIENT_IMAGE
|
||||
networks:
|
||||
- frontend
|
||||
depends_on:
|
||||
- backend
|
||||
- autoupdate
|
||||
|
||||
backend:
|
||||
image: BACKEND_IMAGE
|
||||
depends_on:
|
||||
- datastore-reader
|
||||
- datastore-writer
|
||||
env_file: services.env
|
||||
networks:
|
||||
- frontend
|
||||
- backend
|
||||
secrets:
|
||||
- auth_token_key
|
||||
- auth_cookie_key
|
||||
|
||||
datastore-reader:
|
||||
image: DATASTORE_READER_IMAGE
|
||||
depends_on:
|
||||
- postgres
|
||||
env_file: services.env
|
||||
environment:
|
||||
- NUM_WORKERS=8
|
||||
networks:
|
||||
- backend
|
||||
- datastore-reader
|
||||
- postgres
|
||||
|
||||
datastore-writer:
|
||||
image: DATASTORE_WRITER_IMAGE
|
||||
depends_on:
|
||||
- postgres
|
||||
- message-bus
|
||||
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
|
||||
|
||||
postgres:
|
||||
image: postgres:11
|
||||
environment:
|
||||
- POSTGRES_USER=openslides
|
||||
- POSTGRES_PASSWORD=openslides
|
||||
- POSTGRES_DB=openslides
|
||||
networks:
|
||||
- postgres
|
||||
|
||||
autoupdate:
|
||||
image: AUTOUPDATE_IMAGE
|
||||
depends_on:
|
||||
- datastore-reader
|
||||
- message-bus
|
||||
- auth
|
||||
env_file: services.env
|
||||
networks:
|
||||
- frontend
|
||||
- backend
|
||||
- message-bus
|
||||
secrets:
|
||||
- auth_token_key
|
||||
- auth_cookie_key
|
||||
|
||||
icc:
|
||||
image: ICC_IMAGE
|
||||
depends_on:
|
||||
- datastore-reader
|
||||
- message-bus
|
||||
- auth
|
||||
enc_file: services.env
|
||||
networks:
|
||||
- frontend
|
||||
- backend
|
||||
- message-bus
|
||||
secrets:
|
||||
- auth_token_key
|
||||
- auth_cookie_key
|
||||
|
||||
auth:
|
||||
image: AUTH_IMAGE
|
||||
depends_on:
|
||||
- datastore-reader
|
||||
- message-bus
|
||||
- cache
|
||||
env_file: services.env
|
||||
networks:
|
||||
- datastore-reader
|
||||
- frontend
|
||||
- message-bus
|
||||
- auth
|
||||
secrets:
|
||||
- auth_token_key
|
||||
- auth_cookie_key
|
||||
|
||||
cache:
|
||||
image: redis:latest
|
||||
networks:
|
||||
- auth
|
||||
|
||||
message-bus:
|
||||
image: redis:latest
|
||||
networks:
|
||||
- message-bus
|
||||
|
||||
media:
|
||||
image: MEDIA_IMAGE
|
||||
depends_on:
|
||||
- backend
|
||||
- postgres
|
||||
env_file: services.env
|
||||
networks:
|
||||
- frontend
|
||||
- backend
|
||||
- postgres
|
||||
|
||||
manage:
|
||||
image: MANAGE_IMAGE
|
||||
depends_on:
|
||||
- auth
|
||||
- datastore-writer
|
||||
env_file: services.env
|
||||
networks:
|
||||
- backend
|
||||
- auth
|
||||
|
||||
# TODO: Remove depenencies to auth and datastore in "depends_on" and "networks"
|
||||
# Should be doable when the manage service is fixed
|
||||
manage-setup:
|
||||
image: MANAGE_IMAGE
|
||||
entrypoint: /root/entrypoint-setup
|
||||
depends_on:
|
||||
- manage
|
||||
- auth
|
||||
- datastore-writer
|
||||
- datastore-reader
|
||||
env_file: services.env
|
||||
environment:
|
||||
ENABLE_ELECTRONIC_VOTING: "ifenvelse(`ENABLE_ELECTRONIC_VOTING',)"
|
||||
networks:
|
||||
- backend
|
||||
- auth
|
||||
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
|
||||
# There are special networks for some services only, e.g. postgres only for the postgresql, datastore reader and datastore writer
|
||||
networks:
|
||||
uplink:
|
||||
frontend:
|
||||
internal: true
|
||||
backend:
|
||||
internal: true
|
||||
postgres:
|
||||
internal: true
|
||||
datastore-reader:
|
||||
internal: true
|
||||
message-bus:
|
||||
internal: true
|
||||
auth:
|
||||
internal: true
|
||||
|
||||
secrets:
|
||||
auth_token_key:
|
||||
file: ./secrets/auth_token_key
|
||||
auth_cookie_key:
|
||||
file: ./secrets/auth_cookie_key
|
||||
ifelse(ADMIN_SECRET_AVAILABLE, 0,admin:
|
||||
file: ./secrets/admin.env)
|
@ -1,308 +0,0 @@
|
||||
dnl This is a YAML template file. Simply translate it with m4 to create
|
||||
dnl a standard configuration. Customizations can and should be added in .env
|
||||
dnl by setting the appropriate variables.
|
||||
dnl
|
||||
dnl Usage:
|
||||
dnl m4 docker-stack.yml.m4 > docker-stack.yml
|
||||
dnl ( set -a; source .env; m4 docker-stack.yml.m4 ) > docker-stack.yml
|
||||
dnl
|
||||
dnl ----------------------------------------
|
||||
divert(-1)dnl
|
||||
define(`read_env', `esyscmd(`printf "%s" "$$1"')')
|
||||
define(`ifenvelse', `ifelse(read_env(`$1'),, `$2', read_env(`$1'))')
|
||||
|
||||
define(`BACKEND_IMAGE',
|
||||
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
||||
ifenvelse(`DOCKER_OPENSLIDES_BACKEND_NAME', openslides-backend):dnl
|
||||
ifenvelse(`DOCKER_OPENSLIDES_BACKEND_TAG', latest-4))
|
||||
define(`PROXY_IMAGE',
|
||||
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
||||
ifenvelse(`DOCKER_OPENSLIDES_PROXY_NAME', openslides-proxy):dnl
|
||||
ifenvelse(`DOCKER_OPENSLIDES_PROXY_TAG', latest-4))
|
||||
define(`CLIENT_IMAGE',
|
||||
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
||||
ifenvelse(`DOCKER_OPENSLIDES_CLIENT_NAME', openslides-client):dnl
|
||||
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(`ICC_IMAGE',
|
||||
ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl
|
||||
ifenvelse(`DOCKER_OPENSLIDES_ICC_NAME', openslides-icc):dnl
|
||||
ifenvelse(`DOCKER_OPENSLIDES_ICC_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(`ADMIN_SECRET_AVAILABLE', `syscmd(`test -f 'PROJECT_DIR`/secrets/admin.env')sysval')
|
||||
divert(0)dnl
|
||||
dnl ----------------------------------------
|
||||
# This configuration was created from a template file. Before making changes,
|
||||
# please make sure that you do not have a process in place that would override
|
||||
# your changes in the future. The accompanying .env file might be the correct
|
||||
# place for customizations instead.
|
||||
version: '3.4'
|
||||
|
||||
services:
|
||||
proxy:
|
||||
image: PROXY_IMAGE
|
||||
networks:
|
||||
- uplink
|
||||
- frontend
|
||||
ports:
|
||||
- "127.0.0.1:ifenvelse(`EXTERNAL_HTTP_PORT', 8000):8000"
|
||||
deploy:
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
delay: 5s
|
||||
replicas: ifenvelse(`OPENSLIDES_PROXY_REPLICAS', 1)
|
||||
|
||||
client:
|
||||
image: CLIENT_IMAGE
|
||||
networks:
|
||||
- frontend
|
||||
deploy:
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
delay: 5s
|
||||
replicas: ifenvelse(`OPENSLIDES_CLIENT_REPLICAS', 1)
|
||||
|
||||
backend:
|
||||
image: BACKEND_IMAGE
|
||||
env_file: services.env
|
||||
networks:
|
||||
- frontend
|
||||
- backend
|
||||
deploy:
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
delay: 5s
|
||||
replicas: ifenvelse(`OPENSLIDES_BACKEND_REPLICAS', 1)
|
||||
secrets:
|
||||
- auth_token_key
|
||||
- auth_cookie_key
|
||||
|
||||
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:
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
delay: 5s
|
||||
|
||||
postgres:
|
||||
image: postgres:11
|
||||
environment:
|
||||
- POSTGRES_USER=openslides
|
||||
- POSTGRES_PASSWORD=openslides
|
||||
- POSTGRES_DB=openslides
|
||||
networks:
|
||||
- postgres
|
||||
deploy:
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
delay: 5s
|
||||
|
||||
autoupdate:
|
||||
image: AUTOUPDATE_IMAGE
|
||||
env_file: services.env
|
||||
networks:
|
||||
- frontend
|
||||
- backend
|
||||
- message-bus
|
||||
deploy:
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
delay: 5s
|
||||
replicas: ifenvelse(`OPENSLIDES_AUTOUPDATE_REPLICAS', 1)
|
||||
secrets:
|
||||
- auth_token_key
|
||||
- auth_cookie_key
|
||||
|
||||
icc:
|
||||
image: ICC_IMAGE
|
||||
enc_file: services.env
|
||||
networks:
|
||||
- frontend
|
||||
- backend
|
||||
- message-bus
|
||||
deploy:
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
delay: 5s
|
||||
replicas: ifenvelse(`OPENSLIDES_ICC_REPLICAS', 1)
|
||||
secrets:
|
||||
- auth_token_key
|
||||
- auth_cookie_key
|
||||
|
||||
|
||||
auth:
|
||||
image: AUTH_IMAGE
|
||||
env_file: services.env
|
||||
networks:
|
||||
- datastore-reader
|
||||
- frontend
|
||||
- message-bus
|
||||
- auth
|
||||
deploy:
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
delay: 5s
|
||||
replicas: ifenvelse(`OPENSLIDES_AUTH_REPLICAS', 1)
|
||||
secrets:
|
||||
- auth_token_key
|
||||
- auth_cookie_key
|
||||
|
||||
cache:
|
||||
image: redis:latest
|
||||
networks:
|
||||
- auth
|
||||
deploy:
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
delay: 5s
|
||||
|
||||
message-bus:
|
||||
image: redis:latest
|
||||
networks:
|
||||
- message-bus
|
||||
deploy:
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
delay: 5s
|
||||
|
||||
media:
|
||||
image: MEDIA_IMAGE
|
||||
env_file: services.env
|
||||
networks:
|
||||
- frontend
|
||||
- backend
|
||||
- postgres
|
||||
deploy:
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
delay: 5s
|
||||
replicas: ifenvelse(`OPENSLIDES_MEDIA_REPLICAS', 1)
|
||||
|
||||
manage:
|
||||
image: MANAGE_IMAGE
|
||||
env_file: services.env
|
||||
networks:
|
||||
- backend
|
||||
- auth
|
||||
deploy:
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
delay: 5s
|
||||
|
||||
# TODO: Remove depenency to auth in "networks"
|
||||
# Should be doable when the manage service is fixed
|
||||
manage-setup:
|
||||
image: MANAGE_IMAGE
|
||||
entrypoint: /root/entrypoint-setup
|
||||
env_file: services.env
|
||||
environment:
|
||||
ENABLE_ELECTRONIC_VOTING: "ifenvelse(`ENABLE_ELECTRONIC_VOTING',)"
|
||||
networks:
|
||||
- backend
|
||||
- auth
|
||||
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:
|
||||
uplink:
|
||||
frontend:
|
||||
driver_opts:
|
||||
encrypted: ""
|
||||
internal: true
|
||||
backend:
|
||||
driver_opts:
|
||||
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:
|
||||
auth_token_key:
|
||||
file: ./secrets/auth_token_key
|
||||
auth_cookie_key:
|
||||
file: ./secrets/auth_cookie_key
|
||||
ifelse(ADMIN_SECRET_AVAILABLE, 0,admin:
|
||||
file: ./secrets/admin.env)
|
@ -3,30 +3,32 @@
|
||||
"organization": [
|
||||
{
|
||||
"id": 1,
|
||||
"name": "OpenSlides",
|
||||
"description": "The digital motion and assembly system",
|
||||
"legal_notice": "<a href=\"http://www.openslides.org\">OpenSlides</a> is a free web based presentation and assembly system for visualizing and controlling agenda, motions and elections of an assembly.",
|
||||
"name": "[Your organization]",
|
||||
"description": "",
|
||||
"legal_notice": "<a href=\"http://www.openslides.org\">OpenSlides</a> is a free web based presentation and assembly system for visualizing and controlling agenda, motions and elections of an assembly. The event organizer is resposible for the content.",
|
||||
"privacy_policy": "",
|
||||
"login_text": "Welcome to OpenSlides. Please login.",
|
||||
"theme": "openslides-theme",
|
||||
"theme": "openslides-default-light-theme",
|
||||
"reset_password_verbose_errors": false,
|
||||
"enable_electronic_voting": false,
|
||||
|
||||
"committee_ids": [1],
|
||||
"committee_ids": [
|
||||
1
|
||||
],
|
||||
"resource_ids": [],
|
||||
"organization_tag_ids": []
|
||||
}],
|
||||
}
|
||||
],
|
||||
"user": [
|
||||
{
|
||||
"id": 1,
|
||||
"username": "admin",
|
||||
"username": "superadmin",
|
||||
"title": "",
|
||||
"first_name": "",
|
||||
"last_name": "Administrator",
|
||||
"is_active": true,
|
||||
"is_physical_person": true,
|
||||
"password": "1422e767c5e08bb7196844025a0f98e1x61Ey612Kl2gpFL56FT9weDnpSo4AV8j8+qx2AuTHdRyY036xxzTTrw10Wq3+4qQyB+XURPWx1ONxp3Y3pB37A==",
|
||||
"default_password": "admin",
|
||||
"password": "",
|
||||
"default_password": "",
|
||||
"can_change_own_password": true,
|
||||
"gender": null,
|
||||
"email": "",
|
||||
@ -35,22 +37,16 @@
|
||||
"default_vote_weight": "1.000000",
|
||||
"last_email_send": null,
|
||||
"is_demo_user": false,
|
||||
|
||||
"organization_management_level": "superadmin",
|
||||
|
||||
"is_present_in_meeting_ids": [],
|
||||
"committee_ids": [1],
|
||||
"committee_$_management_level": ["1"],
|
||||
"committee_$1_management_level": "can_manage",
|
||||
|
||||
"committee_ids": [],
|
||||
"committee_$_management_level": [],
|
||||
"comment_$": [],
|
||||
"number_$": [],
|
||||
"structure_level_$": [],
|
||||
"about_me_$": [],
|
||||
"vote_weight_$": [],
|
||||
|
||||
"group_$_ids": ["1"],
|
||||
"group_$1_ids": [2],
|
||||
"group_$_ids": [],
|
||||
"speaker_$_ids": [],
|
||||
"personal_note_$_ids": [],
|
||||
"supported_motion_$_ids": [],
|
||||
@ -63,49 +59,47 @@
|
||||
"projection_$_ids": [],
|
||||
"vote_delegated_$_to_id": [],
|
||||
"vote_delegations_$_from_ids": [],
|
||||
|
||||
"meeting_ids": [1]
|
||||
}],
|
||||
"meeting_ids": []
|
||||
}
|
||||
],
|
||||
"resource": [],
|
||||
"organization_tag": [],
|
||||
"committee": [
|
||||
{
|
||||
"id": 1,
|
||||
"name": "Default committee",
|
||||
"description": "Add description here",
|
||||
|
||||
"meeting_ids": [1],
|
||||
"description": "",
|
||||
"meeting_ids": [
|
||||
1
|
||||
],
|
||||
"template_meeting_id": null,
|
||||
"default_meeting_id": 1,
|
||||
"user_ids": [1],
|
||||
"user_ids": [],
|
||||
"forward_to_committee_ids": [],
|
||||
"receive_forwardings_from_committee_ids": [],
|
||||
"organization_tag_ids": [],
|
||||
"organization_id": 1
|
||||
}],
|
||||
}
|
||||
],
|
||||
"meeting": [
|
||||
{
|
||||
"id": 1,
|
||||
"welcome_title": "Welcome to OpenSlides",
|
||||
"welcome_text": "[Space for your welcome text.]",
|
||||
|
||||
"name": "OpenSlides - Die Veranstaltung (Teil II)",
|
||||
"description": "Presentation and assembly system",
|
||||
"welcome_text": "[Space for your welcome text]",
|
||||
"name": "Default meeting",
|
||||
"description": "",
|
||||
"location": "",
|
||||
"start_time": 0,
|
||||
"end_time": 0,
|
||||
"imported_at": null,
|
||||
|
||||
"jitsi_domain": "",
|
||||
"jitsi_room_name": "",
|
||||
"jitsi_room_password": "",
|
||||
"enable_chat": false,
|
||||
|
||||
"url_name": "openslides_1",
|
||||
"url_name": "",
|
||||
"template_for_committee_id": null,
|
||||
"enable_anonymous": false,
|
||||
"custom_translations": {},
|
||||
|
||||
"conference_show": false,
|
||||
"conference_auto_connect": false,
|
||||
"conference_los_restriction": false,
|
||||
@ -122,16 +116,13 @@
|
||||
"applause_max_amount": 0,
|
||||
"applause_timeout": 5,
|
||||
"applause_particle_image_url": "",
|
||||
|
||||
"projector_countdown_default_time": 60,
|
||||
"projector_countdown_warning_time": 0,
|
||||
|
||||
"export_csv_encoding": "utf-8",
|
||||
"export_csv_separator": ",",
|
||||
"export_pdf_pagenumber_alignment": "center",
|
||||
"export_pdf_fontsize": 10,
|
||||
"export_pdf_pagesize": "A4",
|
||||
|
||||
"agenda_show_subtitles": false,
|
||||
"agenda_enable_numbering": true,
|
||||
"agenda_number_prefix": "",
|
||||
@ -139,7 +130,6 @@
|
||||
"agenda_item_creation": "default_yes",
|
||||
"agenda_new_items_default_visibility": "internal",
|
||||
"agenda_show_internal_items_on_projector": false,
|
||||
|
||||
"list_of_speakers_amount_last_on_projector": 1,
|
||||
"list_of_speakers_amount_next_on_projector": -1,
|
||||
"list_of_speakers_couple_countdown": true,
|
||||
@ -151,7 +141,6 @@
|
||||
"list_of_speakers_can_set_contribution_self": false,
|
||||
"list_of_speakers_speaker_note_for_everyone": false,
|
||||
"list_of_speakers_initially_closed": false,
|
||||
|
||||
"motions_default_workflow_id": 1,
|
||||
"motions_default_amendment_workflow_id": 1,
|
||||
"motions_default_statute_amendment_workflow_id": 1,
|
||||
@ -184,20 +173,20 @@
|
||||
"motions_export_preamble": "",
|
||||
"motions_export_submitter_recommendation": false,
|
||||
"motions_export_follow_recommendation": false,
|
||||
|
||||
"motion_poll_ballot_paper_selection": "CUSTOM_NUMBER",
|
||||
"motion_poll_ballot_paper_number": 8,
|
||||
"motion_poll_default_type": "analog",
|
||||
"motion_poll_default_100_percent_base": "YNA",
|
||||
"motion_poll_default_group_ids": [5],
|
||||
|
||||
"motion_poll_default_group_ids": [
|
||||
3
|
||||
],
|
||||
"users_sort_by": "first_name",
|
||||
"users_enable_presence_view": true,
|
||||
"users_enable_vote_weight": true,
|
||||
"users_allow_self_set_present": true,
|
||||
"users_pdf_welcometitle": "Welcome to OpenSlides",
|
||||
"users_pdf_welcometext": "[Place for your welcome and help text.]",
|
||||
"users_pdf_url": "http://example.com:8000",
|
||||
"users_pdf_welcometext": "[Place for your welcome and help text]",
|
||||
"users_pdf_url": "https://example.com",
|
||||
"users_pdf_wlan_ssid": "",
|
||||
"users_pdf_wlan_password": "",
|
||||
"users_pdf_wlan_encryption": "",
|
||||
@ -205,7 +194,6 @@
|
||||
"users_email_replyto": "",
|
||||
"users_email_subject": "Your login for {event_name}",
|
||||
"users_email_body": "Dear {name},\n\nthis is your OpenSlides login for the event {event_name}:\n\n {url}\n username: {username}\n password: {password}\n\nThis email was generated automatically.",
|
||||
|
||||
"assignment_poll_ballot_paper_selection": "CUSTOM_NUMBER",
|
||||
"assignment_poll_ballot_paper_number": 8,
|
||||
"assignments_export_title": "Elections",
|
||||
@ -215,38 +203,57 @@
|
||||
"assignment_poll_default_type": "nominal",
|
||||
"assignment_poll_default_method": "votes",
|
||||
"assignment_poll_default_100_percent_base": "valid",
|
||||
"assignment_poll_default_group_ids": [5],
|
||||
|
||||
"assignment_poll_default_group_ids": [
|
||||
3
|
||||
],
|
||||
"poll_ballot_paper_selection": "CUSTOM_NUMBER",
|
||||
"poll_ballot_paper_number": 8,
|
||||
"poll_sort_poll_result_by_votes": true,
|
||||
"poll_default_type": "nominal",
|
||||
"poll_default_method": "votes",
|
||||
"poll_default_100_percent_base": "valid",
|
||||
"poll_default_group_ids": [5],
|
||||
"poll_default_group_ids": [
|
||||
3
|
||||
],
|
||||
"poll_couple_countdown": true,
|
||||
|
||||
"projector_ids": [1],
|
||||
"projector_ids": [
|
||||
1
|
||||
],
|
||||
"all_projection_ids": [],
|
||||
"projector_message_ids": [],
|
||||
"projector_countdown_ids": [1, 2],
|
||||
"projector_countdown_ids": [
|
||||
1,
|
||||
2
|
||||
],
|
||||
"tag_ids": [],
|
||||
"agenda_item_ids": [],
|
||||
"list_of_speakers_ids": [],
|
||||
"speaker_ids": [],
|
||||
"topic_ids": [],
|
||||
"group_ids": [1, 2, 3, 4, 5],
|
||||
"group_ids": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
],
|
||||
"mediafile_ids": [],
|
||||
"motion_ids": [],
|
||||
"motion_comment_section_ids": [],
|
||||
"motion_category_ids": [],
|
||||
"motion_block_ids": [],
|
||||
"motion_workflow_ids": [1],
|
||||
"motion_workflow_ids": [
|
||||
1
|
||||
],
|
||||
"motion_statute_paragraph_ids": [],
|
||||
"motion_comment_ids": [],
|
||||
"motion_submitter_ids": [],
|
||||
"motion_change_recommendation_ids": [],
|
||||
"motion_state_ids": [1, 2, 3, 4],
|
||||
"motion_state_ids": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
],
|
||||
"poll_ids": [],
|
||||
"option_ids": [],
|
||||
"vote_ids": [],
|
||||
@ -254,19 +261,16 @@
|
||||
"assignment_candidate_ids": [],
|
||||
"personal_note_ids": [],
|
||||
"chat_group_ids": [],
|
||||
|
||||
"logo_$_id": [],
|
||||
"font_$_id": [],
|
||||
|
||||
"committee_id": 1,
|
||||
"default_meeting_for_committee_id": 1,
|
||||
"organization_tag_ids": [],
|
||||
"present_user_ids": [],
|
||||
"user_ids": [1],
|
||||
"user_ids": [],
|
||||
"reference_projector_id": 1,
|
||||
"list_of_speakers_countdown_id": 1,
|
||||
"poll_countdown_id": 2,
|
||||
|
||||
"default_projector_$_id": [
|
||||
"agenda_all_items",
|
||||
"topics",
|
||||
@ -300,25 +304,26 @@
|
||||
"default_projector_$motion_poll_id": 1,
|
||||
"default_projector_$poll_id": 1,
|
||||
"projection_ids": [],
|
||||
|
||||
"default_group_id": 1,
|
||||
"admin_group_id": 2
|
||||
}],
|
||||
}
|
||||
],
|
||||
"group": [
|
||||
{
|
||||
"id": 1,
|
||||
"name": "Default",
|
||||
"permissions": [
|
||||
"agenda_item.can_see",
|
||||
"agenda_item.can_see_internal",
|
||||
"assignment.can_see",
|
||||
"list_of_speakers.can_see",
|
||||
"mediafile.can_see",
|
||||
"meeting.can_see_frontpage",
|
||||
"meeting.can_see_autopilot",
|
||||
"motion.can_see",
|
||||
"projector.can_see",
|
||||
"user.can_see"
|
||||
],
|
||||
|
||||
"user_ids": [],
|
||||
"default_group_for_meeting_id": 1,
|
||||
"admin_group_for_meeting_id": null,
|
||||
@ -338,8 +343,7 @@
|
||||
"id": 2,
|
||||
"name": "Admin",
|
||||
"permissions": [],
|
||||
|
||||
"user_ids": [1],
|
||||
"user_ids": [],
|
||||
"default_group_for_meeting_id": null,
|
||||
"admin_group_for_meeting_id": 1,
|
||||
"mediafile_access_group_ids": [],
|
||||
@ -356,87 +360,25 @@
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"name": "Staff",
|
||||
"permissions": [
|
||||
"agenda_item.can_manage",
|
||||
"assignment.can_manage",
|
||||
"assignment.can_nominate_self",
|
||||
"list_of_speakers.can_be_speaker",
|
||||
"list_of_speakers.can_manage",
|
||||
"mediafile.can_manage",
|
||||
"meeting.can_see_frontpage",
|
||||
"meeting.can_see_history",
|
||||
"motion.can_manage",
|
||||
"poll.can_manage",
|
||||
"projector.can_manage",
|
||||
"tag.can_manage",
|
||||
"user.can_manage"
|
||||
],
|
||||
|
||||
"user_ids": [],
|
||||
"default_group_for_meeting_id": null,
|
||||
"admin_group_for_meeting_id": null,
|
||||
"mediafile_access_group_ids": [],
|
||||
"mediafile_inherited_access_group_ids": [],
|
||||
"read_comment_section_ids": [],
|
||||
"write_comment_section_ids": [],
|
||||
"read_chat_group_ids": [],
|
||||
"write_chat_group_ids": [],
|
||||
"poll_ids": [],
|
||||
"used_as_motion_poll_default_id": null,
|
||||
"used_as_assignment_poll_default_id": null,
|
||||
"used_as_poll_default_id": null,
|
||||
"meeting_id": 1
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"name": "Committees",
|
||||
"permissions": [
|
||||
"agenda_item.can_see_internal",
|
||||
"assignment.can_see",
|
||||
"list_of_speakers.can_see",
|
||||
"mediafile.can_see",
|
||||
"meeting.can_see_frontpage",
|
||||
"motion.can_create",
|
||||
"motion.can_create_amendments",
|
||||
"motion.can_support",
|
||||
"projector.can_see",
|
||||
"user.can_see"
|
||||
],
|
||||
|
||||
"user_ids": [],
|
||||
"default_group_for_meeting_id": null,
|
||||
"admin_group_for_meeting_id": null,
|
||||
"mediafile_access_group_ids": [],
|
||||
"mediafile_inherited_access_group_ids": [],
|
||||
"read_comment_section_ids": [],
|
||||
"write_comment_section_ids": [],
|
||||
"read_chat_group_ids": [],
|
||||
"write_chat_group_ids": [],
|
||||
"poll_ids": [],
|
||||
"used_as_motion_poll_default_id": null,
|
||||
"used_as_assignment_poll_default_id": null,
|
||||
"used_as_poll_default_id": null,
|
||||
"meeting_id": 1
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"name": "Delegates",
|
||||
"permissions": [
|
||||
"agenda_item.can_see",
|
||||
"agenda_item.can_see_internal",
|
||||
"assignment.can_see",
|
||||
"assignment.can_nominate_other",
|
||||
"assignment.can_nominate_self",
|
||||
"list_of_speakers.can_see",
|
||||
"list_of_speakers.can_be_speaker",
|
||||
"mediafile.can_see",
|
||||
"meeting.can_see_autopilot",
|
||||
"meeting.can_see_frontpage",
|
||||
"meeting.can_see_autopilot",
|
||||
"motion.can_see",
|
||||
"motion.can_create",
|
||||
"motion.can_create_amendments",
|
||||
"motion.can_support",
|
||||
"projector.can_see",
|
||||
"user.can_see"
|
||||
],
|
||||
|
||||
"user_ids": [],
|
||||
"default_group_for_meeting_id": null,
|
||||
"admin_group_for_meeting_id": null,
|
||||
@ -451,7 +393,56 @@
|
||||
"used_as_assignment_poll_default_id": 1,
|
||||
"used_as_poll_default_id": 1,
|
||||
"meeting_id": 1
|
||||
}],
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"name": "Staff",
|
||||
"permissions": [
|
||||
"agenda_item.can_see",
|
||||
"agenda_item.can_see_internal",
|
||||
"agenda_item.can_manage",
|
||||
"assignment.can_see",
|
||||
"assignment.can_nominate_other",
|
||||
"assignment.can_manage",
|
||||
"assignment.can_nominate_self",
|
||||
"list_of_speakers.can_see",
|
||||
"list_of_speakers.can_be_speaker",
|
||||
"list_of_speakers.can_manage",
|
||||
"mediafile.can_see",
|
||||
"mediafile.can_manage",
|
||||
"meeting.can_see_frontpage",
|
||||
"meeting.can_see_autopilot",
|
||||
"motion.can_see",
|
||||
"motion.can_manage",
|
||||
"motion.can_manage_metadata",
|
||||
"motion.can_manage_polls",
|
||||
"motion.can_see_internal",
|
||||
"motion.can_create",
|
||||
"motion.can_create_amendments",
|
||||
"poll.can_manage",
|
||||
"projector.can_see",
|
||||
"projector.can_manage",
|
||||
"tag.can_manage",
|
||||
"user.can_see",
|
||||
"user.can_see_extra_data",
|
||||
"user.can_manage"
|
||||
],
|
||||
"user_ids": [],
|
||||
"default_group_for_meeting_id": null,
|
||||
"admin_group_for_meeting_id": null,
|
||||
"mediafile_access_group_ids": [],
|
||||
"mediafile_inherited_access_group_ids": [],
|
||||
"read_comment_section_ids": [],
|
||||
"write_comment_section_ids": [],
|
||||
"read_chat_group_ids": [],
|
||||
"write_chat_group_ids": [],
|
||||
"poll_ids": [],
|
||||
"used_as_motion_poll_default_id": null,
|
||||
"used_as_assignment_poll_default_id": null,
|
||||
"used_as_poll_default_id": null,
|
||||
"meeting_id": 1
|
||||
}
|
||||
],
|
||||
"personal_note": [],
|
||||
"tag": [],
|
||||
"agenda_item": [],
|
||||
@ -479,8 +470,11 @@
|
||||
"show_state_extension_field": false,
|
||||
"merge_amendment_into_final": "undefined",
|
||||
"show_recommendation_extension_field": false,
|
||||
|
||||
"next_state_ids": [2, 3, 4],
|
||||
"next_state_ids": [
|
||||
2,
|
||||
3,
|
||||
4
|
||||
],
|
||||
"previous_state_ids": [],
|
||||
"motion_ids": [],
|
||||
"motion_recommendation_ids": [],
|
||||
@ -501,9 +495,10 @@
|
||||
"show_state_extension_field": false,
|
||||
"merge_amendment_into_final": "undefined",
|
||||
"show_recommendation_extension_field": false,
|
||||
|
||||
"next_state_ids": [],
|
||||
"previous_state_ids": [1],
|
||||
"previous_state_ids": [
|
||||
1
|
||||
],
|
||||
"motion_ids": [],
|
||||
"motion_recommendation_ids": [],
|
||||
"workflow_id": 1,
|
||||
@ -523,9 +518,10 @@
|
||||
"show_state_extension_field": false,
|
||||
"merge_amendment_into_final": "undefined",
|
||||
"show_recommendation_extension_field": false,
|
||||
|
||||
"next_state_ids": [],
|
||||
"previous_state_ids": [1],
|
||||
"previous_state_ids": [
|
||||
1
|
||||
],
|
||||
"motion_ids": [],
|
||||
"motion_recommendation_ids": [],
|
||||
"workflow_id": 1,
|
||||
@ -545,9 +541,10 @@
|
||||
"show_state_extension_field": false,
|
||||
"merge_amendment_into_final": "undefined",
|
||||
"show_recommendation_extension_field": false,
|
||||
|
||||
"next_state_ids": [],
|
||||
"previous_state_ids": [1],
|
||||
"previous_state_ids": [
|
||||
1
|
||||
],
|
||||
"motion_ids": [],
|
||||
"motion_recommendation_ids": [],
|
||||
"workflow_id": 1,
|
||||
@ -559,14 +556,19 @@
|
||||
{
|
||||
"id": 1,
|
||||
"name": "Simple Workflow",
|
||||
|
||||
"state_ids": [1, 2, 3, 4],
|
||||
"state_ids": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
],
|
||||
"first_state_id": 1,
|
||||
"default_workflow_meeting_id": 1,
|
||||
"default_amendment_workflow_meeting_id": 1,
|
||||
"default_statute_amendment_workflow_meeting_id": 1,
|
||||
"meeting_id": 1
|
||||
}],
|
||||
}
|
||||
],
|
||||
"motion_statute_paragraph": [],
|
||||
"poll": [],
|
||||
"option": [],
|
||||
@ -594,12 +596,10 @@
|
||||
"show_title": true,
|
||||
"show_logo": true,
|
||||
"show_clock": true,
|
||||
|
||||
"current_projection_ids": [],
|
||||
"preview_projection_ids": [],
|
||||
"history_projection_ids": [],
|
||||
"used_as_reference_projector_meeting_id": 1,
|
||||
|
||||
"used_as_default_$_in_meeting_id": [
|
||||
"agenda_all_items",
|
||||
"topics",
|
||||
@ -632,9 +632,9 @@
|
||||
"used_as_default_$assignment_poll_in_meeting_id": 1,
|
||||
"used_as_default_$motion_poll_in_meeting_id": 1,
|
||||
"used_as_default_$poll_in_meeting_id": 1,
|
||||
|
||||
"meeting_id": 1
|
||||
}],
|
||||
}
|
||||
],
|
||||
"projection": [],
|
||||
"projector_message": [],
|
||||
"projector_countdown": [
|
||||
@ -645,7 +645,6 @@
|
||||
"default_time": 60,
|
||||
"countdown_time": 60,
|
||||
"running": false,
|
||||
|
||||
"projection_ids": [],
|
||||
"used_as_list_of_speaker_countdown_meeting_id": 1,
|
||||
"used_as_poll_countdown_meeting_id": null,
|
||||
@ -658,11 +657,11 @@
|
||||
"default_time": 60,
|
||||
"countdown_time": 60,
|
||||
"running": false,
|
||||
|
||||
"projection_ids": [],
|
||||
"used_as_list_of_speaker_countdown_meeting_id": null,
|
||||
"used_as_poll_countdown_meeting_id": 1,
|
||||
"meeting_id": 1
|
||||
}],
|
||||
}
|
||||
],
|
||||
"chat_group": []
|
||||
}
|
||||
|
@ -1,12 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Create keys for auth, if they do not exist
|
||||
if [ ! -f secrets/auth_token_key ]; then
|
||||
tr -dc 'a-zA-Z0-9' < /dev/urandom | head -c 64 > secrets/auth_token_key
|
||||
fi
|
||||
if [ ! -f secrets/auth_cookie_key ]; then
|
||||
tr -dc 'a-zA-Z0-9' < /dev/urandom | head -c 64 > secrets/auth_cookie_key
|
||||
fi
|
||||
|
||||
( set -a; source .env; m4 docker-compose.yml.m4 ) > docker-compose.yml
|
||||
( set -a; source .env; m4 docker-stack.yml.m4 ) > docker-stack.yml
|
Loading…
Reference in New Issue
Block a user