name: tangled services: knot: image: tngl/knot:latest build: target: knot args: &args UID: ${UID:-1000} GID: ${GID:-1000} TAG: ${TAG:-v1.11.0-alpha} tags: - tngl/spindle:latest - tngl/spindle:${TAG:-v1.11.0-alpha} environment: KNOT_SERVER_HOSTNAME: ${KNOT_SERVER_HOSTNAME} KNOT_SERVER_OWNER: ${KNOT_SERVER_OWNER} KNOT_SERVER_DB_PATH: /app/knotserver.db KNOT_REPO_SCAN_PATH: /home/git/repositories KNOT_SERVER_INTERNAL_LISTEN_ADDR: localhost:5444 volumes: - ./keys:/etc/ssh/keys - ./repositories:/home/git/repositories - ./server:/app ports: - "5555:5555" - "2222:22" restart: always spindle: image: tngl/spindle:latest build: target: spindle args: *args tags: - tngl/spindle:latest - tngl/spindle:${TAG:-v1.11.0-alpha} environment: SPINDLE_SERVER_HOSTNAME: ${SPINDLE_SERVER_HOSTNAME} SPINDLE_SERVER_OWNER: ${KNOT_SERVER_OWNER} volumes: - ./logs:/var/log/spindle - ./spindle:/app ports: - "6555:6555" frontend: image: caddy:alpine depends_on: knot: condition: service_healthy spindle: condition: service_healthy configs: - source: caddyfile target: /etc/caddy/Caddyfile ports: - ${KNOT_SERVER_PORT:-443}:443 - ${KNOT_SERVER_PORT:-443}:443/udp volumes: - ./caddy_data:/data restart: always profiles: ["caddy"] configs: caddyfile: content: | ${KNOT_SERVER_HOSTNAME} { reverse_proxy knot:5555 } ${SPINDLE_SERVER_HOSTNAME} { reverse_proxy spindle:6555 }