The harbor command
Everything you do to the box day to day goes through one command the installer leaves behind.
On this page
harbor status # what is running
harbor logs worker # follow one service
harbor backup # back up now
harbor restore-test # prove the backup can be read back
harbor break-glass # the keys to print and keep
harbor config # change a setting
harbor start # apply it
harbor upgrade # back up, pull the release you chose, restart
harbor unlock # after a power cut: type the passphrase, mount, start
harbor version # what you are runningUpgrades#
Installs pin to a release tag. harbor config sets HARBOR_IMAGE_TAG to the release you want; harbor upgrade takes a backup, pulls, restarts, and refuses to continue if the backup fails. Migrations apply on start and only run forward, so rolling back is restoring: see When something breaks.
After an update#
A release can change what the model is asked about each document. The suggester says at boot how many documents still answer the older question. Re-reading them is never automatic, because with a hosted model it spends per document:
docker compose … exec suggester node dist/suggester.js rerun --dry-run # how many
docker compose … exec suggester node dist/suggester.js rerun --limit 50 # re-read that manyDocuments whose suggestion you already accepted or rejected are skipped; your judgement is the answer.
The long form#
The harbor command wraps docker compose with the right files. The long form still works:
docker compose --env-file /data/harbor.env -f compose.yml -f compose.prod.yml logs -f api