Quickstart

Self-host Sitebin in five minutes: two DNS records, one docker run, done. Everything durable lives in a single volume.

Requirements

  • A domain, e.g. sitebin.example.com, with two DNS records pointing at your server:
RecordNameValue
A / AAAAsitebin.example.comyour server IP
A / AAAA*.sitebin.example.comyour server IP
  • A DNS provider API token — the wildcard certificate for *.sitebin.example.com can only be issued via a DNS-01 challenge. Built-in single-token providers: cloudflare, hetzner, duckdns (netcup and porkbun are compiled in too, via SITEBIN_TLS_SNIPPET).
  • Ports 80 + 443 reachable from the internet.

Run it

docker run -d --name sitebin \
  -p 80:80 -p 443:443 -p 443:443/udp \
  -v sitebin-data:/data \
  -e SITEBIN_BASE_DOMAIN=sitebin.example.com \
  -e SITEBIN_DNS_PROVIDER=cloudflare \
  -e SITEBIN_DNS_TOKEN=<your-dns-api-token> \
  -e SITEBIN_ACME_EMAIL=you@example.com \
  --restart unless-stopped \
  sitebin:latest

Open https://sitebin.example.com and drop files. That's the whole setup.

Everything durable — sites, indexes, certificates — lives in the single /data volume. Back up that path and you have backed up everything; the container itself is disposable.

Build the image yourself

git clone https://github.com/ittrail/sitebin.io && cd sitebin
docker build -t sitebin:latest .

The build runs go vet plus the full test suite; multi-arch builds work via docker buildx build --platform linux/amd64,linux/arm64.

Compose variants

  • deploy/docker-compose.example.yml — a fully commented all-in-one example documenting every setting, with a ready-to-run local config (docker compose -f deploy/docker-compose.example.yml up -dhttp://sitebin.localtest.me:8080/).
  • deploy/docker-compose.yml — the multi-service shape (separate Caddy + backend, same image).

Local, or behind an existing proxy

SITEBIN_HTTP_ONLY=true disables TLS entirely — useful for local testing (e.g. SITEBIN_BASE_DOMAIN=sitebin.localtest.me:8085 with -p 8085:80) or when an external proxy terminates TLS for *.yourdomain in front of Sitebin.

No wildcard DNS or certificate? Set SITEBIN_VIEW_ACCESS=path and sites are served as sitebin.example.com/v/<id>/ paths on the main domain — a normal single-domain certificate suffices. Trade-offs in Using Sitebin.