Skip to content
DOC · DEPLOYMENT PROCEDURE

Up and running with one command.

ShipIt always runs containerized — there's no bare-metal mode. Pick local Docker for a laptop install, or use the VPS script for a remote setup that keeps working when your laptop is closed.

FIG. 1 — PREREQUISITES

Prerequisites

Docker + Compose v2

Install Docker with the Compose v2 plugin (docker compose). Docker Desktop bundles it. On Linux, install docker-compose-plugin alongside docker-ce.

FIG. 2 — LOCAL (DOCKER)

Local (Docker)

The fastest way to try ShipIt on your laptop.

BASH
bash <(curl -fsSL https://raw.githubusercontent.com/nikzlabs/shipit/stable/deployment/local/setup.sh)

This installs ShipIt under ~/.shipit, builds the Docker images, and starts it detached at http://localhost:4123. Sign in to Claude Code or Codex once from the in-app provider flow — credentials live in a persistent Docker volume, so once per provider is enough. Fork installs, custom paths, updates, and stop/uninstall are covered in the deployment README.

FIG. 3 — VPS (ALWAYS-ON)

VPS

ShipIt ships with a one-command provisioning script for Ubuntu hosts. It installs Docker, raises the inotify limits session containers need, and optionally puts ShipIt behind a Cloudflare Tunnel (with optional Zero Trust SSO) and/or exposes it over Tailscale — no open inbound ports required.

NOTE · RECOMMENDED SIZING

8 GB RAM minimum, 16 GB recommended. Each active session runs its own container (agent CLI plus the session's Compose services — usually at least a dev server), so headroom matters once you have a few sessions open at once.

SSH in, then run the provisioner as rootBASH
ssh root@<server-ip>

sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/nikzlabs/shipit/stable/deployment/vps/setup.sh)"

The script asks whether you want Cloudflare, Tailscale, both, or neither, then takes care of everything else: installing Docker, configuring host limits, building the images, installing the self-updater + restarter systemd units, and bringing ShipIt up.

Once it's running, updates happen from inside the UI — Settings → Advanced → Software Updates — or via bash /opt/shipit/deployment/vps/deploy.sh on the host.

See the deployment README for the full guide: sizing recommendations, Cloudflare Zero Trust access policies, wildcard preview DNS over Tailscale, and troubleshooting.

FIG. 4 — CONTRIBUTING

Hacking on ShipIt itself?

If you want to contribute or just understand the architecture, the CONTRIBUTING.md in the repo walks through the dev loop and module layout.