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>
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
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";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user