This guide is the focused alpha operator path. The root README.md keeps the high-level overview; use this file when you need exact commands for a clean local bootstrap, smoke validation, and teardown.
- Python 3.13+
- Docker Engine 24+ with the Docker socket available to the current user
- Poetry
- PostgreSQL 15+ with the
pgmqextension psql,curl, andjqfor diagnostics
git clone https://github.com/Forebase/NetEngine.git
cd NetEngine
poetry install
poetry run netengine setup local examples/minimal.yaml
poetry run netengine statusUse poetry run netengine setup local examples/minimal.yaml for the guided first-time path: it runs host checks that are safe before Postgres starts, starts compose services, waits for database health, applies migrations, performs spec-aware doctor checks, and stops before netengine up if required checks fail. Use NETENGINE_MOCK=true when you want to exercise orchestration and spec validation without creating Docker, DNS, PKI, or identity resources.
Before cutting an alpha build, run the documented mock bootstrap path with an isolated runtime-state file:
NETENGINE_MOCK=true NETENGINE_STATE_FILE="$(mktemp -d)/netengine_state.json" poetry run netengine up examples/minimal.yamlThe command should print World bootstrapped. and report all phases through Phase 9 as complete without creating Docker, DNS, PKI, or identity resources.
poetry run netengine up examples/minimal.yaml
poetry run netengine up examples/minimal.yaml
poetry run netengine status
poetry run netengine diagnose examples/minimal.yaml
poetry run netengine down --dry-run
poetry run netengine down --yesThe second up proves idempotency.
poetry run netengine up examples/single-org.yaml
poetry run netengine up examples/single-org.yaml
poetry run netengine status
poetry run netengine diagnose examples/single-org.yaml
poetry run netengine down --dry-run
poetry run netengine down --yesThis path validates org identity, DNS delegation, basic AND profile wiring, and registry records.
poetry run netengine up examples/dev-sandbox.yaml
poetry run netengine up examples/dev-sandbox.yaml
poetry run netengine status
poetry run netengine diagnose examples/dev-sandbox.yaml
poetry run netengine down --dry-run
poetry run netengine down --yesThe sandbox is the feature-rich demo and may expose experimental alpha integrations before Paths A and B do.
- Fresh install works.
- Boot completes.
- Re-running
upis idempotent. statusreports the expected world and phases.diagnoseexplains failures without requiring log archaeology.reloadrejects immutable changes.down --dry-runlists project-owned resources.down --yesremoves non-persistent project-owned Docker resources.
| Variable | Default | Use |
|---|---|---|
NETENGINE_DB_URL |
postgresql://netengine:dev_password@localhost:5432/netengine |
Runtime database and pgmq connection. |
SUPABASE_URL + SUPABASE_SERVICE_KEY |
unset | Use Supabase-hosted persistence instead of local Postgres. |
NETENGINE_STATE_FILE |
netengines_state.json |
Runtime-state JSON file path. |
NETENGINE_MOCK |
false |
Skip real Docker/DNS/PKI side effects. |
NETENGINE_ZONE_DIR |
./data/coredns |
CoreDNS zone-file directory. |
docs/operator-guide.mdfor day-2 operations.docs/troubleshooting.mdfor failure recovery.docs/security-model.mdfor secrets and trust boundaries.docs/support-matrix.mdfor alpha feature support.