Dorian 367b483a72 feat: bitcoin-ui CSS fix, HTTPS proxy support, deploy script improvements
Bitcoin UI:
- Replace cdn.tailwindcss.com with locally bundled tailwind.css (CSP blocks external scripts)
- Make all asset paths relative for nginx proxy compatibility
- Add bitcoin-ui build/deploy to deploy-to-target.sh (was missing entirely)
- Use --network host (bitcoin-ui proxies Bitcoin RPC at 127.0.0.1:8332)

HTTPS mixed content fix:
- Add HTTPS_PROXY_PATHS in AppSession.vue — when parent page is HTTPS,
  iframe loads through nginx proxy instead of direct HTTP port
- Prevents browser blocking HTTP iframes inside HTTPS pages
- All Tailscale servers use HTTPS, this was breaking all app iframes

Deploy & first-boot improvements:
- first-boot-containers.sh auto-detects disk size for pruning vs txindex
- first-boot-containers.sh checks fallback source path for UI containers
- Added mempool-electrs to APP_PORTS mapping
- ElectrumX container creation in first-boot
- Podman doctor/fix/uptime skills added

Also includes: session persistence, identity management, LND transactions,
ElectrumX status UI, nostr-provider improvements, Web5 enhancements

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 12:58:35 +00:00

4.0 KiB

Archipelago Canonical Port Map

All port assignments across the 4 configuration layers. When adding or debugging an app, every row must be consistent across all columns.

Bitcoin Stack

App Host Port(s) Container Port(s) Network Nginx Path Frontend Map
bitcoin-knots 8332, 8333 8332, 8333 archy-net /app/bitcoin-knots/ 8332→bitcoin-knots
bitcoin-ui 8334 80 bridge /app/bitcoin-ui/ 8334→bitcoin-knots
electrs 50001 50001 archy-net /app/electrs/ 50001→electrs
lnd 9735, 10009, 8080 9735, 10009, 8080 archy-net /app/lnd/ 10009→lnd
lnd-ui (RTL) 8081 80 bridge /app/lnd-ui/ 8081→lnd

Lightning & Payment

App Host Port(s) Container Port(s) Network Nginx Path Frontend Map
btcpay-server 23000 49392 archy-net /app/btcpay/ 23000→btcpay-server
nbxplorer 24444 32838 archy-net N/A (internal) N/A
fedimint 8173, 8174, 8175 8173, 8174, 8175 archy-net /app/fedimint/ 8174→fedimint
fedimint-gateway 8175 8175 archy-net /app/fedimint-gateway/ 8175→fedimint-gateway

Explorer & Monitoring

App Host Port(s) Container Port(s) Network Nginx Path Frontend Map
mempool 4080 8080 archy-net /app/mempool/ 4080→mempool
grafana 3000 3000 bridge /app/grafana/ 3000→grafana (new tab)

Self-Hosted Apps

App Host Port(s) Container Port(s) Network Nginx Path Frontend Map
nextcloud 8085 80 bridge /app/nextcloud/ 8085→nextcloud
vaultwarden 8082 80 bridge /app/vaultwarden/ 8082→vaultwarden (new tab)
filebrowser 8083 80 bridge /app/filebrowser/ 8083→filebrowser
searxng 8888 8080 bridge /app/searxng/ 8888→searxng
photoprism 2342 2342 bridge /app/photoprism/ 2342→photoprism (new tab)
jellyfin 8096 8096 bridge /app/jellyfin/ 8096→jellyfin
homeassistant 8123 8123 bridge /app/homeassistant/ 8123→homeassistant (new tab)
ollama 11434 11434 archy-net /app/ollama/ 11434→ollama
open-webui 3080 8080 archy-net /app/open-webui/ 3080→open-webui

Nostr & Social

App Host Port(s) Container Port(s) Network Nginx Path Frontend Map
nostr-rs-relay 7000 8080 archy-net /app/nostr-rs-relay/ 7000→nostr-rs-relay
indeedhub 3001 3000 archy-net /app/indeedhub/ 3001→indeedhub

System

App Host Port(s) Container Port(s) Network Nginx Path Frontend Map
tailscale 8240 8240 host /app/tailscale/ N/A
nginx-proxy-manager 81, 8443 81, 443 bridge N/A 81→nginx-proxy-manager

Multi-Container Stacks

Immich: immich-server (2283), immich-postgres (internal 5432), immich-redis (internal 6379) — all on immich-net Penpot: penpot-frontend (9001→80), penpot-backend, penpot-exporter, penpot-postgres, penpot-mailcatch — all on penpot-net Mempool: mempool (4080→8080), mempool-db (internal 3306) — on archy-net BTCPay: btcpay-server (23000→49392), nbxplorer (24444→32838), btcpay-postgres (internal 5432) — on archy-net

Key Notes

  • archy-net apps resolve each other by container name (e.g., bitcoin-knots:8332)
  • bridge apps are standalone — access services via host IP/port
  • host network (tailscale only) — shares host namespace, no port mapping
  • New tab apps: btcpay (23000), grafana (3000), vaultwarden (8082), photoprism (2342), homeassistant (8123) — X-Frame-Options blocks iframe