docs(installer): add the operator install guide (Phase 0.4) #87
Reference in New Issue
Block a user
No description provided.
Delete Branch "docs/installer-phase-0.4"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What & why
Closes the last Phase 0 item of the installer plan:
docs/installer/INSTALL.md, the operator-facing guide.It is written before the installer binary on purpose. Everything it installs is already released (0.1–0.3: the overlay tarball, the sidecar with
--print-config, and the bundle manifest), so the guide is not speculation about a tool that might exist — it is the specification of what the run asks, where it writes, what it prints, and what the operator does next. Phases 1–4 implement it.It is useful today. Appendix A is the same deployment done by hand — bundle fetch, tarball verify + overlay copy, the optional patch tier,
--print-configprovisioning, and a systemd unit /sc createservice. That appendix doubles as Phase 1's acceptance test: walking it end to end on a real shard is what proves the automated path has nothing left to discover.Contents: what gets installed and what it deliberately does not do · prerequisites · download + checksum verification (the artifacts are unsigned, so this is the trust anchor) · the run, its prompts and its flag surface · where everything lands on both OSes · the opt-in patch tier and exactly what skipping it costs · the token handoff mapped onto the Admin → Shard fields · how to verify the bridge actually works rather than merely installed ·
doctor/update/uninstall· a troubleshooting table · appendices forsidecar.tomland theBridge.cfgsettings most shards want to review.Four things writing it settled (now recorded in
PLAN.md)runicgateway doctorsketch implied a name onPATH; nothing places one there. Day-two commands run from the downloaded binary.--servuo,--patches/--no-patches,--host,--site-url,--yesjoin the--verify/--bundle/--purgethe plan already named, so every prompt has a non-interactive equivalent and an unattended install is expressible.Config/Bridge.cfgis reported, not overwritten — one deliberate deviation fromdeploy.ps1. Its overwrite-on-hash-differs rule is right for a developer redeploying their own tree and wrong for an operator: anupdatewould silently revertLinkUrl,PublicConnectAddress, sweep intervals — the shard's whole bridge configuration.install.json's recorded hashes are what make "the operator edited this" distinguishable from "the overlay moved on". Every.csfile andScripts.csprojstill overwrite unconditionally.[web] binddefaults to loopback, which only works when the site runs on the shard host. Widen it, firewall it to the website's address, and front it with TLS or a VPN off a trusted network — the token is always required but travels as a plain bearer over HTTP.[shard] bindstays on loopback, because that socket carries inbound commands into the game.Also adds the missing
installer/section to the docs index (it was never added whenPLAN.mdlanded), and refreshes two stale examples inPLAN.md— thedoctorsample's overlay file count (30 → 24, the real count) and sidecar version (0.3.0 → 1.1.0).How it was tested
Documentation only — no code. Every value in the guide was checked against the source rather than written from memory:
--print-configJSON keys,--versionoutput and theUOLINK_*environment overrides againstlink/sidecar/src/{cli,config,main}.rs; the bind/db defaults and the config-relative[store].pathanchoring againstconfig.rs./health's response shape, and that it is the only unauthenticated route, againstweb.rs.Bridge.cfg+Scripts.csproj+ 22 Bridge scripts), the patch/companion-file table, and the boot +[bridge statusconsole output againstservuo-plugins/overlay/andpatches/README.md.website/client/src/routes/admin/views/ShardAdmin.jsx.SHA256SUMSpresence and download URLs against the livev1.1.0/v0.1.1releases andbundles/current.json.Appendix A's commands have not been executed end to end on a clean host — that live walk is the Phase 1 acceptance test the appendix is written to be.
Checklist
AI-assisted contributions (required)
Claude Code (Opus 5). I have reviewed and understand every change, and take responsibility for it. AI-authored commits are marked with aCo-Authored-By/Assisted-Bytrailer.License