This repo targets the 2.0.2 runtime built from:
backend/app — FastAPI application with flat service architecturefrontend/ — static operator shell built into frontend/disttrishul-smitrishul-snmp3.12 or newer for native backend work20 or newer for frontend buildsNet-SNMP CLI tools are not required. The 2.0.2 runtime uses an in-process
SNMP stack.
frontend/dist after frontend changes.Closest path to the shipped runtime:
./install-trishul-snmp-suite.sh up-local
Useful companion commands:
./install-trishul-snmp-suite.sh build-local
./install-trishul-snmp-suite.sh restart-local
./install-trishul-snmp-suite.sh logs
./install-trishul-snmp-suite.sh status
./install-trishul-snmp-suite.sh down
Use this path for:
From the repo root:
python3 -m venv .venv
source .venv/bin/activate
pip install -r backend/requirements-dev.txt
cd frontend && npm ci && npm run build && cd ..
uvicorn app.main:app --app-dir backend --reload --host 0.0.0.0 --port 8000
Then open:
http://localhost:8000http://localhost:8000/docsNotes:
backend/data/ unless you set TRISHUL_DATA_DIRfrontend/dist, not raw frontend source filesfrontend/dist is missing, the backend shows a placeholder pageAfter frontend edits, rebuild:
cd frontend
npm ci
npm run build
frontend/ is a static shell build with no dev server.
From the repo root:
.venv/bin/python -m pytest backend/ -q
Current test layout:
backend/tests/unit/ — unit tests for app modules, scripts, and servicesbackend/tests/contract/ — API and WebSocket contract coveragebackend/tests/integration/ — lifespan, schema, and migration workflowsbackend/tests/live/ — live UDP runtime tests gated by TRISHUL_ENABLE_LIVE_SNMP_RUNTIME=1Expected result: backend tests pass; the live UDP tests are skipped unless
TRISHUL_ENABLE_LIVE_SNMP_RUNTIME=1 is set.
To run live tests:
TRISHUL_ENABLE_LIVE_SNMP_RUNTIME=1 .venv/bin/python -m pytest backend/tests/live -v
For release-facing backend changes, also run:
.venv/bin/python scripts/check_backend_coverage.py
docker compose up -d exists as a convenience path, but the canonical operator
and release workflow is install-trishul-snmp-suite.sh.