I've been deploying apps and websites to servers I own or rent since the late nineties. A lot has changed over the years, but one thing has stayed the same: it's tedious work.
The last decade has been all about Docker, and that has made things more stable and reproducible, but the setup and deployment process hasn't gotten any better. It was actually simpler a couple of decades ago. Now it's SSH in, install Docker, write a Dockerfile, figure out nginx configs for SSL, debug why the proxy isn't working, and eventually get something running.
Every project feels like reinventing the wheel.
What if your AI coding assistant could handle deployment config?
That's the idea behind Haloy and its agent skills. Haloy is a deployment tool for self-hosting. Think docker-compose, but for production. You write a haloy.yaml, run haloy deploy, and your app is live with automatic HTTPS.
The interesting part is the agent skills. These are packaged instructions that teach AI coding assistants (Claude Code, Cursor, etc.) how to prepare your app for deployment.
Two skills, two steps
Install the skills with:
npx skills add haloydev/agent-skills
Step 1: Dockerize your app
First, you need a Dockerfile. The dockerize skill handles this. In Claude Code, I use the /dockerize command. Other tools might trigger it differently, but the idea is the same: tell your assistant to dockerize the project.
It will:
- Detect your framework (Tanstack Start, Next.js, FastAPI, Go, whatever)
- Create a multi-stage Dockerfile with the right base image
- Add a health check endpoint if you don't have one
- Generate a proper .dockerignore
Step 2: Create the Haloy config
Once you have a Dockerfile, use the haloy-config skill. In Claude Code, I use /haloy-config. It will:
- Figure out which port your app runs on
- Ask which of your configured servers to deploy to
- Ask for your domain
- Generate a working
haloy.yaml
What this actually looks like
You're in your project directory with a TanStack Start app. You run /dockerize in Claude Code. It reads your package.json, creates a Dockerfile with Node 24, and adds a /health route.
Then you run /haloy-config. It asks for your server and domain, and generates haloy.yaml.
Run haloy deploy and you're live.
The VPS setup
On the server side, it's one command:
curl -fsSL https://sh.haloy.dev/install-haloyd.sh | API_DOMAIN=haloy.yourserver.com sh
This installs the Haloy daemon and gives you a token. Add the server to your local CLI with haloy server add, and you're done.
Why this matters
Self-hosting shouldn't require deep DevOps knowledge for every project. But the tooling has always assumed you know what you're doing.
LLM coding assistants are good at following instructions. Agent skills give them the right instructions for deployment. You get the benefits of self-hosting (control, cost, no vendor lock-in) without the setup friction.
Links:
Top comments (0)