verae-bootstrap/HOST-DEPS.md

2.8 KiB

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-sqlite3invalid 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

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)