Learn 101 — Migrate to apt

Outcome: move an existing git Fleet install to the apt channel with cooperative upgrades.

Updated

Prerequisite: Operator apt install or an existing git install you want to replace.

Check current channel

curl -fsS -H "Authorization: Bearer ${FLEET_BEARER_TOKEN}" \
  http://127.0.0.1:18766/v1/admin/install-channel | jq .

Or:

land-fleet migrate-to-apt --user    # laptop
land-fleet migrate-to-apt --system  # Granite / system unit

Laptop (git_user → apt_user)

  1. Save env: bearer token, remote peers, forge-fleet.env conffile if present.
  2. Install user package (one-time sudo):
curl -fsSL "${FORGE_APT_BASE_URL:-https://packages.forgesdlc.com/fleet/ubuntu}/install.sh" \
  -o /tmp/forge-fleet-install.sh
bash /tmp/forge-fleet-install.sh --user --with-docker   # prompts for sudo once (apt source + packages)
land-fleet setup-user
land-fleet migrate-to-apt --user

Until this one-time root step is done, releases still reach the host automatically: update-fleet.sh --remote-upgrade --publish-apt-cdn falls back to the cooperative git upgrade through the API (see Migrate installations to apt).

  1. Confirm timer: land-fleet timer-status → forge-fleet-apt-upgrade.timer active.
  2. Upgrade from admin Update Fleet or:
curl -fsS -X POST -H "Authorization: Bearer ${FLEET_BEARER_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{"mode":"upgrade","max_wait_sec":45}' \
  http://127.0.0.1:18766/v1/admin/upgrade
land-fleet upgrade --wait

System host (git_system → apt_system)

Follow the runbook in Migrate installations to apt (Granite section). After migration, use POST /v1/admin/upgrade instead of git-self-update for routine bumps.

See also