setup-coolifylisted
Install: claude install-skill anatesan-stream/claude-skills-deploy
# setup-coolify
Arguments: `$ARGUMENTS`
Provision or update a Coolify + Doppler deployment from `coolify.yaml` in the current
working directory. Same skill works for any repo and any Coolify server — the `server:`
alias in `coolify.yaml` selects both the Coolify URL and the Doppler account.
## Subcommands
| Form | Action |
|------|--------|
| `/setup-coolify` | Provision/update: ensures Doppler keys exist, upserts staging + production Coolify apps, syncs env vars, mounts Doppler-fallback volume, triggers initial deploy. Idempotent. |
| `/setup-coolify init` | Interactive setup of `~/.claude/coolify.json` for a new server alias. Prompts for url, api_key, doppler_account. |
| `/setup-coolify validate` | Dry-run: checks that all `env_vars` keys in coolify.yaml exist in Doppler staging AND production configs; verifies Coolify API reachability. No mutations. |
## Secrets injection model (same-image promotion)
All `env_vars` in `coolify.yaml` — including `NEXT_PUBLIC_*` keys — are set as
**runtime** Coolify env vars whose values are pulled from Doppler at container
start via `doppler run` (the Dockerfile ENTRYPOINT). The same Docker image is
promoted from staging to production without a rebuild; the only thing that differs
between the two app instances is the `DOPPLER_TOKEN` (scoped to the matching
Doppler config).
The `# build_time: true` trailing-comment annotation in `coolify.yaml` is
**reserved for a future per-env build mode** and is NOT currently parsed by
this skill.