diff --git a/docs/servers.md b/docs/servers.md index 7e52194b..20f01ed8 100644 --- a/docs/servers.md +++ b/docs/servers.md @@ -21,21 +21,50 @@ ssh br@deadpool-rezio-bridge # not implied ## Officer platforms -Seven, all running. +Eight, all running. **Verified 2026-08-27** — every row below was read off the machine, not recalled. -| Host | Tailnet IP | Login | Checkout | Domain | -| ---------------------------- | ----------- | ----------- | ----------------------------------- | --------------------------------- | -| `officer-dev` | 100.64.0.13 | `pastilhas` | `~/officer-dev/platform` | `platform.officer.dev` | -| `alpha` | 100.64.0.1 | `pastilhas` | `~/officerdev/platform` | `officer.pastilhas.dev` | -| `fofos` | 100.64.0.17 | `pastilhas` | `~/officerdev/platform` | `officer.fofosfluffybastards.com` | -| `macbookpro` | 100.64.0.9 | `pastilhas` | `~/projects/officer-suite/platform` | `macbookpro.pastilhas.dev` | -| `production-pertento-bridge` | 100.64.0.12 | `pastilhas` | `~/officerdev/platform` | `officer.pertento.ai` | -| `edge-pertento-bridge` | 100.64.0.15 | `pastilhas` | `~/officerdev/platform` | `edge.pertento.ai` | -| `deadpool-rezio-bridge` | 100.64.0.21 | **`br`** | `/home/br/officerdev/platform` | `officer.rezio.dev` `[pending]` | +| Host | Tailnet IP | Login | Port | Checkout | Domain | +| ---------------------------- | ----------- | ----------------------------------------- | -------- | ----------------------------------- | --------------------------------- | +| `officer-dev` | 100.64.0.13 | `pastilhas` | 9000 | `~/officer-dev/platform` | `platform.officer.dev` | +| `alpha` | 100.64.0.1 | `pastilhas` | 9000 | `~/officerdev/platform` | `officer.pastilhas.dev` | +| `fofos` | 100.64.0.17 | `pastilhas` | 9000 | `~/officerdev/platform` | `officer.fofosfluffybastards.com` | +| `macbookpro` | 100.64.0.9 | `pastilhas` | **9010** | `~/projects/officer-suite/platform` | `macbookpro.pastilhas.dev` | +| `macbruno` | 100.64.0.22 | **`brunoalcadapadezmonteirodaconceicao`** | 9000 | `~/officerdev/platform` | — (none yet) | +| `production-pertento-bridge` | 100.64.0.12 | `pastilhas` | **9010** | `~/officerdev/platform` | `officer.pertento.ai` | +| `edge-pertento-bridge` | 100.64.0.15 | `pastilhas` | 9000 | `~/officerdev/platform` | `edge.pertento.ai` | +| `deadpool-rezio-bridge` | 100.64.0.21 | **`br`** | 9000 | `/home/br/officerdev/platform` | `officer.rezio.dev` `[pending]` | + +**THE PORT IS NOT ALWAYS 9000.** Two hosts run on 9010 and it is in `OFFICERDEV_PORT` in each checkout's +`.env`. This is not a footnote: on 2026-08-27 a health check against 9000 on `production-pertento-bridge` +hit one of Pertento's own apps, which answered `403`, and that was read as Officer failing after a +deploy. Take the port from the `.env`, never from habit. + +**`production-pertento-bridge` also runs eight processes that are NOT Officer** — `Dashboard`, `Tracking`, +`Uptime` and five `Crons *`. They are production-critical and belong to Pertento. Anything sweeping over +`pm2 list` must filter to `officer` and `officer-*`, and a restart there must name its target. Only `platform.officer.dev` is public (77.42.39.155). The rest resolve to tailnet addresses and are reachable from inside only. +## `pm2` is not on the PATH of a non-interactive shell + +`ssh host 'pm2 jlist'` runs a NON-interactive, NON-login shell. zsh reads `~/.zshenv` for those and reads +neither `~/.zshrc` nor `~/.zprofile` — so a pm2 installed by nvm or Homebrew is invisible to an +orchestrator even though the daemon is running and healthy. + +**This read as "pm2 is not installed" three times on 2026-08-27**, and twice sent someone diagnosing a +machine with nothing wrong with it. `claude` on a fresh install has the same shape. + +Fixed at the source on the two hosts where it bit — `production-pertento-bridge` (nvm) and `macbruno` +(Homebrew at `/opt/homebrew`, which is on no default PATH on Apple Silicon) — by appending a +marker-guarded block to `~/.zshenv`. Everything else already worked. + +If a command comes back empty over SSH, look for the binary on disk before concluding it is absent: + +```bash +ssh host 'ls /opt/homebrew/bin/pm2 /usr/local/bin/pm2 ~/.nvm/versions/node/*/bin/pm2 2>/dev/null' +``` + ## Deliberately skipped A host here is NOT a deploy target. A rollout names it as skipped and moves on — it is not a failure,