Stuurman

Stopping, backing up, upgrading

You can always stop the Ship. This page covers the stop, the checks, backups and upgrades.

All stop

All stop halts the Ship and removes every crew container. Only the Captain can do it, in any of these ways:

  • the stop button in the top bar of the Bridge, one press;
  • /allstop, or /estop, in Slack;
  • make allstop on the host, for a Ship run from source.

All stop needs neither the Claude token, nor Slack, nor the database. To resume, use Underway on the Bridge, which asks first, or /underway in Slack.

If the Bridge and Slack cannot be reached

Run this Docker command in the Ship's folder, with your Ship's ID in place of <id>. stuurman list shows the ID and the folder. The stuurman command itself has no all stop, and stuurman stop only stops the Ship's containers.

docker compose -p stuurman-<id> run --rm --no-deps -T helm allstop

Resume the same way, with underway in place of allstop. If nothing else can run, for example because .env is lost, create the file data/helm/HALT with touch. A running Helm notices it within seconds. Remove the file to resume.

The Claude pause

When Claude's usage limit is reached, or Claude cannot be reached, the crew waits by itself. The Overview says "Claude: paused until …", and a hail is refused with the reason. The Ship stays underway; this is not an all stop. Resume now tries at once.

Checking on the Ship

  • stuurman status shows the Ship's state.
  • stuurman logs -f follows the Helm's log.
  • stuurman doctor checks the data folder, free space, the HALT flag, Docker, the crew network and the gateways' ports.
  • When the Ship is not the default one, add --ship <ship>.

The Bridge has the rest. The Overview shows the Ship's state, and the ship's log shows every action, including every host a crew member reached.

If you lose your passkey

make reset-passkey removes the Captain's passkey and prints a new setup code. For a Ship from a release, run bridge reset-passkey in the Helm image, by hand in the Ship's folder, with the same docker compose prefix as above.

Backing up

Back up the Ship's .env file and its whole data folder, with the Helm stopped. The database is a file with a write-ahead log beside it, and a copy taken while the Helm writes may not open. Without the key in .env, the Ship's secrets cannot be read.

For a Ship installed by stuurman install, the folder is ~/stuurman/<id>.

Upgrading

Back up first. Then, from a release:

stuurman upgrade

It reads the latest version, downloads it, checks it against its SHA-256 and replaces itself. The new command then upgrades the Ship and starts it again.

  • A restart ends a turn that is running, so the upgrade refuses while one runs. Run it again when the turn has ended, or use stuurman upgrade --now to end it.
  • With several Ships, stuurman upgrade --ship <ship> upgrades one and --all upgrades every Ship on the list.
  • If an upgrade was interrupted, stuurman status says "Upgrade: not finished". Run stuurman upgrade again to finish it.
  • From source: git pull and make local.

The changelog says what each release changes.

Running for years

The Ship's database is one SQLite file. The ship's log is by far its largest table, and the Helm prunes and archives it on a schedule you set on the Settings page. The Overview and stuurman doctor show what the Ship holds. Watch the database and its archive against your disk; the free-space check stops new turns before the disk is full.

Early preview, v0.3.0. Install it at your own risk. There is no support.