name: tangled services: knot: image: tubbo/knot:latest restart: always build: target: knot ports: - 2222:22 environment: - KNOT_SERVER_HOSTNAME - KNOT_SERVER_OWNER volumes: - knot_repos:/home/git/repositories - knot_data:/var/lib/tangled - knot_keys:/etc/ssh/keys spindle: image: tubbo/spindle:latest restart: always build: target: spindle environment: - SPINDLE_SERVER_HOSTNAME - SPINDLE_SERVER_OWNER volumes: - spindle_logs:/var/log/spindle - spindle_data:/var/lib/tangled caddy: image: caddy:2 restart: always ports: - 443:443 - 443:443/udp - 80:80 configs: - source: caddyfile target: /etc/caddy/Caddyfile volumes: - caddy_data:/data volumes: knot_repos: knot_data: knot_keys: spindle_logs: spindle_data: caddy_data: configs: caddyfile: content: | { email ${CADDY_EMAIL} } ${KNOT_SERVER_HOSTNAME} { reverse_proxy http://knot:5555 } ${SPINDLE_SERVER_HOSTNAME} { reverse_proxy http://spindle:6555 }