Sign inSign up

phirumseng/knetrahub-app

By phirumseng

โ€ขUpdated 2 days ago

Self-hosted infrastructure operations โ€” one login, one theme, one audit trail.

Image
Networking
Databases & storage
Monitoring & observability
0

4.3K

phirumseng/knetrahub-app repository overview

โ KNetraHub

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โ 


โ What's inside

AppWhat 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.
๐Ÿ“ก MonitoringLibreNMS-equivalent network & server monitoring โ€” unified device model, SNMP/ICMP discovery and polling, durable job queues, structured alerting, SNMP trap & syslog receivers.
โœ… WorkClickUp-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 ManagementphpIPAM-style IPAM โ€” sections/subnets (IPv4 + IPv6), address grids, VLANs/VRFs, racks with visual elevations, circuits, NAT, request/approval workflow, discovery.
๐Ÿ—„๏ธ Database ManagerCloudBeaver-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).


โ Supported tags

  • latest โ€” most recent release
  • x.y.z (e.g. 0.1.11) โ€” immutable release versions, recommended for production

Companion image: phirumseng/knetrahub-agentโ  โ€” a lightweight per-node metrics collector deployed alongside this image.


โ Quick start (Docker Swarm)

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โ .


โ Key configuration

VariableDefaultPurpose
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_REPLICAS1Set to the service's replica count so database pool ceilings are divided per replica.
NUXT_DB_POOL_MAX20Cluster-wide portal connection pool ceiling.
NUXT_LDAP_ENABLED / NUXT_OIDC_ENABLEDfalseOptional LDAP/AD and OIDC SSO sign-in.
NUXT_BACKUP_DIR/app/data/backupsDatabase 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.


โ License

Proprietary โ€” ยฉ Seng Phirum. All rights reserved.

Tag summary

Content type

Image

Digest

sha256:7e3464880โ€ฆ

Size

82.1 MB

Last updated

2 days ago

docker pull phirumseng/knetrahub-app