fix: container stack installers, DNS resolution, uninstall cleanup
All checks were successful
Build Archipelago ISO (dev) / build-iso (push) Successful in 15m54s

- Replace aardvark-dns container names with host.containers.internal
  for all cross-app connections (LND→Bitcoin, ElectrumX→Bitcoin,
  Mempool→ElectrumX, Fedimint→Bitcoin, NBXplorer→Bitcoin P2P+RPC)
- Add BTCPay multi-container stack installer (postgres + nbxplorer +
  btcpay-server) with proper secrets, data dir ownership, NOAUTH
- Add Mempool multi-container stack installer (mariadb + mempool-api +
  mempool-frontend) with host.containers.internal for RPC
- Immediately remove apps from state on uninstall (no 3-min ghost delay)
- Include archy-bitcoin-ui in bitcoin uninstall container list
- Fix LND UI port 8081 (was 8080, conflicting with LND gRPC)
- Fix ElectrumX UI: proxy /electrs-status to backend, cache-busting
  headers, graceful fallback when backend returns HTML
- Add Tor hidden services for ElectrumX and LND in torrc template
- Remove unused detect_bitcoin_container_name() (replaced by
  host.containers.internal)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Dorian
2026-04-08 23:29:50 +02:00
parent 2d1536f016
commit ed3df0728f
8 changed files with 397 additions and 37 deletions

View File

@@ -355,11 +355,15 @@
async function updateStatus() {
try {
var resp = await fetch('/electrs-status');
var resp = await fetch('/electrs-status', { cache: 'no-store' });
if (!resp.ok) {
throw new Error('Backend unavailable (HTTP ' + resp.status + ')');
}
var data = await resp.json();
var text = await resp.text();
if (text.trim().charAt(0) !== '{') {
throw new Error('Waiting for Archipelago backend...');
}
var data = JSON.parse(text);
// Extract Tor onion from status response
if (data.tor_onion && !torOnion) {

View File

@@ -5,9 +5,17 @@ server {
root /usr/share/nginx/html;
index index.html;
# electrs-status is fetched via absolute /electrs-status path,
# handled by the host nginx → backend at :5678 directly
location /electrs-status {
proxy_pass http://127.0.0.1:5678/electrs-status;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_connect_timeout 10s;
proxy_read_timeout 10s;
add_header Cache-Control "no-store, no-cache, must-revalidate";
}
location / {
add_header Cache-Control "no-cache";
try_files $uri $uri/ /index.html;
}
}

View File

@@ -1,5 +1,5 @@
server {
listen 8080;
listen 8081;
server_name _;
root /usr/share/nginx/html;