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>
29 lines
854 B
Nginx Configuration File
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";
|
|
}
|
|
}
|