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.
63 lines
2.8 KiB
Markdown
63 lines
2.8 KiB
Markdown
# Host dependencies (`scripts/host-deps.sh`)
|
|
|
|
Every Forgejo module on `git.georgelambert.org` is listed in `host-deps.tsv`. This script **checks** that the current machine has the OS packages, Node, and (when this host runs JetStream) `nats-server`. Missing pieces are **downloaded and installed** for the OS it is running on.
|
|
|
|
| OS family | Package tool | Node | nats-server |
|
|
|-----------|--------------|------|-------------|
|
|
| Debian / Ubuntu | `apt-get` | official `linux-x64` / `linux-arm64` tarball into `$PREFIX` | GitHub release tarball |
|
|
| Alpine | `apk` | `apk add nodejs` then musl tarball if still too old | `apk add nats-server` or glibc release (last resort) |
|
|
| macOS | Homebrew | already on PATH or brew | brew / skip |
|
|
|
|
`$PREFIX` is `/usr/local` as root, otherwise `~/.local`. Put `$PREFIX/bin` on `PATH`.
|
|
|
|
Do **not** copy `node_modules` from macOS onto Linux (`better-sqlite3` → `invalid ELF header`). Run `npm install` **on the target OS** (`scripts/install-deps.sh`).
|
|
|
|
Zapier cloud never talks to NATS. `nats-server` binds **127.0.0.1:4222** only on `ns1-all-in-one` and `ns1-archive`.
|
|
|
|
## Commands
|
|
|
|
```bash
|
|
git clone ssh://git@git.georgelambert.org:2223/marchon/verae-bootstrap.git
|
|
cd verae-bootstrap
|
|
|
|
# What this box still needs (no changes)
|
|
bash scripts/host-deps.sh --check --type ns1-all-in-one
|
|
|
|
# Install git, curl, Node 22, build tools, nats-server
|
|
bash scripts/host-deps.sh --type ns1-all-in-one
|
|
|
|
# Single module (e.g. a thin Alpine VM that only runs worm)
|
|
bash scripts/host-deps.sh --module verae-archive-worm
|
|
|
|
# Catalog PDF/HTML build tools (pandoc, weasyprint, pypdf)
|
|
bash scripts/host-deps.sh --docs --module zapier-docs-master
|
|
|
|
# Then clone + npm
|
|
export VERAE_SRC=$HOME/verae-src
|
|
bash scripts/fetch.sh ns1-all-in-one
|
|
```
|
|
|
|
`scripts/fetch.sh` runs `host-deps.sh` first so Git/Node exist before clone.
|
|
|
|
## Module → host needs
|
|
|
|
| Module (Forgejo) | Node | npm | native C++ | NATS client | Notes |
|
|
|------------------|------|-----|------------|-------------|--------|
|
|
| zappier-edge | 20 | yes | **better-sqlite3** | yes | Rebuild sqlite on Linux |
|
|
| verae-middleware | **22** | yes | | yes | |
|
|
| verae-zapier-app / verae-activate | 18 | local zapier CLI only | | | Runs on Zapier cloud |
|
|
| archive-worm / tree-node / aggregator / splitter | 20 | yes | | yes | |
|
|
| fleet | 20 | yes | | | `openssh-client` |
|
|
| keep, IAM, session, access-* , identity, jobs-events, billing NATS | 20 | yes | | most | |
|
|
| overview, docs-master, user-docs, decisions, nats-accounts, ops | — | | | | Docs only (`--docs` for catalog build) |
|
|
|
|
Full table: `host-deps.tsv`.
|
|
|
|
## Server types and nats-server
|
|
|
|
| Type | `nats-server` on this host? |
|
|
|------|------------------------------|
|
|
| ns1-all-in-one | yes (`--nats` implied) |
|
|
| ns1-archive | yes |
|
|
| control-plane | no (client to NS1 loopback / private URL) |
|
|
| lan-worker | no (client; lan-134 stays disabled until SSH works) |
|