Deployment
Deploy Zoneless to a VPS in under 10 minutes. This guide walks through provisioning a server, installing Docker, and running your self-hosted Zoneless instance.
Choose a VPS provider
Zoneless runs on any Linux server with Docker. Pick whichever provider you prefer — the steps are the same once you have SSH access.
- Linode — Linode 2GB ($12/month)
- DigitalOcean — Basic Droplet 2GB ($12/month)
- Hetzner — CX22 2GB ($4/month)
2. SSH into your server
Open your terminal and connect to the server. Type yes when prompted about the fingerprint, then enter your password.
ssh root@YOUR_IP_ADDRESScurl -fsSL https://get.docker.com | shgit clone https://github.com/zonelessdev/zoneless.git
cd zoneless
5. Configure environment
Copy the example environment file and update it with your server's IP address and a secure app secret.
openssl rand -hex 64 to generate a cryptographically secure value for APP_SECRET.cp .env.production.example .env.production
nano .env.productionDASHBOARD_URL=http://YOUR_IP_ADDRESS
APP_SECRET=your_generated_secret_here
SINGLE_TENANT=true
6. Start Zoneless
Build and start all containers. The first run takes a few minutes to download base images and build the API and dashboard.
docker compose --env-file .env.production up -d --build
7. Verify
Check that the containers are running and the API is healthy. Then open http://YOUR_IP_ADDRESS/setup in your browser — you should see the Zoneless setup wizard.
# Check containers are running
docker compose ps
# Check API health
curl http://localhost/api/health
Next steps
- Setup wizard: Complete the Quickstart guide starting from step 2 to configure your platform account
- Custom domain: Point a domain at your server and set up a reverse proxy with SSL (e.g. Caddy or nginx)
- Backups: Set up automated database backups via your VPS provider or a cron job