From 44f09908f54edf2ff1880df836b809f6aa4ab06c Mon Sep 17 00:00:00 2001 From: Jeff Emmett Date: Mon, 2 Mar 2026 17:43:42 -0800 Subject: [PATCH] feat: add staging docker-compose for staging-ccg.jeffemmett.com Co-Authored-By: Claude Opus 4.6 --- docker-compose.staging.yml | 46 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 docker-compose.staging.yml diff --git a/docker-compose.staging.yml b/docker-compose.staging.yml new file mode 100644 index 0000000..79bc567 --- /dev/null +++ b/docker-compose.staging.yml @@ -0,0 +1,46 @@ +services: + ccg-staging: + build: . + container_name: ccg-staging + restart: unless-stopped + environment: + - NODE_ENV=production + - STRIPE_SECRET_KEY=${STRIPE_SECRET_KEY} + - STRIPE_WEBHOOK_SECRET=${STRIPE_WEBHOOK_SECRET} + - NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=${NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY} + - NEXT_PUBLIC_BASE_URL=https://staging-ccg.jeffemmett.com + - GOOGLE_SERVICE_ACCOUNT_KEY=${GOOGLE_SERVICE_ACCOUNT_KEY} + - GOOGLE_SHEET_ID=${GOOGLE_SHEET_ID} + - GOOGLE_SHEET_NAME=${GOOGLE_SHEET_NAME:-Registrations} + - SMTP_HOST=${SMTP_HOST:-mail.rmail.online} + - SMTP_PORT=${SMTP_PORT:-587} + - SMTP_USER=${SMTP_USER:-newsletter@cryptocommonsgather.ing} + - SMTP_PASS=${SMTP_PASS} + - EMAIL_FROM=${EMAIL_FROM:-Crypto Commons Gathering } + - LISTMONK_DB_HOST=${LISTMONK_DB_HOST:-listmonk-db} + - LISTMONK_DB_PORT=${LISTMONK_DB_PORT:-5432} + - LISTMONK_DB_NAME=${LISTMONK_DB_NAME:-listmonk} + - LISTMONK_DB_USER=${LISTMONK_DB_USER:-listmonk} + - LISTMONK_DB_PASS=${LISTMONK_DB_PASS} + - LISTMONK_LIST_ID=${LISTMONK_LIST_ID:-22} + labels: + - "traefik.enable=true" + - "traefik.http.routers.ccg-staging.rule=Host(`staging-ccg.jeffemmett.com`)" + - "traefik.http.routers.ccg-staging.entrypoints=web,websecure" + - "traefik.http.services.ccg-staging.loadbalancer.server.port=3000" + healthcheck: + test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:3000/"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 15s + networks: + - traefik-public + - listmonk-internal + +networks: + traefik-public: + external: true + listmonk-internal: + external: + name: listmonk_listmonk-internal