Coldharbor

Documentation

Install an agent, write a policy, run a restore. In that order.

Agent install

bash
curl -sSL https://get.il-mirror-01.speedpilot.net | sudo sh -s -- \
  --token $CH_ENROL_TOKEN --site hq-dc1

# verify
coldharbor status --verbose

Network

The agent makes outbound connections only. Nothing listens.

DirectionDestinationPortPurpose
outboundvault-*.il-mirror-01.speedpilot.net443/tcpdata
outboundapi.il-mirror-01.speedpilot.net443/tcpcontrol
outboundntp.il-mirror-01.speedpilot.net123/udptime
The air-gapped copy is pulled by a system that has no inbound path from your network and no credentials stored online. That is the entire point of it, and it is why the air-gapped copy lags the primary by up to six hours.

Policies

policy.json
{
  "name": "file-servers",
  "selector": {"tag": "role=fileserver"},
  "schedule": {"incremental": "*/4 * * * *",
               "synthetic_full": "weekly"},
  "retention": {"daily": 30, "weekly": 12,
                "monthly": 12, "annual": 7},
  "immutability": "compliance",
  "drill": {"cadence": "weekly",
            "checks": [{"tcp": 445}, {"script": "verify.ps1"}]}
}

Retention

Grandfather-father-son by default. Compliance-mode retention cannot be shortened, so the console requires you to confirm the storage cost over the full term before applying it.

Runbooks

A runbook orders workloads, remaps addresses and runs hooks. It is exercised on every drill, which is the only reason to trust it.

File restore

bash
coldharbor find 'quarterly-report*.xlsx' --before 2026-03-01
coldharbor restore --point rp_8f21c0 \
  --path '/srv/finance/quarterly-report-q4.xlsx' \
  --to /tmp/restore

Instant boot

Presents a recovery point as an NFS or iSCSI datastore and boots the VM from it. Disks stream back in the background; you can cut over whenever you like, including never.