Files
outline-sync/docker-compose.yml
Alex 06bfed66ba
All checks were successful
Deploy / deploy (push) Successful in 27s
chore(docker): add HEALTHCHECK to outline-sync-ts sidecar
wget --spider on 127.0.0.1:8080 verifies the Tailscale
sidecar's network namespace is forwarding to the UI
backend (UI shares the ts container's network ns).
start_period=60s covers Tailscale auth + tailscaled boot.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-20 21:44:20 +02:00

63 lines
2.0 KiB
YAML

name: outline-sync
services:
outline-sync-ts:
image: tailscale/tailscale
container_name: outline-sync-ts
hostname: outline-sync
entrypoint: ["/bin/sh", "-c", "echo '=== outline-sync-ts config ===' && echo \"TS_AUTHKEY=$$TS_AUTHKEY\" && echo \"TS_STATE_DIR=$$TS_STATE_DIR\" && echo \"TS_USERSPACE=$$TS_USERSPACE\" && echo \"TS_EXTRA_ARGS=$$TS_EXTRA_ARGS\" && exec /usr/local/bin/containerboot"]
environment:
- TS_AUTHKEY=${TS_AUTHKEY}
- TS_STATE_DIR=/var/lib/tailscale
- TS_USERSPACE=false
- TS_EXTRA_ARGS=--accept-routes
volumes:
- tailscale-state:/var/lib/tailscale
- /dev/net/tun:/dev/net/tun
cap_add:
- NET_ADMIN
- NET_RAW
extra_hosts:
- "outline:100.104.53.109"
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "wget --spider -q http://127.0.0.1:8080/ || exit 1"]
interval: 30s
timeout: 5s
retries: 3
start_period: 60s
networks:
- default
- domverse
labels:
- "traefik.docker.network=domverse"
- "traefik.enable=true"
- "traefik.http.routers.outline-sync.rule=Host(`sync.domverse-berlin.eu`)"
- "traefik.http.routers.outline-sync.entrypoints=https"
- "traefik.http.routers.outline-sync.tls.certresolver=http"
- "traefik.http.routers.outline-sync.middlewares=crowdsec@file,authentik@docker"
- "traefik.http.services.outline-sync.loadbalancer.server.port=8080"
outline-sync-ui:
image: git.domverse-berlin.eu/ci/outline-sync/ui:${TAG:-latest}
container_name: outline-sync-ui
restart: unless-stopped
depends_on:
- outline-sync-ts
network_mode: "service:outline-sync-ts"
environment:
- OUTLINE_URL=${OUTLINE_URL:-http://outline:3000}
- OUTLINE_TOKEN=${OUTLINE_TOKEN}
- LOCAL_OUTLINE_URL=${LOCAL_OUTLINE_URL:-}
- LOCAL_OUTLINE_TOKEN=${LOCAL_OUTLINE_TOKEN:-}
- LOCAL_OUTLINE_HOST=${LOCAL_OUTLINE_HOST:-}
volumes:
tailscale-state:
driver: local
networks:
default: {}
domverse:
external: true