who_need_help/compose.edge.yaml
SimpleTest eb5e0f896d
Some checks are pending
Quality / full-local-gates (push) Waiting to run
Isolate test and production deployments
2026-07-21 17:46:34 +03:00

47 lines
1.4 KiB
YAML

name: ${EDGE_COMPOSE_PROJECT_NAME:?Set EDGE_COMPOSE_PROJECT_NAME in .env}
services:
edge:
image: ${CADDY_IMAGE:-who-need-help:caddy-local}
build:
context: .
dockerfile: Dockerfile.caddy
user: "1000:1000"
environment:
PRIMARY_DOMAIN: ${PRIMARY_DOMAIN:?Set PRIMARY_DOMAIN in the edge environment}
PRIMARY_UPSTREAM: ${PRIMARY_UPSTREAM:?Set PRIMARY_UPSTREAM in the edge environment}
TEST_DOMAIN: ${TEST_DOMAIN:?Set TEST_DOMAIN in .env}
TEST_UPSTREAM: ${TEST_UPSTREAM:?Set TEST_UPSTREAM in .env}
ports:
- "${EDGE_BIND_ADDRESS:-0.0.0.0}:${EDGE_HTTP_PORT:-80}:80"
- "${EDGE_BIND_ADDRESS:-0.0.0.0}:${EDGE_HTTPS_PORT:-443}:443"
- "${EDGE_BIND_ADDRESS:-0.0.0.0}:${EDGE_HTTPS_PORT:-443}:443/udp"
volumes:
- ./deploy/caddy/Caddyfile:/etc/caddy/Caddyfile:ro
- caddy_data:/data
- caddy_config:/config
networks: [public_edge]
extra_hosts:
- "host.docker.internal:host-gateway"
read_only: true
tmpfs:
- /tmp
cap_drop: [ALL]
cap_add: [NET_BIND_SERVICE]
security_opt:
- no-new-privileges:true
restart: unless-stopped
healthcheck:
test: ["CMD", "caddy", "validate", "--config", "/etc/caddy/Caddyfile", "--adapter", "caddyfile"]
interval: 10s
timeout: 3s
retries: 5
networks:
public_edge:
name: ${PUBLIC_EDGE_NETWORK:?Set PUBLIC_EDGE_NETWORK in the edge environment}
volumes:
caddy_data:
caddy_config: