Hi,
I would like to run Openslides 4 behind a Traefik 2 proxy. I have installed Openslides according to the official instructions and the instance is running. Unfortunately populating the inital data via gRPC does not work. I suspect that I have not configured Traefik correctly. Can anyone help me further?
Installation Openslides: GitHub - OpenSlides/OpenSlides: The digital motion and assembly system and GitHub - OpenSlides/openslides-manage-service: Manage service for OpenSlides 4+
My docker-compose.yml file:
---
version: "3.4"
x-default-environment: &default-environment
ACTION_HOST: backendAction
ACTION_PORT: "9002"
AUTH_HOST: auth
AUTH_PORT: "9004"
AUTOUPDATE_HOST: autoupdate
AUTOUPDATE_PORT: "9012"
CACHE_HOST: redis
CACHE_PORT: "6379"
DATASTORE_DATABASE_HOST: postgres
DATASTORE_DATABASE_NAME: openslides
DATASTORE_DATABASE_PASSWORD_FILE: /run/secrets/postgres_password
DATASTORE_DATABASE_PORT: "5432"
DATASTORE_DATABASE_USER: openslides
DATASTORE_READER_HOST: datastoreReader
DATASTORE_READER_PORT: "9010"
DATASTORE_WRITER_HOST: datastoreWriter
DATASTORE_WRITER_PORT: "9011"
ICC_HOST: icc
ICC_PORT: "9007"
ICC_REDIS_HOST: redis
ICC_REDIS_PORT: "6379"
INTERNAL_AUTH_PASSWORD_FILE: /run/secrets/internal_auth_password
MANAGE_ACTION_HOST: backendManage
MANAGE_AUTH_PASSWORD_FILE: /run/secrets/manage_auth_password
MANAGE_HOST: manage
MANAGE_PORT: "9008"
MEDIA_BLOCK_SIZE: "4096"
MEDIA_DATABASE_HOST: postgres
MEDIA_DATABASE_NAME: openslides
MEDIA_DATABASE_PASSWORD_FILE: /run/secrets/postgres_password
MEDIA_DATABASE_PORT: "5432"
MEDIA_DATABASE_USER: openslides
MEDIA_HOST: media
MEDIA_PORT: "9006"
MEDIA_PRESENTER_HOST: backendPresenter
MEDIA_PRESENTER_PORT: "9003"
MESSAGE_BUS_HOST: redis
MESSAGE_BUS_PORT: "6379"
OPENSLIDES_DEVELOPMENT: "false"
OPENSLIDES_LOGLEVEL: info
PRESENTER_HOST: backendPresenter
PRESENTER_PORT: "9003"
SYSTEM_URL: localhost:8000
VOTE_DATABASE_HOST: postgres
VOTE_DATABASE_NAME: openslides
VOTE_DATABASE_PASSWORD_FILE: /run/secrets/postgres_password
VOTE_DATABASE_PORT: "5432"
VOTE_DATABASE_USER: openslides
VOTE_HOST: vote
VOTE_PORT: "9013"
VOTE_REDIS_HOST: redis
VOTE_REDIS_PORT: "6379"
services:
proxy:
image: ghcr.io/openslides/openslides/openslides-proxy:latest
depends_on:
- client
- backendAction
- backendPresenter
- autoupdate
- auth
- media
- icc
- vote
environment:
<< : *default-environment
networks:
- uplink
- frontend
- traefik-proxy
ports:
- 8000
- 9000
labels:
- "traefik.enable=true"
- "traefik.http.routers.openslides-grpc.entrypoints=grpc"
- "traefik.http.routers.openslides-grpc.rule=Host(`openslides.example.com`)"
- "traefik.http.routers.openslides-grpc.service=openslides"
- "traefik.http.services.openslides-grpc.loadbalancer.server.scheme=h2c"
- "traefik.http.services.openslides-grpc.loadbalancer.server.port=9000"
- "traefik.http.routers.openslides.entrypoints=http"
- "traefik.http.routers.openslides.rule=Host(`openslides.example.com`)"
- "traefik.http.middlewares.openslides-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.openslides.middlewares=openslides-https-redirect"
- "traefik.http.routers.openslides-secure.entrypoints=https"
- "traefik.http.routers.openslides-secure.rule=Host(`openslides.example.com`)"
- "traefik.http.routers.openslides-secure.tls=true"
- "traefik.http.routers.openslides-secure.tls.certresolver=http"
- "traefik.http.routers.openslides-secure.service=openslides"
- "traefik.http.services.openslides.loadbalancer.server.port=8000"
- "traefik.docker.network=traefik-proxy"
client:
image: ghcr.io/openslides/openslides/openslides-client:latest
depends_on:
- backendAction
- backendPresenter
- autoupdate
- auth
- media
- icc
- vote
environment:
<< : *default-environment
networks:
- frontend
backendAction:
image: ghcr.io/openslides/openslides/openslides-backend:latest
depends_on:
- datastoreWriter
- auth
- media
- vote
- postgres
environment:
<< : *default-environment
DEFAULT_FROM_EMAIL: openslides@example.com
EMAIL_ACCEPT_SELF_SIGNED_CERTIFICATE: "false"
EMAIL_CONNECTION_SECURITY: SSL/TLS
EMAIL_HOST: mail.example.com
EMAIL_HOST_PASSWORD: your_password
EMAIL_HOST_USER: system@example.com
EMAIL_PORT: "465"
EMAIL_TIMEOUT: "5"
OPENSLIDES_BACKEND_COMPONENT: action
networks:
- frontend
- data
secrets:
- auth_token_key
- auth_cookie_key
- postgres_password
backendPresenter:
image: ghcr.io/openslides/openslides/openslides-backend:latest
depends_on:
- auth
- postgres
environment:
<< : *default-environment
OPENSLIDES_BACKEND_COMPONENT: presenter
networks:
- frontend
- data
secrets:
- auth_token_key
- auth_cookie_key
- postgres_password
backendManage:
image: ghcr.io/openslides/openslides/openslides-backend:latest
depends_on:
- datastoreWriter
- postgres
environment:
<< : *default-environment
OPENSLIDES_BACKEND_COMPONENT: action
networks:
- data
secrets:
- auth_token_key
- auth_cookie_key
- internal_auth_password
- postgres_password
datastoreReader:
image: ghcr.io/openslides/openslides/openslides-datastore-reader:latest
depends_on:
- postgres
environment:
<< : *default-environment
NUM_WORKERS: "8"
networks:
- data
secrets:
- postgres_password
datastoreWriter:
image: ghcr.io/openslides/openslides/openslides-datastore-writer:latest
depends_on:
- postgres
- redis
environment:
<< : *default-environment
networks:
- data
secrets:
- postgres_password
postgres:
image: postgres:11
environment:
<< : *default-environment
POSTGRES_DB: openslides
POSTGRES_USER: openslides
POSTGRES_PASSWORD_FILE: /run/secrets/postgres_password
PGDATA: /var/lib/postgresql/data/pgdata
networks:
- data
user: 0:0
secrets:
- postgres_password
volumes:
- ./db-data:/var/lib/postgresql/data
autoupdate:
image: ghcr.io/openslides/openslides/openslides-autoupdate:latest
depends_on:
- datastoreReader
- redis
environment:
<< : *default-environment
MESSAGING: redis
AUTH: ticket
networks:
- frontend
- data
secrets:
- auth_token_key
- auth_cookie_key
auth:
image: ghcr.io/openslides/openslides/openslides-auth:latest
depends_on:
- datastoreReader
- redis
environment:
<< : *default-environment
networks:
- frontend
- data
secrets:
- auth_token_key
- auth_cookie_key
vote:
image: ghcr.io/openslides/openslides/openslides-vote:latest
depends_on:
- datastoreReader
- auth
- autoupdate
- redis
environment:
<< : *default-environment
MESSAGING: redis
AUTH: ticket
networks:
- frontend
- data
secrets:
- auth_token_key
- auth_cookie_key
- postgres_password
redis:
image: redis:latest
command: redis-server --save ""
environment:
<< : *default-environment
networks:
- data
media:
image: ghcr.io/openslides/openslides/openslides-media:latest
depends_on:
- postgres
environment:
<< : *default-environment
networks:
- frontend
- data
secrets:
- postgres_password
icc:
image: ghcr.io/openslides/openslides/openslides-icc:latest
depends_on:
- datastoreReader
- postgres
- redis
environment:
<< : *default-environment
MESSAGING: redis
AUTH: ticket
networks:
- frontend
- data
secrets:
- auth_token_key
- auth_cookie_key
manage:
image: ghcr.io/openslides/openslides/openslides-manage:latest
depends_on:
- datastoreReader
- backendManage
environment:
<< : *default-environment
networks:
- frontend
- data
secrets:
- superadmin
- manage_auth_password
- internal_auth_password
networks:
traefik-proxy:
external: true
uplink:
frontend:
internal: true
data:
internal: true
secrets:
auth_token_key:
file: ./secrets/auth_token_key
auth_cookie_key:
file: ./secrets/auth_cookie_key
superadmin:
file: ./secrets/superadmin
manage_auth_password:
file: ./secrets/manage_auth_password
internal_auth_password:
file: ./secrets/internal_auth_password
postgres_password:
file: ./secrets/postgres_password