snikket/compose.yml

138 lines
4.0 KiB
YAML
Raw Permalink Normal View History

2021-10-12 11:35:23 +00:00
---
version: "3.8"
2021-12-02 15:15:39 +00:00
x-environment: &default-env
- SNIKKET_ADMIN_EMAIL
2022-01-09 14:05:14 +00:00
- SNIKKET_CERTFILE=/certs/$DOMAIN/cert.pem
2021-12-04 23:50:56 +00:00
- SNIKKET_DOMAIN=${DOMAIN}
2022-01-09 14:05:14 +00:00
- SNIKKET_KEYFILE=/certs/$DOMAIN/key.pem
- SNIKKET_TWEAK_INTERNAL_HTTP_HOST=${STACK_NAME}_server
2021-12-02 15:15:39 +00:00
- SNIKKET_TWEAK_INTERNAL_HTTP_INTERFACE=0.0.0.0
2021-12-04 23:50:56 +00:00
- SNIKKET_TWEAK_PORTAL_INTERNAL_HTTP_HOST=${STACK_NAME}_portal
- SNIKKET_TWEAK_PORTAL_INTERNAL_HTTP_INTERFACE=0.0.0.0
2022-01-09 14:05:14 +00:00
- SNIKKET_TWEAK_TURNSERVER=0
- SNIKKET_TWEAK_TURNSERVER_DOMAIN
- SNIKKET_TWEAK_TURNSERVER_SECRET_FILE=/run/secrets/coturn_secret
2021-12-04 23:50:56 +00:00
- SNIKKET_WEB_PROSODY_ENDPOINT=http://${STACK_NAME}_server:5280
2021-12-02 15:24:56 +00:00
2021-10-12 11:35:23 +00:00
services:
app:
2022-01-23 17:27:09 +00:00
image: snikket/snikket-web-proxy:beta.20220119.1
2021-10-30 22:10:52 +00:00
networks:
- proxy
- backend
environment: *default-env
2021-10-12 11:37:20 +00:00
volumes:
- snikket_data:/snikket
2022-01-19 14:20:57 +00:00
configs:
- source: cert_monitor
target: /usr/local/bin/cert-monitor.sh
mode: 0555
- source: http_template
target: /etc/nginx/templates/http
2021-10-30 22:10:52 +00:00
deploy:
labels:
- "traefik.enable=true"
- "traefik.http.services.${STACK_NAME}.loadbalancer.server.port=80"
2021-10-31 14:14:32 +00:00
- "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`, `groups.${DOMAIN}`, `share.${DOMAIN}`${EXTRA_DOMAINS})"
2021-10-30 22:10:52 +00:00
- "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}"
- "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure"
2021-11-11 10:42:29 +00:00
- "traefik.http.routers.${STACK_NAME}.tls.domains[0].main=${DOMAIN}"
- "traefik.http.routers.${STACK_NAME}.tls.domains[0].sans=groups.${DOMAIN},share.${DOMAIN}"
- "coop-cloud.${STACK_NAME}.version=0.1.0+beta.20220119.1"
2021-10-12 11:35:23 +00:00
portal:
2022-01-23 17:27:09 +00:00
image: snikket/snikket-web-portal:beta.20220119.1
2021-10-30 22:10:52 +00:00
environment: *default-env
networks:
- backend
2021-10-12 11:37:20 +00:00
server:
2022-01-23 17:27:09 +00:00
image: snikket/snikket-server:beta.20220119.1
2022-01-09 14:05:14 +00:00
secrets:
- coturn_secret
configs:
- source: app_entrypoint
target: /docker-entrypoint.sh
mode: 0555
2022-01-19 14:20:57 +00:00
- source: prosody_cfg
target: /etc/prosody/prosody.cfg.lua
- source: start_coturn
target: /usr/local/bin/start-coturn.sh
mode: 0555
2021-10-12 11:37:20 +00:00
volumes:
- snikket_data:/snikket
2021-10-30 22:10:52 +00:00
- certs:/certs
environment: *default-env
2022-01-09 14:05:14 +00:00
entrypoint: /docker-entrypoint.sh
2021-10-30 22:10:52 +00:00
networks:
- backend
ports:
2021-12-02 15:15:48 +00:00
# Client App Connections (Client to Server) (XMPP-c2s)
2021-10-30 22:10:52 +00:00
- target: 5222
published: 5222
mode: host
2021-10-31 14:14:32 +00:00
- target: 5223
published: 5223
mode: host
2021-12-02 15:15:48 +00:00
# Federation With Other Snikket Servers (Server to Server) (XMPP-s2s)
2021-10-30 22:10:52 +00:00
- target: 5269
published: 5269
mode: host
2021-12-02 15:15:48 +00:00
# File Transfer Proxy (proxy65)
2021-10-30 22:10:52 +00:00
- target: 5000
published: 5000
mode: host
2021-12-02 15:15:48 +00:00
2022-01-09 14:05:14 +00:00
certs:
image: humenius/traefik-certs-dumper:1.5
volumes:
- traefik_letsencrypt:/traefik
- certs:/output
environment:
- ACME_FILE_PATH=/traefik/production-acme.json
- DOMAIN=${DOMAIN},groups.${DOMAIN},share.${DOMAIN}
- OVERRIDE_UID=101 # prosody
- OVERRIDE_GID=102 # prosody
2021-12-02 15:15:48 +00:00
2022-01-09 14:05:14 +00:00
configs:
app_entrypoint:
name: ${STACK_NAME}_app_entrypoint_${APP_ENTRYPOINT_VERSION}
file: entrypoint.sh.tmpl
template_driver: golang
2022-01-19 14:20:57 +00:00
cert_monitor:
name: ${STACK_NAME}_cert_monitor_${CERT_MONITOR_VERSION}
file: cert-monitor.sh.tmpl
template_driver: golang
http_template:
name: ${STACK_NAME}_http_template_${HTTP_TEMPLATE_VERSION}
file: http.template.tmpl
template_driver: golang
prosody_cfg:
name: ${STACK_NAME}_prosody_cfg_lua_${PROSODY_CFG_LUA_VERSION}
file: prosody.cfg.lua.tmpl
template_driver: golang
start_coturn:
name: ${STACK_NAME}_start_coturn_${START_COTURN_VERSION}
file: start-coturn.sh.tmpl
template_driver: golang
2021-10-30 22:10:52 +00:00
2022-01-09 14:05:14 +00:00
secrets:
coturn_secret:
external: true
name: ${STACK_NAME}_coturn_secret_${SECRET_COTURN_SECRET_VERSION}
2021-10-12 11:37:20 +00:00
volumes:
snikket_data:
2021-10-30 22:10:52 +00:00
certs:
traefik_letsencrypt:
name: "${TRAEFIK_SERVICE:-traefik_letsencrypt}"
external: true
networks:
proxy:
external: true
backend: