Files
archy/docker/conduit-market/nginx.conf
T
ssmithxandClaude Sonnet 5 bb0193932f Package Conduit Market as an Archipelago app
Pure client-side Nostr+Lightning marketplace (apps/market from
Conduit-BTC/conduit-mono) built into a static nginx image. Public/private
is a genuine runtime toggle, not two separate builds: Vite bakes VITE_*
relay config into the bundle at build time, so config.ts is patched
(apply-runtime-override.py) to merge in a window.__CONDUIT_RUNTIME_ENV__
override written by docker-entrypoint.sh from CONDUIT_MODE /
CONDUIT_PRIVATE_RELAY_URLS at container start -- flipping mode only needs
a restart, not a rebuild. Verified end-to-end: build succeeds, the
override survives bundling/minification, and public/private/missing-relay
all produce the correct runtime-env.js (private with no relay URL refuses
to start rather than silently falling back to the public network).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-26 23:21:27 +00:00

29 lines
854 B
Nginx Configuration File

server {
listen 8080;
server_name _;
root /usr/share/nginx/html;
index index.html;
# Regenerated by docker-entrypoint.d/50-conduit-runtime-env.sh on every
# container start -- must never be cached, or a mode flip (public <->
# private) followed by a container restart would silently keep serving
# the old relay config to anyone with a warm cache.
location = /runtime-env.js {
add_header Cache-Control "no-cache, no-store, must-revalidate";
add_header Pragma "no-cache";
expires 0;
}
# Client-side routing (@tanstack/react-router) -- unknown paths fall
# through to index.html rather than 404ing.
location / {
try_files $uri $uri/ /index.html;
}
location = /health {
access_log off;
default_type text/plain;
return 200 "ok\n";
}
}