archy/.claude/memory/project_indeedhub_arch3_fix.md
Dorian d37ec1dea5 feat: v1.2.0-alpha — E2E encrypted mesh relay, steganography, relay status polling
Phase 5 mesh networking:
- E2E encrypted TX relay (X25519 + ChaCha20-Poly1305) — non-Archy nodes
  relay encrypted blobs transparently via Meshcore native routing
- Steganographic encoding modes (WeatherStation, SensorNetwork) — traffic
  looks like sensor data on the wire, 0xAA marker, configurable per-node
- Pre-flight Bitcoin Core health check on relay node — specific error codes
  (bitcoin_unreachable, bitcoin_syncing, tx_rejected) instead of generic fails
- mesh.relay-status RPC endpoint — frontend polls for relay result every 3s
- On-Chain / Lightning tabs in Off-Grid Bitcoin panel
- Archy Peers vs Mesh Broadcast relay mode selector
- Mesh view fills viewport (no page scroll), internal panel scrolling
- Version bump to 1.2.0-alpha

Also includes: deploy hardening, container fixes, IndeedHub updates,
boot screen, dashboard improvements, MASTER_PLAN task tracking

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 23:56:37 +00:00

2.1 KiB

name, description, type
name description type
IndeedHub Arch 3 Fix — 2026-03-17 Fixed IndeedHub on Arch 3 (100.124.105.113) — corrupted image tarball was root cause, all 7 containers now running project

Status: FIXED and working (verified 2026-03-17)

IndeedHub on Arch 3 (100.124.105.113) is fully operational — all 7 containers running, frontend on :7777, API healthy, NIP-07 nostr-provider injected.

Root Cause

The /tmp/indeedhub-all-images.tar on Arch 3 was corrupted — podman save with multiple images collapsed ALL 7 images to the same image ID (the frontend nginx image 7222645f0b38). So redis, minio, API, ffmpeg-worker, postgres, and relay were all running the frontend nginx binary.

Why: podman save with multiple images sharing layers can produce broken tarballs where all images get the same config/ID.

What Was Done

  1. Removed all broken containers and images
  2. Pulled fresh standard images from Docker Hub (postgres:16-alpine, redis:7-alpine, minio:latest, nostr-rs-relay:latest)
  3. Exported each custom image as individual tarballs from .228 (NOT combined):
    • indeedhub-frontend.tar (149MB, ID: 7222645f0b38)
    • indeedhub-api.tar (403MB, ID: 2ae2665fc6c7)
    • indeedhub-ffmpeg.tar (525MB, ID: cb05b5cf8c25)
  4. Transferred via Mac (.228 → Mac → Arch 3 over Tailscale)
  5. Loaded images individually, created all 7 containers manually (bypassed the deploy script's broken podman load step)
  6. Copied nostr-provider.js + nginx config with sub_filter from .228 container into Arch 3 container via podman cp

Remaining Issue — Deploy Script

The deploy script at /tmp/deploy-indeedhub.sh on Arch 3 still references the broken /tmp/indeedhub-all-images.tar. If it's run again it will re-corrupt the images. The individual tarballs (/tmp/indeedhub-frontend.tar, /tmp/indeedhub-api.tar, /tmp/indeedhub-ffmpeg.tar) are on Arch 3 and should be used instead.

How to apply: Next time deploying IndeedHub to any node, always export images individually, never as a combined tarball. Consider updating the deploy script to load individual tarballs.