Live trends
this session · 3s samplesNodes
Recent activity
Apps
Git-built, load-balanced container apps. Replicas are scheduled onto worker nodes.
new app
Build & runtime auto-detected — open for monorepos or custom builds
Environment & secrets env vars · runtime secrets · build secrets
Advanced persistent volumes
Databases
Postgres HA clusters — primary + synchronous standby + async replica, node-pinned volumes, Raft-coordinated failover.
new postgres HA cluster
postgres user, password, DATABASE_URL secret, and env are generated automatically. Members are placed on worker nodes.
Services
Docker-compose stacks pinned to a single node. Use apps + replicas when you need cross-node HA.
new service — docker compose stack
Runs a docker-compose stack pinned to ONE worker node (compose is single-host — no cross-node HA). Source: paste YAML, or point at a git repo (redeploy re-checks-out & pulls). To expose: set a domain + the host port your compose file publishes. Volumes: declare them in your compose (volumes:) — Docker creates them automatically and they persist across redeploys.
Routes
The edge load balancer. Each host fans out to healthy backend replicas; unhealthy ones are pulled from rotation.
Cluster
Nodes, roles, and the managed-DNS edge.
Platform
Edge (managed DNS)
Metrics
Live fleet, database, and per-node resource metrics — sampled in your browser this session. For history & alerting over time, scrape /metrics with Prometheus.
Fleet trends
this session · ~3s samplesDatabases
Per-node resources
cpu · memory · disk · networkPrometheus /metrics
Secrets
Envelope-encrypted at rest in the keeper and replicated across brain nodes. Values are shown once, at create.
set secret
Settings
Source access, managed DNS, and self-update.
Git access · clone private app repos
Token to clone your private app repos. Sealed in the keeper; git-token is the cluster-wide default. Fine-grained PAT, Contents: read. No OAuth.
API access token
The token you sign in with. Rotating replicates a new one to every node in ~15s — no restart. The env SKIFF_TOKEN stays valid as break-glass. Previous token works 10 more min; new one is saved in this browser.
Cluster root key
Master key for all secrets. Rotating re-encrypts everything and rolls the new key to every node (quorum-safe restart).
Self-update token · skiff's own releases
Token to see & download skiff's own releases (private repo). Set once — replicates to every node. Falls back to git-token. Without it the update button never appears.
Dashboard domain
Serve this dashboard over HTTPS on your own domain (auto Let's Encrypt) instead of an IP.
Managed DNS
Skiff auto-creates + maintains the A records for every app/service domain.
Cloudflare: leave zone blank to manage all your domains with one token. The token needs Zone → Zone → Read + Zone → DNS → Edit, Zone Resources = All zones. A 403 code 10000 in the status below means the token is missing one of those.
Config (incl. the token) is sealed in the keeper and replicated — it takes effect live, no restart. Set the provider to disabled to turn managed DNS off.
Reclaim disk space
Runs docker system prune -a on every node — removes stopped containers, unused networks, build cache, and all unused images incl. retired releases (the usual disk hog). Images a rollback needs are reloaded from skiff's own store, and volumes are never touched, so databases and app data (HA state) are safe. The next build re-warms its cache.