# conduwuit - Behind Traefik Reverse Proxy version: '2.4' # uses '2.4' for cpuset services: homeserver: ### If you already built the conduwuit image with 'docker build' or want to use the Docker Hub image, ### then you are ready to go. image: girlbossceo/conduwuit:latest restart: unless-stopped volumes: - db:/srv/conduwuit/.local/share/conduwuit #- ./conduwuit.toml:/etc/conduwuit.toml networks: - proxy environment: CONDUWUIT_SERVER_NAME: your.server.name # EDIT THIS CONDUWUIT_TRUSTED_SERVERS: '["matrix.org"]' CONDUWUIT_ALLOW_REGISTRATION : 'true' #CONDUWUIT_CONFIG: './conduwuit.toml' # Uncomment if you mapped config toml above ### Uncomment and change values as desired # CONDUWUIT_ADDRESS: 0.0.0.0 # CONDUWUIT_PORT: 6167 # CONDUWUIT_LOG: info # default is: "warn,state_res=warn" # CONDUWUIT_ALLOW_JAEGER: 'false' # CONDUWUIT_ALLOW_ENCRYPTION: 'true' # CONDUWUIT_ALLOW_FEDERATION: 'true' # CONDUWUIT_ALLOW_CHECK_FOR_UPDATES: 'true' # CONDUWUIT_DATABASE_PATH: /srv/conduwuit/.local/share/conduwuit # CONDUWUIT_WORKERS: 10 # CONDUWUIT_MAX_REQUEST_SIZE: 20000000 # in bytes, ~20 MB #cpuset: "0-4" # Uncomment to limit to specific CPU cores # We need some way to server the client and server .well-known json. The simplest way is to use a nginx container # to serve those two as static files. If you want to use a different way, delete or comment the below service, here # and in the docker compose override file. well-known: image: nginx:latest restart: unless-stopped volumes: - ./nginx/matrix.conf:/etc/nginx/conf.d/matrix.conf # the config to serve the .well-known/matrix files - ./nginx/www:/var/www/ # location of the client and server .well-known-files ### Uncomment if you want to use your own Element-Web App. ### Note: You need to provide a config.json for Element and you also need a second ### Domain or Subdomain for the communication between Element and conduwuit ### Config-Docs: https://github.com/vector-im/element-web/blob/develop/docs/config.md # element-web: # image: vectorim/element-web:latest # restart: unless-stopped # volumes: # - ./element_config.json:/app/config.json # networks: # - proxy # depends_on: # - homeserver traefik: image: "traefik:latest" container_name: "traefik" restart: "unless-stopped" ports: - "80:80" - "443:443" volumes: - "/var/run/docker.sock:/var/run/docker.sock" # - "./traefik_config:/etc/traefik" - "acme:/etc/traefik/acme" labels: - "traefik.enable=true" # middleware redirect - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https" # global redirect to https - "traefik.http.routers.redirs.rule=hostregexp(`{host:.+}`)" - "traefik.http.routers.redirs.entrypoints=http" - "traefik.http.routers.redirs.middlewares=redirect-to-https" networks: - proxy volumes: db: acme: networks: proxy: