Your apps, your servers.
Self-hosted deployment for a handful of web apps. Give it a Docker image and a domain; it runs the app behind HTTPS, watches it, and shows everything in one dashboard.

Small on purpose
Spotcraft is for one person running about ten server-rendered apps on two servers they own. Not a platform, not a cluster.
There is no build step (your CI publishes images), no database to look after (the app list is a folder of files), and nothing between your apps and the internet but Caddy.
What you get
Deploy from a form
Image, tag, domain, limits and environment variables. Recent tags come straight from Docker Hub.
HTTPS without thinking
Caddy gets and renews certificates on the first request, redirects www, and speaks HTTP/3.
Rollback on failure
A deploy waits until the new container is healthy. If anything fails, the previous version keeps running.
Monitoring built in
Uptime and response time from outside, CPU and memory per app, host load, and every app’s logs.
Hardened by default
Apps run read-only, without Linux capabilities, with limits. Images are distroless and scanned in CI.
Your servers, your secrets
Two plain VPSes you own. Every secret lives in your GitHub environment, never in a file or an image.
How it works
Two servers on a private network. The ops server watches the apps server from the outside, so it can tell you when something is down.
01
Create two servers
An OpenTofu module does it on Hetzner Cloud in one apply; any Debian or Ubuntu VPS works with the first-boot script.
02
Deploy Spotcraft
Fill in a GitHub environment and run the Deploy workflow. It sets up both servers and checks the dashboard from outside.
03
Add your apps
Log in, add an image and a domain, point the domain at the apps server. That’s the whole loop.
Built on good tools
Spotcraft is mostly glue. The heavy lifting is done by software that is better at it than anything new would be.
- Caddy
HTTPS, certificates and the reverse proxy in front of every app.
- Docker
Every app is a container; every deploy is Docker Compose.
- VictoriaMetrics
Stores the metrics and uptime the dashboard draws.
- SvelteKit
The dashboard and this site.
- Fastify
The agent that deploys apps on the apps server.
- OpenTofu
Creates the servers, network and firewall on Hetzner.
Ready to run your own?
Two servers, one workflow run, then apps from a form. The guide takes about half an hour.