Audit of the operator docs against live reality (2026-11-04): - app-inventory.md: all 19 Cloudron apps with id, fqdn and registry image pin. Corrects the portal path (code/member-portal, not co-op/member-portal) and the panel path (local/coop.inference.admin-panel, not code/admin-panel). - maintenance/backups.md: the two backup systems; the deliberate per-user restic cache split and the --group-by "" retention fix, with why. - maintenance/woodpecker-ci.md: CI server + agent, image build/pin, manual-only trigger, git-lfs requirement, and its current not-yet-green state (agent's job-collection long-poll gets HTTP 500 from the server). - provider-pricing/: index + GreenPT, Tinfoil (local EHBP proxy architecture) and the Metis /v1/systemone decision-model route; regolo.md updated to record the gateway prices were applied. - agent-fleet.md: steward, infrastructure-bot and socialbot (Unix users, gateway units, teams); member-bot tier 2 planned but not yet provisioned. - README: file list; operator-token-runbook: correct the membership_sweep cadence (3x daily, not nightly); migration doc: post-migration addendum (16->19 apps, DNS split resolved, old box still on with apps stopped).
2.0 KiB
Provider pricing
What our model providers charge, and where the authoritative numbers live.
The authority
The gateway's own per-model costs are the authority — they are what the
response headers (x-litellm-response-cost) and member billing both read. They
live in the LiteLLM config on the gateway's persistent volume
(/app/data/config.yaml), under each model's model_info, as USD per token
(the comments in that file quote per-1M rates). Read them live with
GET https://gateway.inference.coop/model/info (master key), or read the config
straight from the running app.
The member-facing mirror is co-op/docs/models.md. When a rate changes,
update both the gateway config and models.md — the config is authoritative,
models.md is the mirror.
A missing cost field makes a paid feature free; a stale one bills wrong; a missing
cache_read_input_token_cost bills cache hits at the full input rate. All three
have happened here.
The pages
| File | Provider | Notes |
|---|---|---|
greenpt.md |
GreenPT | renewable energy; the default model lives here |
tinfoil.md |
Tinfoil | TEE; the local-proxy architecture lives here |
regolo.md |
Regolo | renewable + ZDR; includes our measured usage |
decision-model.md |
GreenPT "Metis" via /v1/systemone |
a pass-through route, not a chat model |
The routing rule
Members reach models through one gateway, which fronts all providers. The per-request cost the gateway records is the number to trust; do not re-derive a price from a provider's public page (they drift, and some are login-walled).
A note on currencies
Regolo quotes in EUR; our gateway figures convert at EUR × 1.16 → USD
(the rate our numbers use — regolo.md documents the derivation). GreenPT's own
listed rates appear in EUR with the same numerals the gateway carries —
whether an EUR→USD conversion is intended there is unverified; confirm it
against the GreenPT invoice before treating the figures as final.