Pre-launch — Gluecron is in final validation. Public signups and git hosting for non-owner users open after launch review.
Commit56ea9a9unknown_key

deploy(standalone): wire Google OAuth env + add wget so healthcheck works

deploy(standalone): wire Google OAuth env + add wget so healthcheck works

Two durability fixes for the self-hosted (docker-compose.standalone.yml) box:

1. Google sign-in: add GOOGLE_OAUTH_CLIENT_ID/SECRET/AUTO_CREATE/ALLOWED_DOMAINS
   to the gluecron service env allow-list in both compose files. Values come
   from the gitignored .env; without this wiring the env bootstrap never
   reaches the container, and the lines would vanish on every redeploy
   (git reset --hard). A config saved at /admin/google-oauth (DB) still wins.

2. Healthcheck: the compose healthcheck calls wget, which wasn't in the
   oven/bun image — so the app container was permanently 'unhealthy' and
   autoheal restart-looped it (that churn left an orphaned container behind).
   Install wget in the image so the healthcheck actually passes.

https://claude.ai/code/session_01Gi3ZS4USc7ix2mgMALpz97
Claude committed on June 13, 2026Parent: ad3ddf6
3 files changed+20556ea9a96819dd36d71afeeb3566302fc59e185ca
3 changed files+20−5
ModifiedDockerfile+8−5View fileUnifiedSplit
22WORKDIR /app
33
44# Install git (required for ALL git operations — clone, push, branch/tree
5# listing, diffs) and zip (used to package the Claude Desktop .dxt bundle at
6# build time). Verify git landed: a missing binary here must fail the build
7# loudly rather than ship an image that 500s on every repo page.
5# listing, diffs), zip (used to package the Claude Desktop .dxt bundle at
6# build time), and wget (the compose healthcheck calls it — without it the
7# container is permanently "unhealthy" and autoheal restart-loops it).
8# Verify git landed: a missing binary here must fail the build loudly rather
9# than ship an image that 500s on every repo page.
810RUN apt-get update \
9 && apt-get install -y --no-install-recommends git ca-certificates zip \
11 && apt-get install -y --no-install-recommends git ca-certificates zip wget \
1012 && rm -rf /var/lib/apt/lists/* \
11 && git --version
13 && git --version \
14 && wget --version | head -1
1215
1316# Install dependencies
1417COPY package.json bun.lock ./
Modifieddocker-compose.standalone.yml+8−0View fileUnifiedSplit
4444 - APP_BASE_URL=https://gluecron.com
4545 - SSH_PORT=0
4646 - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}
47 # "Sign in with Google" — values come from .env (gitignored). Wiring them
48 # here is what makes the env bootstrap reach the container and survive
49 # redeploys; a config saved at /admin/google-oauth (DB) still takes
50 # precedence over these.
51 - GOOGLE_OAUTH_CLIENT_ID=${GOOGLE_OAUTH_CLIENT_ID:-}
52 - GOOGLE_OAUTH_CLIENT_SECRET=${GOOGLE_OAUTH_CLIENT_SECRET:-}
53 - GOOGLE_OAUTH_AUTO_CREATE=${GOOGLE_OAUTH_AUTO_CREATE:-}
54 - GOOGLE_OAUTH_ALLOWED_DOMAINS=${GOOGLE_OAUTH_ALLOWED_DOMAINS:-}
4755 expose:
4856 - "3000"
4957 volumes:
Modifieddocker-compose.yml+4−0View fileUnifiedSplit
1717 - GLUECRON_WEBHOOK_SECRET=${GLUECRON_WEBHOOK_SECRET}
1818 - CRONTECH_EVENT_TOKEN=${CRONTECH_EVENT_TOKEN}
1919 - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
20 - GOOGLE_OAUTH_CLIENT_ID=${GOOGLE_OAUTH_CLIENT_ID:-}
21 - GOOGLE_OAUTH_CLIENT_SECRET=${GOOGLE_OAUTH_CLIENT_SECRET:-}
22 - GOOGLE_OAUTH_AUTO_CREATE=${GOOGLE_OAUTH_AUTO_CREATE:-}
23 - GOOGLE_OAUTH_ALLOWED_DOMAINS=${GOOGLE_OAUTH_ALLOWED_DOMAINS:-}
2024 - EMAIL_PROVIDER=${EMAIL_PROVIDER:-log}
2125 - EMAIL_FROM=${EMAIL_FROM}
2226 - RESEND_API_KEY=${RESEND_API_KEY}
2327