Document catalog host moves and add per-module host-deps installer.
Some checks are pending
offline / test (push) Waiting to run

zapier-docs-master now has CATALOG-HOST.md (relative PDFs / rewrite-docs-host.py)
and HOST-DEPS.md. verae-bootstrap/scripts/host-deps.sh checks and installs
git, Node, native build tools, and nats-server on Debian or Alpine from
host-deps.tsv (every Forgejo module). fetch.sh runs it before clone/npm.
This commit is contained in:
George Lambert 2026-09-11 23:12:25 -04:00
parent 20155de96b
commit 2d51d7a0dd
17 changed files with 629 additions and 9 deletions

View file

@ -7,14 +7,22 @@ Clone every Verae Time × Zapier **module repo** from Forgejo and install Node d
## Host requirements
`scripts/host-deps.sh` **checks** this machine and **installs** anything missing (Debian/Ubuntu `apt`, Alpine `apk`, Node tarball, `nats-server` release). Table: [HOST-DEPS.md](HOST-DEPS.md). Manifest: `host-deps.tsv`.
```bash
bash scripts/host-deps.sh --check --type ns1-all-in-one
bash scripts/host-deps.sh --type ns1-all-in-one # install
```
| Need | Why |
|------|-----|
| Node 20+ (`node`, `npm`) | All HTTP and worker processes |
| Node 20+ (`node`, `npm`); middleware wants **22** | All HTTP and worker processes |
| Git + SSH to Forgejo **port 2223** | `git clone ssh://git@git.georgelambert.org:2223/marchon/<name>.git` |
| `nats-server -js` on **127.0.0.1:4222** | Archive / billing types only — never a public bind |
| `python3` `make` `g++` | Native addon `better-sqlite3` on **zappier-edge** (rebuild on Linux) |
| `nats-server -js` on **127.0.0.1:4222** | Archive / all-in-one types only — never a public bind |
| `curl` | Health probes |
Zapier cloud never talks to NATS. Do not publish `:4222`.
Alpine first line if `bash` is missing: `apk add --no-cache bash git curl`. Zapier cloud never talks to NATS. Do not publish `:4222`.
## Fetch
@ -26,7 +34,7 @@ bash scripts/fetch.sh # every repo
bash scripts/fetch.sh ns1-all-in-one # one server type
```
`scripts/clone.sh` pulls `main`. `scripts/install-deps.sh` runs `npm install` **on the target OS** (then `npm rebuild`). Do not copy `node_modules` from macOS onto Linux — native addons such as `better-sqlite3` will fail with `invalid ELF header`.
`scripts/fetch.sh` runs `host-deps.sh` (OS + Node), then `clone.sh` (`main`), then `install-deps.sh` (`npm install` **on the target OS**, then `npm rebuild`). Do not copy `node_modules` from macOS onto Linux — native addons such as `better-sqlite3` will fail with `invalid ELF header`.
## Server types