services: prosody: build: context: . dockerfile: Dockerfile container_name: prosody-xmpp environment: XMPP_DOMAIN: ${XMPP_DOMAIN} XMPP_USER: ${XMPP_USER} XMPP_PASSWORD: ${XMPP_PASSWORD} MYSQL_HOST: ${MYSQL_HOST:-host.docker.internal} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} MYSQL_DATABASE: ${MYSQL_DATABASE} SLIDGRAM_COMPONENT_SECRET: ${SLIDGRAM_COMPONENT_SECRET} extra_hosts: - "host.docker.internal:172.17.0.1" ports: - "5222:5222" - "5269:5269" - "5347:5347" - "5280:5280" volumes: - ./data/prosody:/var/lib/prosody - ./logs/prosody:/var/log/prosody - ./data/prosody/configuration:/etc/prosody/conf.d - /etc/letsencrypt/live/xmpp.guschin.info:/etc/prosody/certs/letsencrypt/live/xmpp.guschin.info:ro - /etc/letsencrypt/archive/xmpp.guschin.info:/etc/prosody/certs/letsencrypt/archive/xmpp.guschin.info:ro - /etc/letsencrypt/live/guschin.info:/etc/prosody/certs/letsencrypt/live/guschin.info:ro - /etc/letsencrypt/archive/guschin.info:/etc/prosody/certs/letsencrypt/archive/guschin.info:ro restart: unless-stopped mem_limit: 200M healthcheck: test: ["CMD", "nc", "-z", "localhost", "5222"] interval: 30s timeout: 10s retries: 3 start_period: 40s networks: - prosody slidgram: image: codeberg.org/slidge/slidgram:latest container_name: slidgram user: "100:102" environment: SLIDGE_JID: telegram.guschin.info SLIDGE_SECRET: ${SLIDGRAM_COMPONENT_SECRET} SLIDGE_SERVER: prosody-xmpp SLIDGE_PORT: 5347 SLIDGE_UPLOAD_SERVICE: upload.guschin.info volumes: - ./data/slidgram:/var/lib/slidge restart: unless-stopped depends_on: prosody: condition: service_healthy networks: - prosody networks: prosody: driver: bridge