diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..846a4f5 --- /dev/null +++ b/AUTHORS @@ -0,0 +1 @@ +Scott "R00tPiG Security" Lindsey (rootpig) — owner diff --git a/OWNER.md b/OWNER.md new file mode 100644 index 0000000..e7f075e --- /dev/null +++ b/OWNER.md @@ -0,0 +1,10 @@ +# Repository owner + +**Owner / credited author:** Scott "R00tPiG Security" Lindsey (`rootpig`) + +Forgejo: https://git.georgelambert.org/rootpig + +This repository is owned by **rootpig** for Verae Inc. server maintenance, +deployment scripting, and related operations work. + +Co-contributors may appear in git history; ownership and ops credit belong to rootpig. diff --git a/README.md b/README.md index eeddc0e..3c76421 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # verae-fleet +[![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) + Operator control plane for Verae Time × Zapier **runtime** services: - a **list** of every service and its config file @@ -46,3 +48,25 @@ NS1 overlay (no rewrite of git JSON): `FLEET_FILE=overlays/ns1/fleet.json` `FLEE Install on Docker / Proxmox / metal: https://zapier.georgelambert.org/packages/verae-ops/README.pdf Clone: `ssh://git@git.georgelambert.org:2223/marchon/verae-fleet.git` + +## Install + +```sh +git clone ssh://git@git.georgelambert.org:2223/marchon/verae-fleet.git +cd verae-fleet +``` + +## Usage + +```sh +npm install +npm start +``` + +## Contributing + +Questions: open an issue at https://git.georgelambert.org/marchon/verae-fleet/issues. Pull requests are accepted. + +## License + +UNLICENSED © George Lambert diff --git a/SERVICES.md b/SERVICES.md index b2f9215..3210a41 100644 --- a/SERVICES.md +++ b/SERVICES.md @@ -6,7 +6,7 @@ Per-service files: [`services/`](services/). | Service | Config | min | max | keepFloor | Spawned by fleet | |---------|--------|-----|-----|-----------|------------------| | nats | `services/nats.json` | 1 | 1 | no | no (external monitor) | -| zappier-edge | `services/zappier-edge.json` | 1 | 1 | yes | yes | +| verae-edge-billing | `services/verae-edge-billing.json` | 1 | 1 | yes | yes | | middleware-http | `services/middleware-http.json` | 1 | 1 | yes | yes | | job-poller | `services/job-poller.json` | 1 | 2 | yes | yes | | webhook-deliver | `services/webhook-deliver.json` | 1 | 2 | yes | yes | diff --git a/fleet.json b/fleet.json index eff7bda..c4eba3a 100644 --- a/fleet.json +++ b/fleet.json @@ -14,7 +14,7 @@ }, "services": { "nats": { "min": 1, "max": 1, "keepFloor": false, "enabled": true, "managed": false }, - "zappier-edge": { "min": 1, "max": 1, "keepFloor": true, "enabled": true }, + "verae-edge-billing": { "min": 1, "max": 1, "keepFloor": true, "enabled": true }, "access-authz": { "min": 1, "max": 1, "keepFloor": true, "enabled": true }, "access-web": { "min": 1, "max": 1, "keepFloor": true, "enabled": true }, "access-api": { "min": 1, "max": 1, "keepFloor": true, "enabled": true }, diff --git a/overlays/ns1/fleet.json b/overlays/ns1/fleet.json index 3018a2d..5c0f311 100644 --- a/overlays/ns1/fleet.json +++ b/overlays/ns1/fleet.json @@ -14,7 +14,7 @@ }, "services": { "nats": { "min": 1, "max": 1, "keepFloor": false, "enabled": true, "managed": false }, - "zappier-edge": { "min": 1, "max": 1, "keepFloor": true, "enabled": true }, + "verae-edge-billing": { "min": 1, "max": 1, "keepFloor": true, "enabled": true }, "access-authz": { "min": 1, "max": 1, "keepFloor": true, "enabled": true }, "access-web": { "min": 1, "max": 1, "keepFloor": true, "enabled": true }, "access-api": { "min": 1, "max": 1, "keepFloor": true, "enabled": true }, diff --git a/services/accounting-export.json b/services/accounting-export.json index af1a15e..6a77165 100644 --- a/services/accounting-export.json +++ b/services/accounting-export.json @@ -5,7 +5,7 @@ "package": "zappier-accounting-export", "role": "accounting-export", "managed": true, - "runtime": "HTTP :3013 IIF/CSV → zappier-edge invoices", + "runtime": "HTTP :3013 IIF/CSV → verae-edge-billing invoices", "health": { "type": "http", "path": "/health", "timeoutMs": 2000 }, "ports": { "healthBase": 3013 }, "spawn": { diff --git a/services/unmanaged.json b/services/unmanaged.json index df7e1bf..ba0f3d1 100644 --- a/services/unmanaged.json +++ b/services/unmanaged.json @@ -6,7 +6,7 @@ "id": "zapier-platform-app", "package": "verae-zapier", "runtime": "Zapier cloud", - "notes": "HTTPS only to zappier-edge. Never NATS." + "notes": "HTTPS only to verae-edge-billing. Never NATS." }, { "id": "verae-activate", diff --git a/services/zappier-edge.json b/services/verae-edge-billing.json similarity index 95% rename from services/zappier-edge.json rename to services/verae-edge-billing.json index 2cd1a8b..395e281 100644 --- a/services/zappier-edge.json +++ b/services/verae-edge-billing.json @@ -1,9 +1,9 @@ { - "id": "zappier-edge", + "id": "verae-edge-billing", "title": "Zappier commercial HTTPS edge", "kind": "http", "package": "zappier", - "role": "zappier-edge", + "role": "verae-edge-billing", "managed": true, "runtime": "loopback :3000 (portal, admin, Stripe; public doors are access-*)", "health": { "type": "http", "path": "/health", "timeoutMs": 4000 }, diff --git a/src/supervisor.js b/src/supervisor.js index deae142..1f8dcd3 100644 --- a/src/supervisor.js +++ b/src/supervisor.js @@ -17,7 +17,7 @@ import { sshSpawnWorker, sshKillWorker, sshHttp, sshCheck, sshWriteIntent } from const WORKER = path.join(path.dirname(fileURLToPath(import.meta.url)), 'worker.js'); /** - * Real HTTP apps (zappier-edge, middleware) set `spawn` in services/*.json. + * Real HTTP apps (verae-edge-billing, middleware) set `spawn` in services/*.json. * Everything else is the fleet health worker. */ export function spawnLocal(root, spec, env, healthPort) { diff --git a/test/fleet.test.js b/test/fleet.test.js index aa717eb..15dc625 100644 --- a/test/fleet.test.js +++ b/test/fleet.test.js @@ -52,7 +52,7 @@ describe('verae-fleet', () => { const ids = rows.map((r) => r.id); for (const need of [ 'nats', - 'zappier-edge', + 'verae-edge-billing', 'access-authz', 'access-web', 'access-api', diff --git a/test/rtt.test.js b/test/rtt.test.js index def37cf..8937b17 100644 --- a/test/rtt.test.js +++ b/test/rtt.test.js @@ -33,7 +33,7 @@ describe('machine placement', () => { it('skips machines that do not allow the role', () => { const machines = [ - { id: 'edge', enabled: true, capacity: 8, roles: ['zappier-edge'] }, + { id: 'edge', enabled: true, capacity: 8, roles: ['verae-edge-billing'] }, { id: 'trees', enabled: true, capacity: 8, roles: ['tree-node'] }, ]; const pick = pickMachine(machines, [], 'tree-node', 'tree-node');