ShipwickProduction deployments, without Kubernetes.
Shipwick runs your Docker applications on your own server. Health checks, zero-downtime deploys, rollbacks, resource limits and HTTPS, from one small config file.
Shipwick runs your Docker applications on your own server. Health checks, zero-downtime deploys, rollbacks, resource limits and HTTPS, from one small config file.
Describe the application. Shipwick pulls the image, starts the replicas, waits until each one is healthy, moves traffic over and retires the old version. If the new version does not come up, the one that works keeps serving.
# deploy.yaml
name: my-api
image: ghcr.io/company/my-api:1.4.2
port: 8080
domain: api.example.com
replicas: 2
health:
path: /health
resources:
cpu: 0.5
memory: 256mb$ shipwick deploy
Deploying my-api...
✓ Validated deploy.yaml
✓ Pulled image ghcr.io/company/my-api:1.4.2
✓ Started 1 container
✓ Replica 1 passed health checks
✓ Replica 1/2 is serving 1.4.2; its 1.4.1 predecessor is retired
✓ Replica 2 passed health checks
✓ Replica 2/2 is serving 1.4.2; its 1.4.1 predecessor is retired
✓ Routed https://api.example.com to 2 replicas
✓ Deployment successfulReplicas are replaced one at a time, each only after its successor passed its health checks. At most one container above the desired count, so it fits on a small server.
A rollout that fails half-way is undone on its own. Any earlier successful deployment can be brought back with shipwick rollback, with the configuration it had.
Crashed and unhealthy replicas are restarted with backoff, then reported as CRASH_LOOP. A container that disappears is recreated within about a second.
Caddy sits in front. Every application's domain gets a certificate and is load-balanced across its healthy replicas. There is no proxy configuration to write.
CPU and memory limits per replica, and current usage against them in shipwick status and the dashboard.
shipwick for terminals and CI pipelines, a REST API with one token, and a web dashboard with deployments, live logs and metrics.
Kubernetes solves scheduling across fleets of machines. If you have one server, or three, you inherit all of its concepts and use almost none of its power. Shipwick is for developers and small teams running 1–20 applications on a VPS, who want Docker in production without hand-rolling deploy scripts, restart logic, health checks and reverse-proxy configuration.
| Kubernetes | Shipwick | |
|---|---|---|
| Unit of thought | Pod, Deployment, Service, Ingress, … | Application |
| To run it | A cluster | One process |
| State | etcd | A SQLite file |
| Configuration for one application | Several manifests | About 10 lines of YAML |
| Multi-node scheduling | Yes | No, by design |
Shipwick is not a smaller Kubernetes. It does not do multi-node scheduling, service meshes or custom resources. If you need those, you need Kubernetes.
On a Linux server with Docker, as root:
curl -fsSL https://get.shipwick.com | shThis sets up the agent, Caddy and the dashboard, and prints the API token once. On your laptop or in CI, install only the CLI:
curl -fsSL https://get.shipwick.com | sh -s -- --cliEverything the installer downloads comes from one release and is verified against its checksums. The agent holds the Docker socket, so its token is as valuable as root SSH access to the server: read Security before you put it on the internet.