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 restart: unless-stopped 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=authentik@docker" - "traefik.http.services.outline-sync.loadbalancer.server.port=8080" outline-sync-ui: build: context: . args: APP_VERSION: ${APP_VERSION:-dev} 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} extra_hosts: - "outline:100.104.53.109" volumes: tailscale-state: driver: local networks: default: {} domverse: external: true