From ecc9cdd747f503dad4e069290a23491d034f9f18 Mon Sep 17 00:00:00 2001 From: Brendan Chen Date: Mon, 23 Feb 2026 12:01:28 -0800 Subject: [PATCH] Add Docker Compose file which uses Caddy --- docker-compose.prod.yml | 52 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 docker-compose.prod.yml diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml new file mode 100644 index 0000000..b0a55f8 --- /dev/null +++ b/docker-compose.prod.yml @@ -0,0 +1,52 @@ +# self hosted server setup using Caddy + +x-common-environment: &common-server-environment + APNS_IS_PRODUCTION: ${APNS_IS_PRODUCTION} + APNS_BUNDLE_ID: ${APNS_BUNDLE_ID} + APNS_TEAM_ID: ${APNS_TEAM_ID} + APNS_KEY_ID: ${APNS_KEY_ID} + APNS_PRIVATE_KEY: ${APNS_PRIVATE_KEY} + PARKING_LOGGING_INTERVAL_MS: ${PARKING_LOGGING_INTERVAL_MS} + REDIS_URL: redis://redis:6379 + REDIS_USE_TLS: false + RATE_LIMITS_DISABLED: ${RATE_LIMITS_DISABLED} + RATE_LIMIT_WINDOW_MS: ${RATE_LIMIT_WINDOW_MS} + RATE_LIMIT_DELAY_AFTER_REQUESTS: ${RATE_LIMIT_DELAY_AFTER_REQUESTS} + RATE_LIMIT_DELAY_MULTIPLIER_MS: ${RATE_LIMIT_DELAY_MULTIPLIER_MS} + +services: + app: + build: . + command: npm run start + restart: unless-stopped + depends_on: + - redis + environment: + <<: *common-server-environment + NODE_ENV: production + + redis: + image: redis/redis-stack:7.2.0-v17 + container_name: redis-timeseries + restart: unless-stopped + volumes: + - redis_data:/data + - ./redis-stack.conf:/redis-stack.conf + command: redis-stack-server /redis-stack.conf + + caddy: + image: caddy:2-alpine + restart: unless-stopped + ports: + - "80:80" + - "443:443" + - "443:443/udp" + volumes: + - ./Caddyfile:/etc/caddy/Caddyfile + - caddy_data:/data + - caddy_config:/config + +volumes: + redis_data: + caddy_data: + caddy_config: