Corbie

Where it runs

One computer

The controller, a runner and the client run on one computer, with a directory as the store.

Set up

corbie init --ceiling all  Next: corbie startcorbie start &corbie check
--ceiling allthe most any job on this computer may be allowed; without it, nothing ~/.config/corbiethe config that init writes: the private keys and, by default, the store --store <address>another directory, or an S3 bucket, as the store --config <dir>names another config directory, as CORBIE_CONFIG does, for every command

The config directory is ~/.config/corbie on Linux, ~/Library/Application Support/corbie on macOS and %AppData%\corbie on Windows. Run init again with another --ceiling to change it. A real run submits a run to this setup.

Keep it running

corbie start must stay running, in a terminal, a container or a service. This is the systemd unit.

  # /etc/systemd/system/corbie.service
  [Unit]
  Description=Corbie
  After=network-online.target
  Wants=network-online.target
  [Service]
  User=corbie
  Environment=CORBIE_CONFIG=/var/lib/corbie/config
  ExecStart=/usr/local/bin/corbie start
  Restart=always
  [Install]
  WantedBy=multi-user.target
  systemctl enable --now corbie
  journalctl -u corbie          what the controller and the runner print

The user in User= must own the directory that CORBIE_CONFIG names.

the controller restartsit continues from the store, with no state kept in memory the runner is stoppedthe job of a running script fails with an error the runner is killedthe job of a running script fails with a timeout

A failed job is run again only if it sets restart:.

Do not start the process when a file in the store changes, as a systemd path unit does. Messages stay there while work is in progress, so it starts again and again.

A gateway is kept running the same way (The gateway).

Programs

corbie start controller runner ui starts the program corbie-ui beside the controller and the runner, and the same for any corbie-<name> on PATH. The words after a name are its own, up to the next name: corbie start controller runner ui --listen 127.0.0.1:8383. When a program stops, everything stops. The systemd unit's ExecStart may name programs too.

corbie ui --help prints a program's help. A program keeps Corbie's command line: it takes --config and --store, a mistake in how it was written ends with status 2, and a failure with 1.

Back up

The config directory holds the private keys and, by default, the store: copy it while no Corbie process is running, or copy a filesystem snapshot. Copy a directory named with --store as well. After a restore, jobs that ran since the copy run again, and a runner or client removed since the copy is trusted again.

Next: Served directory adds a second computer.