Skip to main content

Self-hosting

A ZeqVM node is a single Node process + Postgres. Fork it, seat your genesis, and your node ticks at the 1.287 Hz system clock with its own entangled state, its own vault, its own Ed25519 identity.

Repo hulyasmath/zeq-framework Stack Node 22+ · Postgres 16 Precision ≤0.1%

The two bootstrap pointers (and nothing else)

There are exactly two values that live outside the ZSC vault, because they unlock it. They belong in your shell rc, OS keychain, or a Docker secret — never in a repo-tracked file. The framework does not use .env files.

PointerWhy it can't live in the vault
ZEQ_FIELD_KEY (64-hex)The master key that encrypts every vault row — the vault can't decrypt itself.
DATABASE_URLWhere the vault's table lives.

Every other secret — session keys, provider keys, peer rosters — is sealed into zsc_secrets (AES-256-GCM at rest, audit-chained reads) via POST /api/zsc/set or infra/zsc-seal.mjs, and hydrated into the process at boot by the launcher.

Launch

git clone https://github.com/hulyasmath/zeq-framework
cd zeq-framework && pnpm install

# converge the schema (idempotent — no migration journal, schema is source)
pnpm --filter @workspace/db push

# launch — the launcher decrypts the vault and spawns the bundle
ZEQ_FIELD_KEY=<64-hex> DATABASE_URL=postgres://... \
node infra/zeq-dev-launch.mjs

To pre-pin your fork's public URL (otherwise it auto-detects on the first request):

DATABASE_URL=postgres://... node infra/setup-zeq.mjs https://your-fork.example

Join the mesh

Seal a verifier roster into your vault and your node cross-attests with its peers — same registry version means provably the same physics:

ZSC_VALUE="https://zeqstate.com,https://zeqond.com" \
node infra/zsc-seal.mjs ZEQ_VERIFIER_PEERS --purpose verifier_mesh

Check it: GET /api/mesh shows your node and every peer, with live status and registry match.

Verify your node

curl -s https://your-fork.example/api/health # git SHA + status
curl -s https://your-fork.example/api/zeq/conformance # bit-identical physics
zeq chain verify # offline chain verification

The full operator runbook — genesis seating, backup drills, key rotation — lives at Operate → Self-hosting and Operate → ZSC bootstrap.