Dieses Repository stellt ein einfaches Docker-Compose-Setup für DataGerry bereit – eine Open-Source-CMDB (Configuration Management Database) für die Verwaltung von IT-Assets und Infrastruktur.
Das Setup startet drei Container:
| Service | Image | Beschreibung |
|---|---|---|
dg-frontend |
becongmbh/datagerry-frontend |
Nginx-basiertes Web-Frontend |
dg-backend |
becongmbh/datagerry-backend |
DataGerry API / Application Server |
dg-mongodb |
mongo:6.0.25 |
MongoDB als Datenbank |
- Docker Engine (≥ 20.10)
- Docker Compose (opt. Docker Engine installation already includes Docker Compose Plugin)
- Freie Ports: 80, 443 (Frontend) und 4000 (Backend-API)
# Repository klonen
git clone https://github.com/DataGerry/DataGerry-docker.git
# Default-Config erstellen
cp /opt/DataGerry-docker/conf/cmdb_default.conf /opt/DataGerry-docker/conf/cmdb.conf
cp /opt/DataGerry-docker/conf/nginx_default.conf /opt/DataGerry-docker/conf/nginx.conf
# Container starten
cd DataGerry-docker
docker compose up -dAnschließend ist DataGerry erreichbar unter:
- Web-UI: http://localhost
- API: http://localhost:4000
Beim ersten Start wird ein Admin-Benutzer angelegt. Die Zugangsdaten findest du in der offiziellen DataGerry-Dokumentation.
.
├── docker-compose.yml
└── conf/
├── nginx.conf # Nginx-Konfiguration (HTTP)
├── nginx-ssl.conf # Nginx-Konfiguration (HTTPS)
├── cmdb.conf # DataGerry-Backend-Konfiguration
└── ssl/
├── certs/ # SSL-Zertifikate (.crt)
└── private/ # SSL-Schlüssel (.key)
Die Datei cmdb.conf wird ins Backend gemountet (/etc/datagerry/cmdb.conf) und steuert das Verhalten der DataGerry-Instanz (Datenbank-Verbindung, Auth-Provider, Logging etc.).
Hinweis: Der MongoDB-Host wird bereits per Environment-Variable
DATAGERRY_Database_host=dg-mongodbimdocker-compose.ymlgesetzt und überschreibt entsprechende Werte aus dercmdb.conf.
Steuert Routing, Proxy-Pass zum Backend und TLS-Konfiguration.
Standardmäßig läuft DataGerry über HTTP. Um HTTPS zu aktivieren:
-
Zertifikate ablegen:
cp dein-zertifikat.pem conf/ssl/certs/ cp dein-schluessel.key conf/ssl/private/
-
conf/nginx-ssl.conf- Dateinamen deiner Zertifikate anpassen.ssl_certificate /etc/ssl/certs/dein-zertifikat.pem; ssl_certificate_key /etc/ssl/private/dein-schluessel.key;
-
conf/cmdb.conf- SSL aktivieren und Dateinamen deiner Zertifikate anpassen.ssl = true certfile = /etc/ssl/certs/dein-zertifikat.pem keyfile = /etc/ssl/private/dein-schluessel.key -
docker-compose.ymlanpassen – im Servicedg-frontendunddg-backenddie folgenden Zeilen umschalten:dg-frontend: # comment for ssl # - ./conf/nginx.conf:/etc/nginx/conf.d/default.conf # uncomment for ssl - ./conf/nginx-ssl.conf:/etc/nginx/conf.d/default.conf - ./conf/ssl/certs/:/etc/ssl/certs/ - ./conf/ssl/private/:/etc/ssl/private/ dg-backend: # uncomment for ssl - ./conf/ssl/certs/:/etc/ssl/certs/ - ./conf/ssl/private/:/etc/ssl/private/
-
Stack neu starten:
docker compose up -d
DataGerry ist anschließend unter https://<dein-host> erreichbar.
docker compose psdocker compose logs -f # alle Services
docker compose logs -f dg-backend # nur Backenddocker compose stop # Container stoppen (Daten bleiben)
docker compose down # Container entfernen (Volumes bleiben)
docker compose down -v # ⚠️ Container UND Volumes entfernendocker compose down
git pull
docker compose up -dDie MongoDB-Daten liegen im benannten Volume mongodb-data.
docker exec dg-mongodb mongodump \
--archive=/data/db/datagerry-$(date +%F).archive \
--gzip
docker cp dg-mongodb:/data/db/datagerry-$(date +%F).archive ./backups/docker cp ./backups/datagerry-2025-01-15.archive dg-mongodb:/tmp/
docker exec dg-mongodb mongorestore \
--archive=/tmp/datagerry-2025-01-15.archive \
--gzip --dropTipp: Lege Backups regelmäßig per Cronjob an und sichere zusätzlich das Verzeichnis
conf/.
Frontend zeigt „502 Bad Gateway"
Das Backend ist (noch) nicht erreichbar. Prüfe mit docker compose logs dg-backend, ob der Start abgeschlossen ist – beim ersten Hochfahren kann das einige Sekunden dauern.
Backend kann nicht zur MongoDB verbinden
Stelle sicher, dass der Container dg-mongodb läuft (docker compose ps) und dass keine andere Anwendung den MongoDB-Port belegt. Prüfe ggf. die Logs mit docker compose logs mongodb.
Port 80 / 443 bereits belegt
Passe das Port-Mapping im Service dg-frontend an, z. B.:
ports:
- 8080:80
- 8443:443Konfigurationsänderungen werden nicht übernommen
Nach Änderungen in conf/ muss der entsprechende Container neu gestartet werden:
docker compose restart dg-frontend
docker compose restart dg-backendDataGerry steht unter der AGPL-3.0-Lizenz. Dieses Docker-Setup wird im Rahmen desselben Projekts bereitgestellt.