Run the daemon on ubu (ship-daemon compose service)
Until now nothing was polling for new commits — the deployed `ship` container only ran ship.web, so anything pushed to main sat there until I happened to invoke `ship serve --once` from my mac. That's why 36d0d9d + 2a5f57a stayed undeployed. Adds a `ship-daemon` service to docker-compose.yml that runs `ship serve` on the same host as the web app: - Mounts `/var/run/docker.sock` (build + compose-up of ship-app), `~/.ssh:ro` (git push + ssh roundtrips back to its own host), `~/.claude` (claude credentials — already populated on ubu), `~/.ship/state` (shared with the web app, no rsync needed), `~/.ship/workspaces` (per-project working trees the daemon does git ops in), and `./ship.yaml` (the daemon's project list). - Runs as root so it can talk to the host docker socket without group-membership gymnastics. - Independent restart policy: deploy.sh now uses `docker compose up -d ship` (not the unscoped form), so a ship-self deploy that swaps the web image leaves the daemon untouched. Daemon updates need a manual `docker compose up -d ship-daemon` until self- replacement is solved. Image gains the docker CLI, docker-compose-v2, and rsync. The daemon's project paths (`/workspaces/<name>`) live in the new config/ship.yaml, which deploy.sh scps to ~/ship/ship.yaml on each run. Remote .env now also carries PUBLIC_URL and NOTIFY_API_KEY so the daemon's deploy/notify steps work in- container. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Deploy of ship-self
- Started
- 1 hr ago 2026-05-09 17:52:15
- Finished
- 1 hr ago 2026-05-09 17:59:48
- Duration
- 7m 33s
- claude rc
- 0
Summary
---
status: succeeded
sha: b332e9690ae54f5b244220a1dca294a3ddbfa99b
---
Deployed target commit 8594c18 ("Run the daemon on ubu") after auto-fixing
a Dockerfile bug it introduced.
The image build failed at `apt-get install ... docker-compose-v2` because
the package name `docker-compose-v2` does not exist in Debian trixie's
default apt repos (which is what `python:3.13-slim` is built on):
E: Unable to locate package docker-compose-v2
Fix: drop `docker-compose-v2` from the apt list and install the official
Compose v2 plugin binary into `/usr/local/lib/docker/cli-plugins/` instead.
Pinned to v2.29.7 (linux x86_64) since the image is always built for
linux/amd64. Tests still pass (46/46).
The fix was committed as `ship: auto-fix from claude` (b332e96) and
pushed to main. The deploy then ran cleanly: build → upload → compose up
→ server health check on :31040 → state sync → smoke kick (2 projects
visible at the public URL). Release branch fast-forwarded from 2a5f57a
to b332e96 and pushed.
Log
raw ↗
No log captured for this run.