name: "kycnotme_v2024" networks: caddy: external: true volumes: pb_data: {} pb_public: {} pb_migrations: {} services: website: container_name: kycnotme-website build: ./src networks: caddy: default: volumes: - ./src/frontend/templates:/app/frontend/templates env_file: - .env depends_on: pocketbase: condition: service_healthy labels: caddy: "${WEB_DOMAIN}" caddy.reverse_proxy: "{{upstreams 4488}}" caddy.header.Referrer-Policy: "no-referrer" caddy.header.Strict-Transport-Security: "max-age=31536000; includeSubdomains; preload;" caddy.encode: zstd gzip caddy.header.Onion-Location: ${ONION_ADDRESS}{path} ofelia.enabled: true ofelia.job-exec.toscheck.schedule: "0 0 1 * *" ofelia.job-exec.toscheck.command: "kycnotme -scrap" pocketbase: image: spectado/pocketbase:latest container_name: kycnotme-pocketbase restart: always volumes: - pb_data:/pb_data - pb_public:/pb_public networks: caddy: {} default: aliases: - "database" labels: caddy: "${PB_DOMAIN}" caddy.reverse_proxy: "{{upstreams 80}}" caddy.request_body.max_size: 20MB caddy.header.X-Robots-Tag: "noindex" caddy.header.Strict-Transport-Security: "max-age=31536000; includeSubdomains; preload;" healthcheck: #optional (recommended) since v0.10.0 test: wget --no-verbose --tries=1 --spider http://localhost:80/api/health || exit 1 interval: 5s timeout: 5s retries: 5 tor: image: goldy/tor-hidden-service:latest profiles: ["tor"] container_name: kycnotme-tor restart: always networks: caddy: {} default: {} links: - website volumes: - ./docker/tor/hidden_service:/var/lib/tor/hidden_service environment: SERVICE1_TOR_SERVICE_HOSTS: 80:website:4488 SERVICE1_TOR_SERVICE_VERSION: '3' i2pd: build: context: ./docker/i2p/ profiles: ["i2p"] container_name: kycnotme-i2p restart: always networks: caddy: {} default: {} #ports: # - ":14447" # socks volumes: - ./docker/i2p/data:/root/.i2pd labels: caddy: ${I2P_ADDRESS} caddy.reverse_proxy: "website:4488"