Deploy an app
Open Apps in the dash and pick an app from the catalog — WordPress, Ghost, n8n, Vaultwarden and twenty-odd others. Give it a name, then choose a domain from your account and a subdomain to run it on. That's the whole form.
On deploy, Greybull creates the workload in your own isolated namespace on our Kubernetes cluster, points DNS at it, requests a Let's Encrypt certificate, provisions persistent storage if the app needs it, and generates secure credentials. A few minutes later the app is serving on https://<subdomain>.<your-domain>.
Manage apps over the API
Create an API key with the services:read and/or services:write scopes under API settings.
# List your apps
curl https://dash.greybull.cloud/api/v1/services \
-H "X-API-Key: $API_KEY"
# Inspect one
curl https://dash.greybull.cloud/api/v1/services/$APP_ID \
-H "X-API-Key: $API_KEY"
# Start, stop or restart
curl -X POST https://dash.greybull.cloud/api/v1/services/$APP_ID/actions \
-H "X-API-Key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{"action":"restart"}'Stopping an app scales it to zero — storage and configuration stay in place, and starting it brings it back as it was. Deleting an app is done from the dash.
Environment variables
Apps that support configuration through environment variables expose them in the dash and over the API:
# Read the app's environment
curl https://dash.greybull.cloud/api/v1/services/$APP_ID/envs \
-H "X-API-Key: $API_KEY"
# Set a variable (the app picks it up on its next rollout)
curl -X POST https://dash.greybull.cloud/api/v1/services/$APP_ID/envs \
-H "X-API-Key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{"key":"SMTP_HOST","value":"mail.example.nl"}'Domains and DNS
Every app lives on a subdomain of a domain in your Greybull account — that's what lets DNS records and certificates happen automatically. Hosted DNS keeps serving the rest of the zone as usual, and you can register or transfer a domain if you don't have one with us yet.