apps/botfights/manifest.yml: image tag 1.1.0 -> 1.2.1, adds container.generated_secrets (botfights-jwt-secret, kind hex32) + secret_env (JWT_SECRET) so a fresh install no longer crash-loops on the 1.2.x image's jwt.ts import-time throw when JWT_SECRET is unset under NODE_ENV=production (D-04/BOT-04). Adds ARENA_UPSTREAM_URL=https://botfights.archipelago-foundation.org to turn on shared public arena federation by default (BOT-03/D-03), with an in-manifest comment documenting the per-node opt-out (remove the line to run standalone). app-catalog/catalog.json + scripts/image-versions.sh bumped in lockstep to keep the legacy catalog and the image-version drift checker consistent with the manifest. releases/app-catalog.json intentionally NOT committed in this change — it has been regenerated locally (scripts/generate-app-catalog.sh) with the new manifest embedded, but is unsigned. It is committed separately (09-06 Task 3) only after the release-root signing ceremony, so no unsigned catalog state ever lands even transiently on a branch this repo's mirrors could serve to nodes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Archipelago App Catalog
Dynamic app catalog for the Archipelago marketplace. Nodes fetch this catalog to discover available apps.
How it works
- The Archipelago frontend fetches
catalog.jsonfrom this repo - Apps listed here appear in every node's app store automatically
- When a user installs an app, the backend pulls the Docker image and creates the container
Adding a new app
Add an entry to catalog.json:
{
"id": "my-app",
"title": "My App",
"version": "1.0.0",
"description": "What it does",
"icon": "/assets/img/app-icons/my-app.svg",
"author": "Author",
"category": "data",
"dockerImage": "146.59.87.168:3000/lfg2025/my-app:1.0.0",
"repoUrl": "https://github.com/...",
"containerConfig": {
"ports": ["8080:8080"],
"volumes": ["/var/lib/archipelago/my-app:/data"],
"env": ["NODE_ENV=production"]
}
}
For apps with hardcoded backend configs (Bitcoin, LND, etc.), containerConfig is optional.
For new apps, include containerConfig so the backend knows how to create the container.
Categories
money, commerce, data, home, nostr, networking, community, development, l484