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

fix(docker): ship public/ assets so /gluecron.dxt stops 404ing

fix(docker): ship public/ assets so /gluecron.dxt stops 404ing

GET /gluecron.dxt serves public/gluecron.dxt, but the Dockerfile never
copied public/ into the image — so the download 404'd and the synthetic
uptime monitor logged a red incident every 5 minutes.

Copy public/ into the image and rebuild the .dxt bundle from source at
build time (zip added to the apt layer; build-dxt-assets.ts uses only
node builtins). The committed bundle is the fallback if the rebuild is
skipped. Fixes the broken landing-page download CTA and clears the
recurring synthetic incidents.

https://claude.ai/code/session_01QKaJBYpD6DGErWHrRVChkf
Claude committed on June 1, 2026Parent: 6499f34
1 file changed+1339e3aad5bd634dcc6d9710f3c414996efadd9d9b4
1 changed file+13−3
ModifiedDockerfile+13−3View fileUnifiedSplit
22WORKDIR /app
33
44# Install git (required for ALL git operations — clone, push, branch/tree
5# listing, diffs). Verify it landed: a missing binary here must fail the
6# build loudly rather than ship an image that 500s on every repo page.
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.
78RUN apt-get update \
8 && apt-get install -y --no-install-recommends git ca-certificates \
9 && apt-get install -y --no-install-recommends git ca-certificates zip \
910 && rm -rf /var/lib/apt/lists/* \
1011 && git --version
1112
1718COPY src/ ./src/
1819COPY drizzle/ ./drizzle/
1920COPY scripts/ ./scripts/
21COPY extension/ ./extension/
22COPY public/ ./public/
2023COPY tsconfig.json drizzle.config.ts ./
2124COPY legal/ ./legal/
2225COPY CLAUDE.md LICENSE ./
2326
27# Refresh the Claude Desktop (.dxt) bundle from source into public/ so GET
28# /gluecron.dxt serves a real file instead of 404ing (which also kept tripping
29# the synthetic uptime monitor). The committed public/gluecron.dxt is the
30# fallback; this rebuild keeps it in sync with the manifest. Best-effort — a
31# glitch here must not fail the whole image.
32RUN bash scripts/build-dxt.sh || echo "WARN: .dxt bundle build skipped"
33
2434# Create repos directory
2535RUN mkdir -p /data/repos
2636
2737