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.

Recommended specs. 2GB RAM is the minimum recommended to build and run Zoneless.

1. Create a server

  • Image: Ubuntu 24.04 LTS
  • Plan: Shared CPU with at least 2GB RAM
  • Region: Pick the closest to your users
  • Authentication: Set a strong root password or add your SSH key

Wait about 60 seconds for the server to boot. Copy the IP address from your provider's dashboard.

2. SSH into your server

Open your terminal and connect to the server. Type yes when prompted about the fingerprint, then enter your password.

Connect
ssh root@YOUR_IP_ADDRESS

3. Install Docker

Run the official Docker install script. This takes about 30 seconds.

Install Docker
curl -fsSL https://get.docker.com | sh

4. Clone Zoneless

Clone the repository and navigate into it.

Clone
git 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.

Generate a strong secret. Use openssl rand -hex 64 to generate a cryptographically secure value for APP_SECRET.
Copy the example file
cp .env.production.example .env.production
nano .env.production
.env.production
DASHBOARD_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.

Start
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.

Verify
# 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