Some checks are pending
offline / test (push) Waiting to run
NS1 is the Proxmox host. verae-proxmox creates LXC 510 (verae-px-worker 10.10.10.20 on vmbr1) with a private NATS proxy on 10.10.10.1:4222. verae-uptime GET-watches public doors; verae-backup snapshots SQLite and worm/tree data; verae-deploy does host-deps + checkout + npm ci. Fleet overlays/ns1 are checked in (start.sh no longer rewrites JSON). User systemd + linger for keep and fleet survive reboot.
53 lines
2.8 KiB
Markdown
53 lines
2.8 KiB
Markdown
# verae-bootstrap
|
||
|
||
Clone every Verae Time × Zapier **module repo** from Forgejo and install Node dependencies. Each **server type** has its own directory under `types/` (repos list + README + start notes).
|
||
|
||
**Forgejo:** https://git.georgelambert.org/marchon/verae-bootstrap
|
||
**SSH:** `ssh://git@git.georgelambert.org:2223/marchon/verae-bootstrap.git`
|
||
|
||
## 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`); 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` |
|
||
| `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 |
|
||
|
||
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
|
||
|
||
```bash
|
||
git clone ssh://git@git.georgelambert.org:2223/marchon/verae-bootstrap.git
|
||
cd verae-bootstrap
|
||
export VERAE_SRC=$HOME/verae-src
|
||
bash scripts/fetch.sh # every repo
|
||
bash scripts/fetch.sh ns1-all-in-one # one server type
|
||
```
|
||
|
||
`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
|
||
|
||
| Type | Directory | What that host runs |
|
||
|------|-----------|---------------------|
|
||
| **ns1-all-in-one** | `types/ns1-all-in-one/` | Control plane + archive workers + keep (NS1 / 70.88.205.138) |
|
||
| **control-plane** | `types/control-plane/` | Fleet, edges, IAM, billing HTTP (no worm/tree floor) |
|
||
| **ns1-archive** | `types/ns1-archive/` | NATS + worm ×3 + tree-node ×3 + poller + webhook + aggregator + keep |
|
||
| **lan-worker** | `types/lan-worker/` | Extra SSH worker (tree-node, archive-worm). Keep disabled until SSH works (`lan-134`). |
|
||
| **proxmox-worker** | `types/proxmox-worker/` | LXC 510 on NS1 `vmbr1` (`10.10.10.20`) — extra worm/tree copies |
|
||
|
||
Each type has `repos.txt` (subset of the master list) and `README.md`.
|
||
|
||
## NS1 all-in-one notes
|
||
|
||
`:3000` on 70.88.205.138 is already a public app. zappier-edge on that box binds **127.0.0.1:13000**. Public portal remains **access-web `:3021/portal/`**. Archive workers are owned by **verae-keep**; fleet does not double-spawn them.
|