services: # ELEMENT CLIENT element: image: vectorim/element-web:latest container_name: matrix-element restart: always cap_add: - NET_BIND_SERVICE networks: - proxy - matrix configs: - source: element_config target: /app/config.json mode: "0444" labels: - traefik.enable=true - traefik.http.services.element.loadbalancer.server.port=80 - traefik.http.routers.element.entrypoints=websecure - traefik.http.routers.element.tls.certresolver=myresolver - traefik.http.routers.element.rule=Host(`${FQDN_ELEMENT}`) # MATRIX SERVER continuwuity: image: forgejo.ellis.link/continuwuation/continuwuity:latest container_name: matrix-continuwuity init: true restart: unless-stopped networks: - proxy - matrix command: /sbin/conduwuit volumes: - ${PODMAN_STORAGE_PATH}/.config/matrix:/var/lib/continuwuity configs: - source: resolv_conf target: /etc/resolv.conf mode: "0400" environment: RUST_BACKTRACE: full CONTINUWUITY_SERVER_NAME: ${FQDN_MATRIX} CONTINUWUITY_DATABASE_PATH: /var/lib/continuwuity CONTINUWUITY_ADDRESS: 0.0.0.0 # ESTA A TRUE PARA CREAR ADMIN Y USER LUEGO A FALSE CONTINUWUITY_ALLOW_REGISTRATION: false CONTINUWUITY_ALLOW_FEDERATION: false CONTINUWUITY_ALLOW_CHECK_FOR_UPDATES: true CONTINUWUITY_NEW_USER_DISPLAYNAME_SUFFIX: " 🐧" CONTINUWUITY_TRUSTED_PROXIES: 10.89.0.0/24 CONTINUWUITY_PORT: 8008 # This must match with traefik's loadbalancer label CONTINUWUITY_WELL_KNOWN: | { client=https://${FQDN_MATRIX}, server=${FQDN_MATRIX}:443 } labels: - traefik.enable=true - traefik.http.services.continuwuity.loadbalancer.server.port=8008 - traefik.http.routers.continuwuity.entrypoints=websecure - traefik.http.routers.continuwuity.tls.certresolver=myresolver - traefik.http.routers.continuwuity.rule=Host(`${FQDN_MATRIX}`) - traefik.http.middlewares.cors-headers.headers.accessControlAllowOriginList=https://${FQDN_ELEMENT} - traefik.http.routers.continuwuity.middlewares=cors-headers@docker,matrix-headers@docker - traefik.http.middlewares.cors-headers.headers.accessControlAllowHeaders=Origin, X-Requested-With, Content-Type, Accept, Authorization - traefik.http.middlewares.cors-headers.headers.accessControlAllowMethods=GET, POST, PUT, DELETE, OPTIONS - traefik.http.middlewares.matrix-headers.headers.customrequestheaders.X-Forwarded-Proto=https configs: resolv_conf: content: | nameserver 1.1.1.1 nameserver 9.9.9.9 element_config: content: | { "default_server_config": { "m.homeserver": { "base_url": "https://${FQDN_MATRIX}" } }, "disable_custom_urls": false, "disable_guests": true, "disable_login_language_selector": true, "disable_3pid_login": true, "brand": "Element", "defaultCountryCode": "ES", "showLabsSettings": false, "features": { "feature_pinning": true }, "default_federate": false, "default_theme": "dark", "roomDirectory": { "servers": [ "matrix.org" ] }, "piwik": false, "enable_presence_by_hs_url": { "https://matrix.org": false, "https://matrix-client.matrix.org": false }, "settingDefaults": { "breadcrumbs": true } } networks: matrix: name: matrix proxy: external: true x-dockge: urls: - https://{FQDN_ELEMENT} - https://{FQDN_MATRIX}