Test env NATS cluster cut-over
This commit is contained in:
commit
b1e9dfa39d
25 changed files with 833 additions and 0 deletions
54
README.md
Normal file
54
README.md
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
# 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 |
|
||||
| **nats-cluster** | `types/nats-cluster/` | LXC 511–513 JetStream cluster on `vmbr1` (`10.10.10.21–23`) |
|
||||
|
||||
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.
|
||||
Loading…
Add table
Add a link
Reference in a new issue