The tx1138 Gitea was retired as a release server 2026-06-13 and its registry frontend is fully dead (500 on every /v2 manifest read, observed 2026-07-10). Nothing may reference it anymore: - registry.rs: no longer a default registry, no longer force-enabled on load; saved configs are stripped of it on load (same one-time migration treatment as the decommissioned Hetzner mirror), with a regression test. - image_policy.rs: removed from TRUSTED_REGISTRIES — refs through the dead host are now refused at the pull site (rejection test added). - api/handler: dropped the legacy catalog-proxy fallback URL. - .gitmodules: indeedhub submodule repointed to the OVH Gitea. - scripts, image-recipe, app-catalog data, neode-ui strings, docs, and all test fixtures repointed to 146.59.87.168:3000 (or neutral example hosts). - image-versions.sh: ARCHY_REGISTRY_FALLBACK emptied (guarded consumers skip it); reconcile-containers.sh candidate guard hardened. The only remaining occurrences of the host string are the strip/reject enforcement paths and their regression tests — the code that guarantees it is never used again. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
40 lines
1.1 KiB
Markdown
40 lines
1.1 KiB
Markdown
# Archipelago App Catalog
|
|
|
|
Dynamic app catalog for the Archipelago marketplace. Nodes fetch this catalog to discover available apps.
|
|
|
|
## How it works
|
|
|
|
1. The Archipelago frontend fetches `catalog.json` from this repo
|
|
2. Apps listed here appear in every node's app store automatically
|
|
3. 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`:
|
|
|
|
```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
|