Files
archy/apps/indeedhub
archipelagoandClaude Opus 5 eb48eab946 feat(apps): find out when an app has fallen behind upstream
Nodes offer an update when the signed catalog pins something newer than
what's running, and that machinery is fine. The missing step was the one
before it: nothing told *us* when upstream shipped. A pin could sit at
fedimintd v0.10.0 for months while every node in the fleet correctly and
confidently reported "up to date".

The reason nothing could tell us is that a manifest records only our
mirror — `source.archipelago-foundation.org/lfg2025/fedimintd:v0.10.0`
says nothing about the project it was mirrored from. So this adds an
optional `app.upstream` block naming the real source, and a script that
asks each one what it has released.

Running it answers the question that prompted this. Of 58 apps, 28 are
behind, including LND v0.18.4-beta against v0.21.2-beta, Bitcoin Core
28.4 against 31.1, and fedimintd/gatewayd v0.10.0 against v0.10.1.

Two choices worth stating. An app with no `upstream` block is reported
as UNTRACKED rather than skipped — a silent skip is how this stayed
invisible, and before this commit all 58 were silently skipped. And a
suggestion prefers our own tag variant: telling someone pinned to
`postgres:16.13-alpine` that the newest tag is `18.6-trixie` is true and
useless, because swapping the base image is a different decision from
bumping a version.

Five apps are deliberately left untracked (barkd, immich-postgres,
indeedhub-minio, lightning-stack, pine-whisper): I could not establish
their upstream with confidence, and a wrong `repo` produces a confident
wrong verdict, which is worse than an honest gap.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 08:04:33 -04:00
..

Indeehub — Bitcoin Documentary Streaming

Bitcoin documentary streaming platform featuring God Bless Bitcoin and other educational content about Bitcoin, sovereignty, and decentralized technology.

Self-hosted Next.js app with Nostr identity sign-in via Archipelago's NIP-07 provider.

Building the Image

The app image is built from the indeehub-frontend project at ~/Projects/indeehub-frontend.

Option 1: Use the build script

# From archy repo root
./apps/indeedhub/build-from-prototype.sh

Option 2: Build from source directory

cd ~/Projects/indeehub-frontend
podman build -t localhost/indeedhub:latest -f ~/Projects/archy/apps/indeedhub/Dockerfile .

Installing from App Store

  1. Build the image using one of the options above (must exist before install)
  2. Go to Dashboard -> App Store (Marketplace)
  3. Find Indeehub and click Install
  4. On first launch, pick a Nostr identity to sign in with
  5. The app appears in My Apps once the container is running

Port

  • Web UI: 8190 (maps to container port 3000)

Container

  • Image: localhost/indeedhub:latest (built locally, not pulled from a registry)
  • Runtime: Node.js 20 (Next.js standalone)
  • Port: 8190 -> 3000
  • Read-only root filesystem with tmpfs for /tmp and .next/cache

Nostr Identity

On first launch, Archipelago shows a cypherpunk identity picker modal. Select which of your identities to use for NIP-07 signing. The NIP-07 provider is injected automatically via nginx proxy.

Services

The app connects to the following external services (configured at build time):

  • Indeehub API (content, auth, streaming)
  • AWS S3 (media storage via CloudFront CDN)
  • Nostr relays (via NIP-07 provider from Archipelago)