Files
outline-sync/docker-compose.yml
domverse 3a5593f861
All checks were successful
Deploy / deploy (push) Successful in 12s
feat: add two-instance compare review UI (Phase 2)
- outline_sync.py: write compare results to /tmp/compare_results.json
  with full doc maps for parent-chain lookup during copy operations
- webui.py: /review page with remote-only, local-only, conflict tables;
  /review/content endpoint to fetch doc text from either instance;
  /review/apply endpoint for copy_to_local, copy_to_remote, keep_remote,
  keep_local, skip actions; "Compare Instances" button on dashboard;
  "Review Differences" link shown after compare completes
- entrypoint.sh: include local block in generated settings.json
- docker-compose.yml: pass LOCAL_OUTLINE_URL/TOKEN/HOST env vars
- deploy.yml: write LOCAL_* secrets to .env file

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 15:56:20 +01:00

60 lines
1.8 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
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}
- 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