One binary. Zero config.

Host anything,
instantly.

Drop a ZIP, get a live site. zipgo is a single Go binary that serves static sites and SPAs with automatic HTTPS — no containers, no YAML, no ops.

Written in Go MIT License Powered by Caddy
Go Gopher
How it works
01

Install

Run the one-line install script or download the binary for your platform. No runtime dependencies, ever.

02

Configure

Put your domain in apps/root.txt — or leave it empty for localhost mode. Set ZIPGO_PASS. That's it.

03

Deploy

Upload a ZIP in the backoffice UI, or drop files into apps/mysite/. Caddy reloads instantly.

04

Live

Your site is at mysite.yourdomain.com with a valid TLS certificate courtesy of Caddy. Add more anytime.

Why zipgo

Single binary

One executable handles everything — HTTP/S, TLS, routing, file serving, and the backoffice UI. No Node, no Docker, no config files.

Automatic HTTPS

Let's Encrypt certificates provisioned and renewed by Caddy, automatically. Every subdomain gets TLS without touching a config file.

SPA-aware

Detects React, Vue and Vite builds automatically. SPAs get fallback routing to index.html with no config needed.

Localhost mode

No domain? Each site gets its own port — 9000, 9001, 9002. Great for local dev, intranet hosting, and offline demos.

Subdomain routing

Each folder in apps/ becomes a subdomain. Routing is rebuilt live on every deploy via Caddy's config API.

Open source

MIT licensed, written in Go, built on Caddy. No telemetry, no accounts, no lock-in. Fork it freely.

Up in three
commands.

Choose your preferred installation method.

# detects your OS & arch, asks before writing anything
curl -fsSL https://install.zipgo.xyz/linux.sh | sh

→ creates apps/ and apps/root.txt in the current directory

# replace linux-amd64 with your platform
curl -Lo zipgo \
  https://github.com/GabrielVidal1/zipgo/releases/latest/download/zipgo-linux-amd64

chmod +x zipgo
mkdir -p apps && touch apps/root.txt

→ platforms: linux-amd64 linux-arm64 darwin-amd64 darwin-arm64 windows-amd64.exe

# requires Go 1.21+
git clone https://github.com/GabrielVidal1/zipgo
cd zipgo && make build

# run locally (no domain needed)
ZIPGO_PASS=dev make run-local

→ backoffice at http://localhost:8999