It reads your repo first
An LLM inspects the code and works out the stack, the entrypoint, the port it listens on, and which environment variables it needs. Every answer is validated against a schema before anything runs — no free-text guesswork.
Invite-only beta · no card, no billing
HobbyDeploy plugs into Cursor, Claude Code or Claude Desktop over MCP. Point it at a GitHub repo and it reads the code, writes the Dockerfile if you do not have one, asks for the env vars only you know, builds and tests it, then puts it live on an HTTPS subdomain of hobbydeploy.com.
No dashboard to learn · automatic SSL · rollback in one sentence
It is a Next.js 15 app, listens on port 3000, no Dockerfile — I will generate one. It needs DATABASE_URL (I will provision it) and RESEND_API_KEY (I will need that from you).
This is your first project, so it needs a server. That costs money, so here is a one-click approval link: /approve/apr_8f3c…
Saved 1 secret (values are encrypted and masked from here on). Build started — attempt 1 of 3.
✅ Live at https://notes-app.hobbydeploy.com
How it works
Everything after the setup happens in the chat window you already have open.
Sign in with Google and redeem your invite code — an account stays inactive until a code is redeemed, so nothing is provisioned by accident. Then create an API token on your account page. It is shown once and only a hash is stored.
Paste the token into your MCP config — one command for Claude Code, one JSON block for Cursor and Claude Desktop. Restart, confirm the hobbydeploy server is connected, and you are done setting up forever.
“Deploy github.com/me/notes-app.” The repo is analysed and summarised in plain English. If a server has to be created, you get an approval link rather than a surprise. If secrets are missing, you are asked for exactly those.
Build → health check → traffic switch behind Caddy with automatic SSL, and you get https://notes-app.hobbydeploy.com. After that, every push to your default branch redeploys it with no downtime.
What it actually does
Not a wrapper around git push. Analysis, build repair, secret handling, health checks and rollback are the product.
An LLM inspects the code and works out the stack, the entrypoint, the port it listens on, and which environment variables it needs. Every answer is validated against a schema before anything runs — no free-text guesswork.
No Dockerfile in the repo? One is generated for your stack and used for the build. Your repository is never modified — the Dockerfile lives in the build context, not in your git history.
When a build or health check fails, the error is fed back in, the build is patched and retried — up to three attempts. Only if it still fails do you get a message, and it is one paragraph of plain English, not a stack trace.
DATABASE_URL, PORT, NODE_ENV and friends are generated for you. The deployment pauses at AWAITING_ENV only for the values nobody else has — your API keys, SMTP credentials — and your assistant asks for them in chat.
Every value is encrypted with AES-256-GCM at rest, masked in every log line, every API response and every message the assistant sees. A saved secret is never echoed back — not even to you.
A new release boots and passes its health check before any traffic moves to it, so the running version stays up during the switch. Say "roll it back" and you are on the previous working release.
Every project gets its own <slug>.hobbydeploy.com subdomain, served by Caddy with automatic Let’s Encrypt certificates. No cert files, no renewal cron, nothing to configure.
Connect the GitHub App once and a push to your default branch triggers a fresh build and a zero-downtime switch. Private repositories are supported through the same installation.
Anything that spends — creating a new server, upgrading a plan — comes back as a one-click approval link instead of happening silently. Your assistant cannot buy infrastructure on your behalf.
MCP surface
You never call these yourself — your assistant does, in response to normal sentences. They are listed here so you know exactly what it can and cannot do on your behalf.
deploy_projectDeploy a GitHub repo for the first time, or redeploy a project you already have.
get_deployment_statusWhere a deployment is right now: state, queue position, attempt number.
get_logsThe last N lines of build or runtime logs, already secret-masked.
set_env_varsHand over the environment variables a paused deployment is waiting for.
rollbackReturn a project to its previous working release.
get_app_metricsThe latest CPU, memory and disk sample for a running app.
Notice what is missing: there is no tool that deletes your data, no tool that reveals a stored secret, and no tool that spends money. Those paths go through a human click on the web.
Setup
Create an API token on your account page, then wire it into your assistant.
claude mcp add hobbydeploy \
--env HOBBYDEPLOY_API_URL=https://api.hobbydeploy.com \
--env HOBBYDEPLOY_TOKEN=hd_your_token_here \
-- npx -y hobbydeploy-mcp{
"mcpServers": {
"hobbydeploy": {
"command": "npx",
"args": ["-y", "hobbydeploy-mcp"],
"env": {
"HOBBYDEPLOY_API_URL": "https://api.hobbydeploy.com",
"HOBBYDEPLOY_TOKEN": "hd_your_token_here"
}
}
}
}Then just talk: “What is the deployment status of notes-app?”, “Show me the last 100 build log lines.”, “Roll notes-app back.”
Beta, honestly described
There is no payment code in HobbyDeploy — no card, no subscription, no invoice. Every app runs on a VPS the platform owner rents, so access is gated by invite codes and quotas instead of a price tag.
FAQ
No. If your repo has a Dockerfile it is used; if it does not, one is written for you. Reverse proxy, TLS certificates and process supervision are all handled on the server — there is nothing for you to configure.
Any web app that listens on a port: Node/Express, Next.js, NestJS, Django, FastAPI, Flask, Spring Boot, Go, Rust and so on. Static sites work too. Desktop apps, mobile builds and anything needing a GPU do not.
Nothing during the beta. There is no card, no subscription and no billing code in the product at all. Every app runs on a server the platform owner pays for, which is exactly why access is invite-only and quotas are small.
One server and two projects per account, two concurrent builds, and at most three deploy attempts in your first 24 hours. If you hit a limit, your assistant tells you in plain language instead of failing cryptically.
On a Hetzner VPS dedicated to your account — Ubuntu with Docker and Caddy, created from a prepared snapshot. Your projects do not share a machine with anyone else’s.
Not during the beta. Every project is served at <slug>.hobbydeploy.com with automatic SSL. Custom domains are out of scope for the MVP.
A project with no deploys and near-zero traffic for 14 days is paused to keep server costs down. It is paused, not deleted — your next deploy wakes it up.
Codes go out in small batches during the beta. Ask whoever pointed you here; once you have one, redeeming it on the sign-in page activates your account.
Sign in, redeem it, create a token, and ask your assistant to deploy something. First live URL in about five minutes.
Sign in and redeem