verae-bootstrap/README.md
Scott "R00tPiG Security" Lindsey (r00tpig) 7280b41152 docs: zappier-edge is now verae-edge-billing
The billing edge repo and ns1 service were renamed on 2026-10-06
(marchon/verae-edge-billing, verae-edge-billing.service, /opt/verae/verae-edge-billing).
Old Forgejo URLs redirect; the old unit name and path remain as aliases/symlinks.
2026-10-06 14:00:02 -04:00

78 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# verae-bootstrap
[![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)
Clone every Verae Time × Zapier **module repo** from Forgejo and install Node dependencies. Each **server type**...
**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 **verae-edge-billing** (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. verae-edge-billing 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.
## Install
```sh
git clone ssh://git@git.georgelambert.org:2223/marchon/verae-bootstrap.git
cd verae-bootstrap
```
## Usage
```sh
# No single entrypoint is declared in this tree.
ls
```
## Contributing
Questions: open an issue at https://git.georgelambert.org/marchon/verae-bootstrap/issues. Pull requests are accepted.
## License
UNLICENSED © George Lambert