Hey there.
I hope this is the right place to ask for help with my traefik v2 configuration.
My traefik config is very close to default and works with 2 simple services. But now I want to start an OpenSlides instance at openslides.mydomain.de and sadly the docker-compose.yml is rather complex and I can not make it work with traefik. It always ends up with " Error starting userland proxy: listen tcp 127.0.0.1:8000: bind: address already in use". So I guess it should be a simple routing issue that I can not figure out.
My OpenSlides docker-compose.yml is here:
# 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'
x-osserver:
&default-osserver
image: openslides/openslides-server:latest
networks:
- web
- back
restart: always
x-osserver-env: &default-osserver-env
AMOUNT_REPLICAS: 1
AUTOUPDATE_DELAY: 1
DEMO_USERS: ""
CONNECTION_POOL_LIMIT: 100
DATABASE_HOST: "pgbouncer"
DATABASE_PASSWORD: "openslides"
DATABASE_PORT: 5432
DATABASE_USER: "openslides"
DEFAULT_FROM_EMAIL: "noreply@example.com"
DJANGO_LOG_LEVEL: "INFO"
EMAIL_HOST: "postfix"
EMAIL_HOST_PASSWORD: ""
EMAIL_HOST_USER: ""
EMAIL_PORT: 25
ENABLE_ELECTRONIC_VOTING: "True"
ENABLE_SAML: "False"
INSTANCE_DOMAIN: "http://openslides.mydomain.de:8000"
JITSI_DOMAIN: ""
JITSI_ROOM_PASSWORD: ""
JITSI_ROOM_NAME: ""
OPENSLIDES_LOG_LEVEL: "INFO"
REDIS_CHANNLES_HOST: "redis-channels"
REDIS_CHANNLES_PORT: 6379
REDIS_HOST: "redis"
REDIS_PORT: 6379
REDIS_SLAVE_HOST: "redis-slave"
REDIS_SLAVE_PORT: 6379
REDIS_SLAVE_WAIT_TIMEOUT: 10000
RESET_PASSWORD_VERBOSE_ERRORS: "False"
x-pgnode: &default-pgnode
image: openslides/openslides-repmgr:latest
networks:
- dbnet
labels:
org.openslides.role: "postgres"
restart: always
x-pgnode-env: &default-pgnode-env
REPMGR_RECONNECT_ATTEMPTS: 30
REPMGR_RECONNECT_INTERVAL: 10
REPMGR_WAL_ARCHIVE: "on"
services:
server:
<< : *default-osserver
# 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:
- server-setup
environment:
<< : *default-osserver-env
secrets:
- django
server-setup:
<< : *default-osserver
entrypoint: /usr/local/sbin/entrypoint-db-setup
environment:
<< : *default-osserver-env
secrets:
- django
- os_admin
depends_on:
- pgbouncer
- redis
- redis-slave
- redis-channels
client:
image: openslides/openslides-client:latest
restart: always
depends_on:
- server
labels:
- "traefik.enable=true"
- "traefik.http.routers.wiki.rule=Host(`openslides.mydomain.de`)"
- "traefik.http.routers.wiki.entrypoints=websecure"
- "traefik.http.routers.wiki.tls.certresolver=myresolver"
networks:
- web
ports:
- "127.0.0.1:8000:80"
pgnode1:
<< : *default-pgnode
environment:
<< : *default-pgnode-env
REPMGR_NODE_ID: 1
REPMGR_PRIMARY: # This is the primary
volumes:
- "dbdata1:/var/lib/postgresql"
pgbouncer:
environment:
- PG_NODE_LIST=pgnode1
image: openslides/openslides-pgbouncer:latest
restart: always
networks:
back:
aliases:
- db
- postgres
dbnet:
postfix:
image: openslides/openslides-postfix:latest
restart: always
environment:
MYHOSTNAME: "localhost"
RELAYHOST: "localhost"
networks:
- back
redis:
image: redis:alpine
restart: always
networks:
back:
aliases:
- rediscache
redis-slave:
image: redis:alpine
restart: always
command: ["redis-server", "--save", "", "--slaveof", "redis", "6379"]
depends_on:
- redis
networks:
back:
aliases:
- rediscache-slave
redis-channels:
image: redis:alpine
restart: always
networks:
back:
media:
image: openslides/openslides-media-service:latest
environment:
- CHECK_REQUEST_URL=server:8000/check-media/
restart: always
networks:
web:
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:
networks:
back:
dbnet:
web:
external: true
secrets:
django:
file: ./secrets/django.env
os_admin:
file: ./secrets/adminsecret.env