Self-hosted infrastructure operations โ one login, one theme, one audit trail.
4.3K
Self-hosted infrastructure operations โ one login, one theme, one audit trail.
KNetraHub is a single-image portal that puts a full suite of operations tools behind one sign-in: a Docker Swarm console, full-stack monitoring, work/project management, privileged access management (PAM), IP address management, and a database workspace. Every app is gated by its own roles, backed by its own isolated database, and can be enabled or disabled per deployment.
๐ Documentation: https://sengphirum.github.io/KNetraHub/documentationโ
| App | What it does |
|---|---|
| ๐ณ Docker (Dock) | Live Docker Swarm console โ nodes, services, stacks, tasks, containers, networks, volumes, secrets, registries. Git-versioned stack deploys with one-click rollback, rolling image updates, and alerting. |
| ๐ก Monitoring | LibreNMS-equivalent network & server monitoring โ unified device model, SNMP/ICMP discovery and polling, durable job queues, structured alerting, SNMP trap & syslog receivers. |
| โ Work | ClickUp-equivalent project management โ spaces, folders, lists, tasks with subtasks/dependencies/custom fields, List/Board/Table views, docs, comments, time tracking. |
| ๐ Privileged Access (PAM) | Credential vault with envelope encryption and key rotation, safes, account onboarding, automated change/verify/reconcile, approvals, brokered recorded sessions, JIT and break-glass access. |
| ๐ IP Management | phpIPAM-style IPAM โ sections/subnets (IPv4 + IPv6), address grids, VLANs/VRFs, racks with visual elevations, circuits, NAT, request/approval workflow, discovery. |
| ๐๏ธ Database Manager | CloudBeaver-equivalent DB workspace โ governed connections with encrypted credentials, SQL editor with server-enforced limits, metadata navigator, result export, read-only environment policies. |
Platform: local accounts, LDAP/AD, and OIDC SSO ยท per-app RBAC tiers ยท AES-256-GCM encryption at rest for every stored secret ยท unified notifications and tamper-aware audit log ยท horizontal scaling with zero-downtime rolling updates (no Redis or broker needed).
latest โ most recent releasex.y.z (e.g. 0.1.11) โ immutable release versions, recommended for productionCompanion image: phirumseng/knetrahub-agentโ
โ a lightweight per-node metrics collector deployed alongside this image.
KNetraHub manages a Docker Swarm, so it deploys as a swarm stack on a manager node
with the Docker socket mounted read-only. Save as knetrahub.yml:
services:
app:
image: phirumseng/knetrahub-app:latest
ports:
- "3000:3000"
environment:
NUXT_JWT_SECRET: "change-me-to-a-long-random-string"
NUXT_AGENT_TOKEN: "change-me-to-a-long-random-string"
NUXT_DB_HOST: "timescaledb"
NUXT_DB_PORT: "5432"
NUXT_DB_NAME: "knetrahub"
NUXT_DB_USER: "knetrahub"
NUXT_DB_PASSWORD: "change-me"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- app-backups:/app/data/backups
deploy:
replicas: 1
placement:
constraints:
- node.role == manager
# One collector task per node โ how the app sees usage of every node
agent:
image: phirumseng/knetrahub-agent:latest
environment:
KNETRAHUB_AGENT_URL: "http://knetrahub_app:3000/api/agent/report"
KNETRAHUB_AGENT_TOKEN: "change-me-to-a-long-random-string" # = NUXT_AGENT_TOKEN
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
deploy:
mode: global
timescaledb:
image: timescale/timescaledb:2.28.2-pg17
environment:
POSTGRES_DB: knetrahub
POSTGRES_USER: knetrahub
POSTGRES_PASSWORD: "change-me"
volumes:
- timescale-data:/var/lib/postgresql/data
volumes:
timescale-data:
app-backups:
docker stack deploy -c knetrahub.yml knetrahub
Then open http://<your-host>:3000, sign in, and enable the apps you want under
Admin โ Modules. The full production stack file โ multi-replica sizing, Docker
secrets, shared storage, and PostgreSQL tuning โ is documented in the
deployment guideโ .
| Variable | Default | Purpose |
|---|---|---|
NUXT_JWT_SECRET | โ (required) | Session signing and at-rest encryption key. Use a long random string. |
NUXT_DB_HOST / NUXT_DB_PORT / NUXT_DB_NAME / NUXT_DB_USER / NUXT_DB_PASSWORD | โ (required) | PostgreSQL + TimescaleDB connection for the portal database. Module databases are created from Admin โ Modules. |
NUXT_AGENT_TOKEN | โ | Shared secret validating reports from the agent service. |
NUXT_APP_REPLICAS | 1 | Set to the service's replica count so database pool ceilings are divided per replica. |
NUXT_DB_POOL_MAX | 20 | Cluster-wide portal connection pool ceiling. |
NUXT_LDAP_ENABLED / NUXT_OIDC_ENABLED | false | Optional LDAP/AD and OIDC SSO sign-in. |
NUXT_BACKUP_DIR | /app/data/backups | Database backup destination (share it across replicas). |
NUXT_REDIS_URL | โ | Optional Redis for the Monitoring and Docker modules' real-time state (job queue, live swarm state, cross-replica fan-out). Without it both fall back to PostgreSQL / per-replica state. |
NUXT_VM_URL | โ (required for metrics) | VictoriaMetrics for both modules' time series, and the only store that holds one. Without it the pollers and agents keep collecting and every graph is empty. |
Every NUXT_DB_* variable also accepts a _FILE sibling (e.g.
NUXT_DB_PASSWORD_FILE=/run/secrets/...) for Docker secrets.
Proprietary โ ยฉ Seng Phirum. All rights reserved.
Content type
Image
Digest
sha256:7e3464880โฆ
Size
82.1 MB
Last updated
2 days ago
docker pull phirumseng/knetrahub-app