servers.md: the eighth machine, and the port that is not 9000
two facts that each cost time today and neither was written down. macbruno was missing entirely — 100.64.0.22, login brunoalcadapadezmonteirodaconceicao, ~/officerdev/platform, pm2 under Homebrew. nothing on the fleet knew it existed. and THE PORT IS NOT ALWAYS 9000. macbookpro and production-pertento-bridge run on 9010. a health check against 9000 on production hit one of Pertento's own apps, which answered 403, and that was read as officer failing after a deploy. while there: production runs eight processes that are NOT officer — Dashboard, Tracking, Uptime and five Crons. they are production-critical and belong to Pertento. anything sweeping pm2 list must filter to officer and officer-*. added a section on pm2 not being on the PATH of a non-interactive shell, because that read as "pm2 is not installed" three times in one day and twice sent someone diagnosing a healthy machine. zsh reads ~/.zshenv for non-interactive shells and neither .zshrc nor .zprofile, so an nvm or Homebrew install is invisible to an orchestrator. fixed at the source on the two hosts it bit; the section says how to check rather than assume. every row verified by reading the machine rather than recalling it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Officer-Session: 656f5c85-e49a-4f1f-b9f3-042a04b4d043
This commit is contained in:
+39
-10
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user