version: '3.8' # Deploy with: # docker stack deploy -c snikket.yml snikket # # Runs on: pve-social # XMPP server (Prosody-based). TLS terminated externally by Caddy at the hub. # Certs must be bind-mounted into the container when ready. # # Web portal (invites/admin): port 80 — proxied by Caddy # XMPP client connections: port 5222 # XMPP federation: port 5269 # File transfer proxy: port 5000 services: snikket-web: image: snikket/snikket-server:latest command: web ports: - target: 80 published: 80 protocol: tcp mode: host volumes: - snikket_data:/snikket networks: - overlay-net deploy: replicas: 1 placement: constraints: - node.hostname == pve-social restart_policy: condition: on-failure delay: 5s max_attempts: 3 snikket-server: image: snikket/snikket-server:latest command: server ports: - target: 5222 published: 5222 protocol: tcp mode: host - target: 5269 published: 5269 protocol: tcp mode: host - target: 5000 published: 5000 protocol: tcp mode: host volumes: - snikket_data:/snikket networks: - overlay-net deploy: replicas: 1 placement: constraints: - node.hostname == pve-social restart_policy: condition: on-failure delay: 5s max_attempts: 3 volumes: snikket_data: networks: overlay-net: external: true name: ${OVERLAY_NETWORK:-homelab-net}