kitshn
Deploys GitHub repos onto a VPS you own. Push to main and it is live. Open a pull request and it gets its own preview.
brew install yarden-zamir/tap/kitshnor read the README
Live right now
Each ticket is a real recipe on this VPS. Its badge is a live image from this server.
From a repo to a site
kitshn init --template staticWrites the recipe: a Compose file, a Caddy route for each environment, and the GitHub workflow.
kitshn recipe auth --vps-host you@vpsGives the repo's workflow an SSH key for your VPS. Run it before the first push.
git pushGitHub Actions SSHes in and deploys. A pull request deploys a preview at its own hostname.
kitshn trackFollows the run, checks the VPS, and requests the public URL, all from your laptop.
Put the state in the README
Public repos deployed with KitSHn get live badges from this server. They show what the VPS runs: the state of each environment, the deployed commit, and the pull request previews.
Every badge also answers as JSON in the shields.io endpoint format. Use it to get shields' styles, such as for-the-badge:
Or use no KitSHn server at all: shields' own GitHub Deployments badge shows the state of the latest deploy. It cannot show previews or the commit.