npx skills add https://github.com/getcolors/rybbit --skill package-rybbit-redSKILL.md
Rybbit with Red
Operate one Rybbit analytics deployment from non-secret colors.yml. Read
references/configuration.md before changing
configuration or running a lifecycle operation.
Providers
provider-compute selects the machine: digitalocean (one Droplet, the
region's default VPC discovered at runtime) or vultr (one instance, a
generated per-CIDR firewall group). Each provider reads its own keys and its
own credential:
| Provider | Credential | Keys |
|---|---|---|
digitalocean |
COLORS_PAR_DO_TOKEN |
digitalocean-region, digitalocean-size, digitalocean-image, digitalocean-ssh-sources, digitalocean-http-sources; optional digitalocean-name, digitalocean-ssh-keys |
vultr |
COLORS_PAR_VULTR_API_KEY |
vultr-region, vultr-plan, vultr-os-id, vultr-ssh-sources, vultr-http-sources; optional vultr-name, vultr-ssh-keys |
<provider>-nameis optional and defaults to the profile.<provider>-ssh-keysis optional. Leave it out and the package generates and owns the machine keypair at~/.ssh/<profile>on the first real create (keygen mode, the default); set it to an existing account key id to use that key instead.<provider>-ssh-sourcesmust list at least one CIDR; every entry of both source keys must be a valid IPv4 or IPv6 CIDR. An empty<provider>-http-sourcesmeans no public HTTP.- Switching providers is a rebuild, never an apply:
deleteon the recorded provider first, thencreateon the new one. A changedprovider-computeon a profile that holds a machine is refused.
Safety
- Keep credentials in gitignored
.envrc.privateasCOLORS_PAR_*variables. - Never set
COLORS_PAR_PROFILEor edit/commit.colors/. - Keep
compute-prevent-destroy: true; deletion requires separate explicit authorization and a one-run environment override. - Build and dry-run before a real create.
- Only Caddy's 80/443 are public. PostgreSQL, ClickHouse, Redis and the Rybbit backend and client ports stay on the private Compose network.
rybbit-disable-signupis desired state. Rybbit has no first-run bootstrap, so it must stayfalseuntil you have registered the first account, then be settrueto close public registration.
./red build
./red create --dry-run
./red create
A real create ends in acceptance: HTTPS health with a verified certificate, a synthetic event read back out of ClickHouse, and a backup drill confirmed by a fresh object in R2.