diff --git a/apps/indeedhub/Dockerfile b/apps/indeedhub/Dockerfile index 266914d4..f7afb278 100644 --- a/apps/indeedhub/Dockerfile +++ b/apps/indeedhub/Dockerfile @@ -20,7 +20,7 @@ RUN sed -i 's/reactStrictMode: true,/reactStrictMode: true, output: "standalone" # Build-time environment — connects to Indeehub production services ENV NEXT_PUBLIC_APP_ENVIRONMENT=production ENV NEXT_PUBLIC_APP_URL=http://localhost:8190 -ENV NEXT_PUBLIC_API_URL=https://api.indeehub.studio +ENV NEXT_PUBLIC_API_URL=https://staging-api.indeehub.studio ENV NEXT_PUBLIC_S3_PRIVATE_BUCKET=indeehub-private ENV NEXT_PUBLIC_S3_PUBLIC_BUCKET=indeehub-public ENV NEXT_PUBLIC_ENABLE_APPROVAL_FLOW=false @@ -28,6 +28,12 @@ ENV NEXT_TELEMETRY_DISABLED=1 # Remove shaka-player .d.ts files that break the build (per package.json build script) RUN rm -f ./node_modules/shaka-player/dist/*.d.ts + +# Patch: make the home page static (no SSR revalidation) so it uses the +# pre-rendered Webflow HTML from build time instead of re-fetching every request. +# Also add error handling so SSR failures don't crash the page. +RUN sed -i '1s|^|export const revalidate = false;\nexport const dynamic = "force-static";\n|' src/app/page.tsx + RUN npm run build # ── Stage 3: Runner ── diff --git a/image-recipe/configs/nginx-archipelago.conf b/image-recipe/configs/nginx-archipelago.conf index 22bef01a..a1f3e2da 100644 --- a/image-recipe/configs/nginx-archipelago.conf +++ b/image-recipe/configs/nginx-archipelago.conf @@ -331,6 +331,13 @@ server { sub_filter_once on; sub_filter '' ''; } + location /app/indeedhub/_next/ { + proxy_pass http://127.0.0.1:8190/_next/; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_cache_valid 200 30d; + add_header Cache-Control "public, max-age=2592000, immutable"; + } location /app/indeedhub/ { proxy_pass http://127.0.0.1:8190/; proxy_http_version 1.1; @@ -342,7 +349,10 @@ server { proxy_hide_header Content-Security-Policy; add_header X-Content-Type-Options "nosniff" always; proxy_set_header Accept-Encoding ""; - sub_filter_once on; + sub_filter_types text/html; + sub_filter_once off; + sub_filter '/_next/' '/app/indeedhub/_next/'; + sub_filter '/favicon.ico' '/app/indeedhub/favicon.ico'; sub_filter '' ''; } location /app/lnd/ { diff --git a/image-recipe/configs/snippets/archipelago-https-app-proxies.conf b/image-recipe/configs/snippets/archipelago-https-app-proxies.conf index 5a519f09..853b8fc0 100644 --- a/image-recipe/configs/snippets/archipelago-https-app-proxies.conf +++ b/image-recipe/configs/snippets/archipelago-https-app-proxies.conf @@ -231,6 +231,13 @@ location /app/electrs/ { sub_filter_once on; sub_filter '' ''; } +location /app/indeedhub/_next/ { + proxy_pass http://127.0.0.1:8190/_next/; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_cache_valid 200 30d; + add_header Cache-Control "public, max-age=2592000, immutable"; +} location /app/indeedhub/ { proxy_pass http://127.0.0.1:8190/; proxy_http_version 1.1; @@ -241,7 +248,10 @@ location /app/indeedhub/ { proxy_hide_header X-Frame-Options; proxy_hide_header Content-Security-Policy; proxy_set_header Accept-Encoding ""; - sub_filter_once on; + sub_filter_types text/html; + sub_filter_once off; + sub_filter '/_next/' '/app/indeedhub/_next/'; + sub_filter '/favicon.ico' '/app/indeedhub/favicon.ico'; sub_filter '' ''; } location /app/nginx-proxy-manager/ { diff --git a/neode-ui/src/components/NostrIdentityPicker.vue b/neode-ui/src/components/NostrIdentityPicker.vue index c3a12aa9..9904b74a 100644 --- a/neode-ui/src/components/NostrIdentityPicker.vue +++ b/neode-ui/src/components/NostrIdentityPicker.vue @@ -6,15 +6,8 @@ class="fixed inset-0 z-[3100] flex items-center justify-center p-4" @click="$emit('cancel')" > - -
- - -- NIP-07 · SECP256K1 · SIGNED LOCALLY +
+ NIP-07 · SECP256K1 · Signed locally