The catalog pointed at a non-existent nostr.svg (handleImageError only falls back .png→.svg, so an .svg miss stays broken). Point it at the existing nostr icon. fedimint icon already uses fedimint.png (exists); the stale fedimint.jpg request is resolved by /api/app-catalog now serving the local catalog. Co-Authored-By: Claude Opus 4.8 (1M context) <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": "git.tx1138.com/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