83 lines
5.9 KiB
Markdown
83 lines
5.9 KiB
Markdown
# Cloudron app inventory
|
|
|
|
The co-op's Cloudron server carries **19 apps**. Before 2026-11-02 it carried 16;
|
|
the three added since the migration are the docs site, the CI server and the CI
|
|
agent (marked **NEW** below).
|
|
|
|
**Source of truth:** read it from the running apps, not from memory or a sibling
|
|
deploy. `GET https://my.inference.coop/api/v1/apps` returns every app with its
|
|
`id`, `fqdn`, install state and — inside `manifest` — `dockerImage`. The app
|
|
record's own top-level `image` field is **null**; the CLI's `list` output does
|
|
not carry the image at all. The registry paths are **per-app and not uniform**
|
|
(there are three different namespaces in use — see below), and a path copied from
|
|
a remembered deploy of a *different* app points the update at a repository that
|
|
does not hold it.
|
|
|
|
*Verified against the live API 2026-11-04.*
|
|
|
|
## The 19 apps
|
|
|
|
| FQDN | App id | Label | Image (pin) | Install |
|
|
|---|---|---|---|---|
|
|
| `inference.coop` | `55f5f904-3233-44de-ad7b-5dc7c8533b75` | — | `cloudron/io.cloudron.surfer:202611021342220000` | store (Surfer — marketing site) |
|
|
| `chat.inference.coop` | `4023ccbf-d57a-4500-97df-14de9cf3516e` | AI Chat | `registry.inference.coop/co-op/librechat-custom:20261106-c2aec74` | **custom** (LibreChat overlay) |
|
|
| `chat-legacy.inference.coop` | `50ae6c97-e851-4d17-b013-51ca7a4e5be0` | Legacy AI Chat | `cloudron/com.openwebui.cloudronapp:202611040420410000` | store (Open WebUI) |
|
|
| `portal.inference.coop` | `d4f05e4b-75c6-492e-9faf-7afb0712fc94` | — | `registry.inference.coop/code/member-portal:20261108-2954fe60` | **custom** |
|
|
| `dashboard.inference.coop` | `daf8750e-2683-4104-83ea-f77d1b4601e8` | Dashboard | `registry.inference.coop/code/member-dashboard:20261108-1e6e9e48` | **custom** |
|
|
| `panel.inference.coop` | `ae187071-7a43-4a6e-8a02-986609a66a1a` | Admin Panel | `registry.inference.coop/code/admin-panel:20261108-b23cc67` | **custom** |
|
|
| `gateway.inference.coop` | `adababd4-2427-4bdd-9bf7-6bdad0302610` | LiteLLM | `registry.inference.coop/local/ai.coop.litellm:20261109-c43d45c` | **custom** |
|
|
| `matrix.inference.coop` | `aa6f4597-6206-4509-b32e-c89750b2c1d8` | Matrix Chat | `cloudron/org.matrix.synapse:202611030719520000` | store (Synapse) |
|
|
| `git.inference.coop` | `c91c13aa-30ed-4af9-9599-7a87ab4f221d` | Code | `cloudron/io.gitea.cloudronapp:202611011719500000` | store (Gitea) |
|
|
| `registry.inference.coop` | `c257ba3c-6737-4375-ad51-ea19586bf3f0` | — | `cloudron/io.cloudron.container-registry:202610221511140000` | store (container registry) |
|
|
| `vault.inference.coop` | `cb838bcf-f2e2-4670-b117-dca04b0ee957` | — | `cloudron/com.github.bitwardenrs:202611020820270000` | store (Vaultwarden) |
|
|
| `forum.inference.coop` | `8b1a972c-08af-4e92-852c-d573c37b01ad` | Forum | `cloudron/org.loomio.cloudronapp:202611050321160000` | store (Loomio) |
|
|
| `newsletter.inference.coop` | `eed2217c-b165-430e-bc29-7ccfef9b11e4` | — | `cloudron/app.listmonk.cloudronapp:202610220221130000` | store (Listmonk) |
|
|
| `search.inference.coop` | `d7c73fff-ee42-4db0-98c0-4ce7a8ab35cc` | — | `cloudron/io.github.ascimoo.searx:202611012319290000` | store (SearXNG) |
|
|
| `cloud.inference.coop` | `fd261d67-b790-424f-9e82-f74883ee8585` | — | `cloudron/com.nextcloud.cloudronapp:202610211606270000` | store (Nextcloud) |
|
|
| `email.inference.coop` | `fbb256b9-ead3-41d8-bee0-d5ea87149436` | — | `cloudron/io.cloudron.mail:202610261602550000` | store (Cloudron mail UI) |
|
|
| `docs.inference.coop` | `85b7ce06-e2af-49a4-bd4f-a9c2e692e3ab` | Docs | `cloudron/io.cloudron.surfer:202611021342220000` | store (Surfer) — **NEW 2026-11-03** |
|
|
| `ci.inference.coop` | `4984f95e-0c0a-4af3-9ce1-4ca4f3e8483d` | Woodpecker | `cloudron/org.woodpecker_ci.cloudronapp:202610300219490000` | store (Woodpecker server) — **NEW 2026-11-03** |
|
|
| `ci-agent.inference.coop` | `5ac63873-cf2c-4ad9-acd6-81dc0e016c83` | — | `registry.inference.coop/co-op/woodpecker-agent:20261104-e070275` | **custom** (Woodpecker agent) — **NEW 2026-11-03** |
|
|
|
|
(`my.inference.coop` is the Cloudron dashboard hostname — the platform itself, not
|
|
an app object — so it does not appear here.)
|
|
|
|
## Registry namespaces — they are NOT uniform
|
|
|
|
Five custom apps pull from four different namespaces. Deriving one path from
|
|
another app's pattern deploys the wrong (or a missing) image:
|
|
|
|
| App | Registry path |
|
|
|---|---|
|
|
| chat (LibreChat overlay) | `registry.inference.coop/co-op/librechat-custom` |
|
|
| CI agent | `registry.inference.coop/co-op/woodpecker-agent` |
|
|
| member portal | `registry.inference.coop/code/member-portal` |
|
|
| member dashboard | `registry.inference.coop/code/member-dashboard` |
|
|
| gateway (LiteLLM) | `registry.inference.coop/local/ai.coop.litellm` |
|
|
| admin panel | `local/coop.inference.admin-panel` |
|
|
|
|
**Correcting a stale memory:** the portal is `code/member-portal` (not
|
|
`co-op/member-portal`), and the admin panel is `local/coop.inference.admin-panel`
|
|
(not `code/admin-panel`). Both were cited wrongly in earlier notes; the values
|
|
above are read from the running apps.
|
|
|
|
## Store vs custom, and what that decides
|
|
|
|
Six apps are **custom** installs (packaged by us, `appStoreId == ""`): chat,
|
|
CI agent, portal, dashboard, panel, gateway. Custom apps get **no automatic
|
|
update** (Cloudron says "not available for custom apps") — their protection is the
|
|
`manifest.dockerImage` pin, which an update deploys, so a custom app must never be
|
|
pinned to a floating tag. The rest carry a real `appStoreId` and update through
|
|
the store.
|
|
|
|
## Notes that are easy to get wrong
|
|
|
|
- **`enableAutomaticUpdate` exists on every app object and means nothing for a
|
|
custom one.** Judge update behaviour by the install SOURCE (`appStoreId`), not
|
|
by that flag.
|
|
- **Public collectives reach `co-op/*` and `code/*` repos; the only private repos
|
|
are `ops/inferencebot` and `ops/security`.**
|
|
- **`info@inference.coop` is the co-op's gateway team account** (`member:info@inference.coop`,
|
|
budget $135/30d) and also the owner account of several provider keys — see the
|
|
token runbook.
|