Land on any host
Land installs Dock the same way on a cloud VM or a rack. It does not create the VM for you.
buraaq land user@HOST --cloud hetzner
buraaq ship HOST
--cloud is aws, azure, gcp, hetzner, or bare. It only changes the firewall reminder. Land writes target/land/land.sh, env.example, and a systemd unit (with EnvironmentFile for secrets). It installs libpq5 when missing. Dock copies ~/.buraaq/dock/env into every launched ship. It can SSH-install Dock when you pass user@HOST.
On a host
A landed Keel ship is a native process: HTTP 8080 and TLS 8443. Postgres stays on the host environment (BURAAQ_DATABASE_URL). Keel reconnects if the pooler drops idle. Ship the binary; leave the rest of the box alone.
A Windows .bur will not run on Linux. Pack on the host OS, or emit IR (buraaq build --release --emit-ir --target linux) and link with clang on the host. buraaq ship HOST --bundle FILE.bur pushes a ship you already packed.
Local equivalent
buraaq up
Pack + local Dock + run, no SSH.
Firewall reminder
Open what the app needs (8080 / 8443) and only expose 7422 if you intend remote buraaq ship. Prefer SSH tunnel + loopback dock on public machines.
Postgres and certs
Land does not provision a database or an ACME certificate. Put BURAAQ_DATABASE_URL on the host. Put cert.pem / key.pem on the host or pack them with the app. Managed Postgres (including Neon with sslmode=require) is a URL, not a framework.
Same ISA
Compile the ship on an OS that matches the host. Cross-shipping Windows → Linux is not a feature of this toolchain.
Test only hosts you are authorized to use. Security notes.
