All apps · 0 apps
genieacs
Docker app from geiserx's Repository
Overview
Includes 4 services managed by supervisord: CWMP (device communication), NBI (REST API), FS (file server), and UI (web dashboard).
Requires MongoDB. Set GENIEACS_MONGODB_CONNECTION_URL to your MongoDB instance.
More info: https://github.com/GeiserX/genieacs-container
Readme
View on GitHub
genieacs-container is a Docker image and a Helm chart for GenieACS, the open-source TR-069 ACS that manages routers, ONTs and other CPE devices. GenieACS ships no container of its own; this image runs its four services in one container, for amd64 and arm64, with MongoDB beside it on Docker Compose or on Kubernetes. It packages GenieACS 1.2.16 and does not change it.
Features
- One command gives you a working ACS: the CWMP, NBI, file server and web UI services in one image, MongoDB beside it.
- Current upstream GenieACS (1.2.16), built from source for amd64 and arm64; the tag is the upstream version plus a build number,
1.2.16.6. - A simulated CPE one profile away (
--profile testing), so you can try the console before any hardware informs. - A Helm chart on Artifact Hub: a bundled MongoDB for evaluation, or your own MongoDB through a Kubernetes Secret for production.
- Ingress or Gateway API HTTPRoute for the console, liveness and readiness probes, an optional PodDisruptionBudget.
- Logs rotated for you: each service writes its own file under
/var/log/genieacs, kept 30 days, compressed. - The GenieACS processes run as an unprivileged user; root is used only to start cron.
- An MCP server (
--profile mcp) that lets an AI assistant work your devices through the NBI.
Quick start
# Docker Compose: GenieACS and MongoDB on one host
curl -fsSLO https://raw.githubusercontent.com/GeiserX/genieacs-container/main/docker-compose.yml
echo "GENIEACS_UI_JWT_SECRET=$(openssl rand -hex 32)" >> .env
docker compose up -d
# Kubernetes: the same image through the Helm chart
helm repo add genieacs https://geiserx.github.io/genieacs-container
helm install genieacs genieacs/genieacs --namespace genieacs --create-namespace \
--set env.GENIEACS_UI_JWT_SECRET=$(openssl rand -hex 32)
Open http://localhost:3000 (on Kubernetes, kubectl -n genieacs port-forward svc/genieacs-http 3000:3000 first): the first visit runs a setup wizard that creates the admin / admin login, and your devices inform to http://<host>:7547/. Neither the compose file nor the chart has a default GENIEACS_UI_JWT_SECRET, and both refuse to start without one; the echo and --set lines above make a random one. On Kubernetes you can keep it in a Secret instead, with uiJwtSecret.existingSecret. docker run, an external MongoDB, Helmfile and the chart values are in Getting started.
Documentation
The documentation lives at geiserx.github.io/genieacs-container, which is also the Helm chart repository URL.
- Getting started: Docker Compose,
docker run, Helm with a bundled, external or Secret-sourced MongoDB, Helmfile - Your first device: the ACS URL on a CPE, the simulator, what a device looks like once it informs
- Configuration: ports, volumes, environment variables, chart values, security
- Usage: the four services, the simulator and MCP profiles, extension scripts, logs
- How it works: what is in the image, what the chart creates
- Troubleshooting: the console does not open, a device never appears, MongoDB, reporting a bug
- Development: building the image, how releases are made
- Related projects: the Ansible, MCP, Home Assistant, simulator and ISP tools
Related projects
genieacs-ansible, genieacs-mcp, genieacs-ha, genieacs-services, genieacs-sim-container, and n8n-nodes-genieacs (archived).
License
GPL-3.0-or-later for this repository (the Dockerfile, the chart and the scripts); the GenieACS it packages is AGPL-3.0.
Requirements
Categories
Download Statistics
Total Downloads Over Time
Related apps
Explore more like this
Explore allDetails
drumsergio/genieacs:latestRuntime arguments
- Web UI
http://[IP]:[PORT:3000]/- Network
bridge- Privileged
- false
Template configuration
GenieACS web dashboard port
- Target
- 3000
- Default
- 3000
TR-069 CWMP port for CPE device communication
- Target
- 7547
- Default
- 7547
Northbound Interface (REST API) port
- Target
- 7557
- Default
- 7557
File server port for firmware and config uploads
- Target
- 7567
- Default
- 7567
Custom extension scripts directory
- Target
- /opt/genieacs/ext
- Default
- /mnt/user/appdata/genieacs/ext
Log files (rotated daily, 30-day retention)
- Target
- /var/log/genieacs
- Default
- /mnt/user/appdata/genieacs/log
MongoDB connection string (e.g. mongodb://host:27017)
- Target
- GENIEACS_MONGODB_CONNECTION_URL
- Default
- mongodb://mongo:27017
JWT secret for web UI authentication. Change in production!
- Target
- GENIEACS_UI_JWT_SECRET
- Default
- changeme