{"id":47362842,"url":"https://github.com/deep-on/dockprobe","last_synced_at":"2026-04-04T05:33:04.544Z","repository":{"id":341185112,"uuid":"1168964837","full_name":"deep-on/dockprobe","owner":"deep-on","description":"Lightweight Docker monitoring dashboard with anomaly detection \u0026 Telegram alerts. One-liner install, zero config.","archived":false,"fork":false,"pushed_at":"2026-03-30T23:37:15.000Z","size":3287,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-31T00:29:45.194Z","etag":null,"topics":["anomaly-detection","container","dashboard","devops","docker","fastapi","lightweight","monitoring","self-hosted","telegram"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deep-on.png","metadata":{"files":{"readme":"README.de.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-28T02:05:47.000Z","updated_at":"2026-03-30T23:37:19.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/deep-on/dockprobe","commit_stats":null,"previous_names":["deep-on/dockwatch","deep-on/dockprobe"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/deep-on/dockprobe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deep-on%2Fdockprobe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deep-on%2Fdockprobe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deep-on%2Fdockprobe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deep-on%2Fdockprobe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deep-on","download_url":"https://codeload.github.com/deep-on/dockprobe/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deep-on%2Fdockprobe/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31389384,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T04:26:24.776Z","status":"ssl_error","status_checked_at":"2026-04-04T04:23:34.147Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anomaly-detection","container","dashboard","devops","docker","fastapi","lightweight","monitoring","self-hosted","telegram"],"created_at":"2026-03-18T16:00:23.576Z","updated_at":"2026-04-04T05:33:04.533Z","avatar_url":"https://github.com/deep-on.png","language":"Python","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"app/static/logo.png\" width=\"80\" alt=\"DockProbe\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eDockProbe\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cb\u003eLeichtgewichtiges Docker-Monitoring-Dashboard mit Anomalieerkennung \u0026 Telegram-Benachrichtigungen\u003c/b\u003e\u003cbr\u003e\n  Ein Container. Ein Befehl. Volle Übersicht.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"README.md\"\u003eEnglish\u003c/a\u003e | \u003ca href=\"README.ko.md\"\u003e한국어\u003c/a\u003e | \u003ca href=\"README.ja.md\"\u003e日本語\u003c/a\u003e | \u003cb\u003eDeutsch\u003c/b\u003e | \u003ca href=\"README.fr.md\"\u003eFrançais\u003c/a\u003e | \u003ca href=\"README.es.md\"\u003eEspañol\u003c/a\u003e | \u003ca href=\"README.pt.md\"\u003ePortuguês\u003c/a\u003e | \u003ca href=\"README.it.md\"\u003eItaliano\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/license-Apache_2.0-blue\" alt=\"License\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/python-3.12-green\" alt=\"Python\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/docker-compose-blue\" alt=\"Docker\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/dependencies-4_only-brightgreen\" alt=\"Deps\"\u003e\n  \u003cimg src=\"https://img.shields.io/docker/pulls/deeponinc/dockprobe\" alt=\"Docker Pulls\"\u003e\n  \u003cimg src=\"https://img.shields.io/docker/image-size/deeponinc/dockprobe/latest\" alt=\"Image Size\"\u003e\n\u003c/p\u003e\n\n---\n\n## Was ist DockProbe?\n\nDockProbe ist ein selbst gehostetes Docker-Monitoring-Dashboard, das als einzelner Container läuft. Es sammelt in Echtzeit CPU-, Speicher-, Netzwerk- und Festplattenmetriken von allen Containern und dem Host-System — und zeigt alles in einer übersichtlichen, dunklen Web-Oberfläche an.\n\n**GPU-fähiges Host-Monitoring** verfolgt NVIDIA-GPU-Temperatur und -Auslastung zusammen mit CPU-Nutzung, Host-Speicher, Festplattenengpässen und Lastdurchschnitt — alles in Echtzeit-Diagrammen. Wenn Sie ML-Workloads oder GPU-intensive Container betreiben, bietet DockProbe volle Transparenz ohne separate GPU-Monitoring-Tools.\n\nWenn etwas schiefgeht, erkennt DockProbe es automatisch. Sechs integrierte Anomalieerkennungsregeln überwachen CPU-Spitzen, Speicherüberläufe, Temperaturwarnungen, Festplattenengpässe, unerwartete Neustarts und Netzwerkanstiege. Jeder Alarm enthält **empfohlene Maßnahmen mit sofort ausführbaren Befehlen** — so wissen Sie nicht nur, was schiefgelaufen ist, sondern auch genau, was zu tun ist. Alarme werden sofort per Telegram gesendet, damit Sie reagieren können, bevor Nutzer es bemerken.\n\nEin integrierter Sicherheitsscanner führt alle 5 Minuten 16 automatisierte Prüfungen durch — zu Container-Fehlkonfigurationen, Netzwerk-Exposition und Host-Härtung — damit Sie Schwachstellen erkennen, bevor sie zu Vorfällen werden.\n\nKein Agent muss auf jedem Container installiert werden, keine externe Datenbank, keine komplexe Konfiguration. Einfach den Docker-Socket einbinden, einen Befehl ausführen, und Sie haben unter `https://localhost:9090` volle Übersicht über Ihre Docker-Umgebung. Zugriff von außerhalb Ihres Netzwerks? Die integrierte Cloudflare-Tunnel-Unterstützung bietet sicheres öffentliches HTTPS ohne Portweiterleitung.\n\n---\n\n## Schnellstart\n\n```bash\ngit clone https://github.com/deep-on/dockprobe.git \u0026\u0026 cd dockprobe \u0026\u0026 bash install.sh\n```\n\nDas war's. Der interaktive Installer konfiguriert Authentifizierung, Telegram-Benachrichtigungen und HTTPS — und öffnet dann `https://localhost:9090`.\n\n\u003e **Voraussetzungen:** Docker (mit Compose v2), Git, OpenSSL\n\n---\n\n## Direkt von Docker Hub starten\n\nKein git clone, kein Build — einfach pullen und starten:\n\n```bash\n# 1. Compose-Datei und Umgebungsvariablen-Vorlage herunterladen\ncurl -fsSL https://raw.githubusercontent.com/deep-on/dockprobe/main/docker-compose.hub.yaml -o docker-compose.yaml\ncurl -fsSL https://raw.githubusercontent.com/deep-on/dockprobe/main/.env.example -o .env\n\n# 2. .env mit Ihren Zugangsdaten bearbeiten\nvi .env\n\n# 3. (Optional) Selbstsigniertes SSL-Zertifikat erstellen\nmkdir -p certs \u0026\u0026 openssl req -x509 -newkey rsa:4096 -nodes \\\n  -keyout certs/key.pem -out certs/cert.pem \\\n  -days 825 -subj \"/CN=dockprobe\"\n\n# 4. Starten\ndocker compose up -d\n```\n\n\u003e **Verfügbar auf Docker Hub:** [`deeponinc/dockprobe`](https://hub.docker.com/r/deeponinc/dockprobe) — Multi-arch (amd64 + arm64)\n\n---\n\n## Dashboard-Vorschau\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/screenshots/dashboard-full.png\" alt=\"DockProbe Dashboard\" width=\"800\"\u003e\n\u003c/p\u003e\n\n---\n\n## Funktionen\n\n| Kategorie | Was Sie erhalten |\n|-----------|-----------------|\n| **Echtzeit-Dashboard** | Dunkles Web-UI, 10s Auto-Aktualisierung, sortierbare Tabellen, Chart.js-Diagramme |\n| **Container-Monitoring** | CPU %, Speicher %, Netzwerk-I/O, Block-I/O, Neustart-Zähler |\n| **Host-Monitoring** | CPU/GPU-Temperatur \u0026 -Auslastung, Arbeitsspeicher, Festplattennutzung, Lastdurchschnitt |\n| **Anomalieerkennung** | 6 Regeln mit empfohlenen Maßnahmen — CPU-Spitze, Speicherüberlauf, Hochtemperatur, Festplatte voll, Neustart, Netzwerk-Spitze |\n| **Telegram-Benachrichtigungen** | Sofortige Benachrichtigung mit 30-Min-Cooldown pro Alarmtyp |\n| **Sicherheit** | Basic Auth, Ratenlimitierung (5 Fehlversuche = 60s Sperre), HTTPS |\n| **Sicherheitsscanner** | 16 automatisierte Prüfungen (Container/Host/Netzwerk), 5-Min-Scan-Zyklus, Schweregrad-Badges |\n| **Sitzungsverwaltung** | Aktive Verbindungsverfolgung, konfigurierbare Max-Verbindungen, Live-IP-Anzeige |\n| **Passwortverwaltung** | Benutzername/Passwort über Dashboard-UI ändern |\n| **Einstellungs-UI** | Max-Verbindungen zur Laufzeit über das Dashboard anpassen |\n| **Zugriffsmodi** | Selbstsigniertes SSL (Standard) oder Cloudflare Tunnel (kein Port-Forwarding) |\n| **Leichtgewichtig** | 4 Python-Pakete, einzelne HTML-Datei, SQLite mit 7-Tage-Aufbewahrung |\n\n---\n\n## Dashboard-Aufbau\n\n| Bereich | Details |\n|---------|---------|\n| Sitzungsleiste | Angemeldeter Benutzer, IP, aktive Verbindungen / Max-Limit |\n| Host-Karten | CPU-Temp, GPU-Temp, CPU/GPU %, Host-Speicher, Festplatte %, Lastdurchschnitt |\n| Container-Tabelle | Sortierbar nach CPU/Speicher/Netzwerk, farbcodierte Anomalien |\n| Diagramme (5) | Container-CPU- \u0026 Speicher-Trends, Host-CPU/GPU %, Host-Temperatur \u0026 Last |\n| Docker-Festplatte | Images, Build-Cache, Volumes, Container-RW-Schichten |\n| Alarm-Verlauf | Letzte 24h mit Zeitstempeln |\n\n---\n\n## Anomalieerkennungsregeln\n\n| Regel | Bedingung | Aktion |\n|-------|-----------|--------|\n| Container-CPU | \u003e80% für 3 aufeinanderfolgende Prüfungen (30s) | Telegram + rote Hervorhebung |\n| Container-Speicher | \u003e90% des Limits | Sofortiger Alarm |\n| Host-CPU-Temperatur | \u003e85°C | Sofortiger Alarm |\n| Host-Festplatte | \u003e90% Nutzung | Sofortiger Alarm |\n| Container-Neustart | restart_count erhöht | Sofortiger Alarm |\n| Netzwerk-Spitze | RX 10-facher Anstieg + \u003e100MB | Sofortiger Alarm |\n\nAlle Schwellenwerte sind über Umgebungsvariablen konfigurierbar.\n\nJede Anomalie enthält **umsetzbare Empfehlungen** mit konkreten Befehlen:\n\n| Anomalie | Beispiel-Empfehlung |\n|----------|-------------------|\n| CPU-Spitze | `docker stats \u003cname\u003e` · `docker restart \u003cname\u003e` · `docker update --cpus=2 \u003cname\u003e` |\n| Speicherüberlauf | `docker stats \u003cname\u003e` · `docker update --memory=2g \u003cname\u003e` |\n| Neustart-Schleife | `docker logs --tail 50 \u003cname\u003e` · `docker inspect \u003cname\u003e` |\n| Netzwerk-Spitze | `docker logs --tail 50 \u003cname\u003e` · Auf DDoS oder unerwarteten Datenverkehr prüfen |\n| Hohe Temperatur | Lüfter-/Kühlsystem prüfen · `sensors -u` für Details |\n| Festplatte voll | `docker system prune -f` · `docker builder prune -f` · `docker volume prune` |\n\n---\n\n## Sicherheitsscanner\n\nDockProbe führt alle 5 Minuten 16 automatisierte Sicherheitsprüfungen durch und zeigt die Ergebnisse in einem dedizierten Dashboard-Bereich mit Schweregrad-Badges an.\n\n| Kategorie | Prüfungen |\n|-----------|-----------|\n| **Container** (9) | Privilegierter Modus, Ausführung als Root, gefährliche Capabilities, Docker-Socket-Mount, sensible Pfad-Mounts, Nur-Lese-Rootfs, AppArmor/Seccomp deaktiviert, Geheimnisse in Umgebungsvariablen, keine Speicher-/CPU-Limits |\n| **Netzwerk** (3) | Host-Netzwerkmodus, übermäßige Port-Exposition, SSH-Port (22) freigegeben |\n| **Host** (4) | Docker-Daemon-Sicherheitsoptionen, Kernel-ASLR, IP-Weiterleitung, Linux Security Module Status |\n\n**Schweregrade:**\n- 🔴 **Kritisch** — Sofortiges Handeln erforderlich (z.B. privilegierter Modus, beschreibbarer Docker-Socket)\n- 🟡 **Warnung** — Sicherheitsverbesserung empfohlen\n- 🔵 **Info** — Informative Befunde\n- 🟣 **Nicht verfügbar** — Prüfung kann aufgrund von Umgebungseinschränkungen nicht ausgeführt werden; zeigt Aktivierungsanleitung\n\n\u003e Host-Prüfungen erfordern Volume-Mounts (`/proc:/host_proc:ro`, `/sys:/host_sys:ro`). Ohne diese Mounts werden die betroffenen Prüfungen als **Nicht verfügbar** mit Einrichtungsanleitung angezeigt.\n\n---\n\n## Architektur\n\n```\n┌──────────────────────────────────────────────┐\n│  DockProbe Container                         │\n│                                              │\n│  FastAPI + uvicorn (Port 9090)               │\n│  ├── collectors/                             │\n│  │   ├── containers.py  (aiodocker)          │\n│  │   ├── host.py        (/proc, /sys, GPU)   │\n│  │   └── images.py      (system df)          │\n│  ├── alerting/                               │\n│  │   ├── detector.py    (6 Regeln + Aktionen) │\n│  │   └── telegram.py    (httpx)              │\n│  ├── security/                               │\n│  │   └── scanner.py     (16 checks)          │\n│  ├── storage/                                │\n│  │   └── db.py          (SQLite WAL)         │\n│  └── static/                                 │\n│      └── index.html     (Chart.js)           │\n│                                              │\n│  Volumes:                                    │\n│    docker.sock (ro), /sys (ro), /proc (ro),  │\n│    nvidia-smi (ro), SQLite Named Volume      │\n└──────────────────────────────────────────────┘\n```\n\n**Abhängigkeiten (nur 4 Pakete):**\n- `fastapi` — Web-Framework\n- `uvicorn` — ASGI-Server\n- `aiodocker` — Asynchroner Docker-API-Client\n- `httpx` — Asynchroner HTTP-Client (Telegram-API)\n\n---\n\n## Konfiguration\n\nAlle Einstellungen über `.env`-Datei:\n\n```env\n# Authentifizierung (erforderlich)\nAUTH_USER=admin\nAUTH_PASS=your-password\n\n# Telegram-Benachrichtigungen (optional)\nTELEGRAM_BOT_TOKEN=your-bot-token\nTELEGRAM_CHAT_ID=your-chat-id\n\n# Schwellenwerte (optional, Standardwerte angezeigt)\nCPU_THRESHOLD=80\nMEM_THRESHOLD=90\n\n# Verbindungslimit (optional, 0 = unbegrenzt)\nMAX_CONNECTIONS=3\n\n# Cloudflare Tunnel (optional)\nCF_TUNNEL_TOKEN=your-tunnel-token\n```\n\n---\n\n## Zugriffsmodi\n\n### Option 1: Lokales Netzwerk (selbstsigniertes SSL) — Standard\n\n```bash\nbash install.sh   # Option 1 wählen\n```\n\nZugriff über `https://localhost:9090` oder `https://\u003cIhre-IP\u003e:9090`\n\nFür den Zugriff von anderen Geräten im selben Netzwerk verwenden Sie die LAN-IP des Servers (z.B. `https://192.168.1.100:9090`). Bei Bedarf:\n- Port in der Firewall freigeben: `sudo ufw allow 9090/tcp`\n- Selbstsignierte Zertifikatswarnung im Browser akzeptieren\n\n\u003e **Warum die Browser-Warnung?** DockProbe verwendet ein bei der Installation generiertes selbstsigniertes SSL-Zertifikat. Da es nicht von einer vertrauenswürdigen Zertifizierungsstelle (CA) ausgestellt wurde, zeigt der Browser eine \"Ihre Verbindung ist nicht privat\"-Warnung. Dies ist normal — klicken Sie auf \"Erweitert\" → \"Weiter zur Seite\". Um diese Warnung zu vermeiden, verwenden Sie Cloudflare Tunnel (Option 3), der automatisch ein vertrauenswürdiges TLS-Zertifikat bereitstellt.\n\n### Option 2: Fernzugriff per Portweiterleitung\n\nFür externen Zugriff ohne Cloudflare:\n\n1. Port 9090 im Router auf die LAN-IP des Servers weiterleiten\n2. Zugriff über `https://\u003cöffentliche-IP\u003e:9090`\n3. Bei wechselnder öffentlicher IP einen DDNS-Dienst (No-IP, DuckDNS etc.) verwenden\n\n\u003e **Hinweis:** Der Port wird direkt exponiert. Basic Auth + HTTPS sind standardmäßig aktiv, aber für mehr Sicherheit wird Cloudflare Tunnel (Option 3) empfohlen.\n\n### Option 3: Cloudflare Tunnel (empfohlen für Fernzugriff)\n\nKeine Portweiterleitung, keine Firewall-Änderungen, gültiges TLS-Zertifikat — der einfachste und sicherste Weg für den Zugriff von überall.\n\n```bash\nbash install.sh   # Option 2 wählen, Tunnel-Token eingeben\n```\n\n**Einrichtung:**\n1. Kostenloses Konto bei [Cloudflare Zero Trust](https://one.dash.cloudflare.com) erstellen\n2. Zu **Networks** \u003e **Tunnels** \u003e **Create a tunnel** navigieren\n3. Tunnel benennen (z.B. `dockprobe`) und Tunnel-Token kopieren\n4. `bash install.sh` ausführen und Cloudflare-Tunnel-Option wählen\n5. Token eingeben\n6. Im Cloudflare-Dashboard **Public Hostname** auf `http://localhost:9090` setzen\n7. Zugriff über `https://your-domain.com` mit gültigem TLS-Zertifikat\n\n---\n\n## API-Endpunkte\n\n| Endpunkt | Methode | Beschreibung |\n|----------|---------|-------------|\n| `/` | GET | Dashboard-HTML |\n| `/api/current` | GET | Neuester Snapshot (Container + Host + Images + Anomalien) |\n| `/api/history/{name}?hours=1` | GET | Container-Zeitreihen |\n| `/api/history/host?hours=1` | GET | Host-Zeitreihen |\n| `/api/alerts?hours=24` | GET | Alarm-Verlauf |\n| `/api/session` | GET | Aktueller Benutzer, IP, aktive Verbindungen |\n| `/api/settings` | GET/POST | Laufzeiteinstellungen (max_connections) |\n| `/api/change-password` | POST | Benutzername/Passwort ändern |\n| `/api/health` | GET | Gesundheitsprüfung (keine Authentifizierung erforderlich) |\n\n---\n\n## Sicherheit\n\nDockProbe ist für sicheres Self-Hosting mit mehreren Schutzebenen konzipiert:\n\n**Authentifizierung \u0026 Zugriff**\n- **Basic Auth** auf allen Endpunkten (außer `/api/health`)\n- **PBKDF2-SHA256** Passwort-Hashing mit zufälligem Salt (600k Iterationen)\n- **Ratenlimitierung** — 5 fehlgeschlagene Anmeldeversuche → 60s Sperre pro IP\n- **Mindestens 8 Zeichen** Passwortanforderung\n- **Verbindungslimit** — Konfigurierbare maximale gleichzeitige Benutzer\n\n**Netzwerk \u0026 Transport**\n- **HTTPS** — Selbstsigniertes RSA-4096 (Standard) oder Cloudflare Tunnel\n- **CORS** — Cross-Origin-Anfragen explizit blockiert\n- **CSRF-Schutz** — POST-Endpunkte erfordern `X-Requested-With`-Header\n- **HTTP-Fallback-Warnung** — Klartextmodus warnt beim Start (nur Tunnel)\n\n**Container-Härtung**\n- **Nicht-Root** — Container läuft als `appuser`, nicht als root\n- **Nur-Lese-Mounts** — Docker-Socket, /sys, /proc alle read-only eingebunden\n- **Pfad-Traversal-Schutz** — Statische Dateiauslieferung validiert aufgelöste Pfade\n- **Kein Schreibzugriff** — Nur Monitoring, keine Container-Steuerung\n- **Kein OpenAPI/Swagger** — API-Dokumentationsendpunkte in der Produktion deaktiviert\n\n**Proxy-bewusstes Ratenlimit**\n- `X-Forwarded-For` wird nur von IPs vertraut, die in der Umgebungsvariable `TRUSTED_PROXIES` aufgeführt sind\n- Direkte Verbindungen verwenden immer die echte Client-IP\n\n---\n\n## Manuelle Einrichtung\n\nFalls Sie die manuelle Konfiguration bevorzugen:\n\n```bash\ngit clone https://github.com/deep-on/dockprobe.git\ncd dockprobe\n\n# .env erstellen\ncp .env.example .env\nvi .env\n\n# SSL-Zertifikat generieren (optional)\nmkdir -p certs\nopenssl req -x509 -newkey rsa:2048 -nodes \\\n  -keyout certs/key.pem -out certs/cert.pem \\\n  -days 365 -subj \"/CN=dockprobe\"\n\n# Starten\ndocker compose up -d --build\n```\n\n---\n\n## Lizenz\n\nApache License 2.0 — siehe [LICENSE](LICENSE)\n\n**Namensnennung:** Modifizierte oder weiterverteilte Versionen müssen das DeepOn-Logo und den Hinweis „Powered by DeepOn Inc.\" in der Benutzeroberfläche beibehalten.\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"app/static/logo.png\" width=\"24\" alt=\"DeepOn\"\u003e\n  Entwickelt von \u003ca href=\"https://deep-on.com\"\u003eDeepOn Inc.\u003c/a\u003e\n\u003c/p\u003e\n","funding_links":[],"categories":["Container Operations"],"sub_categories":["Monitoring"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeep-on%2Fdockprobe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeep-on%2Fdockprobe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeep-on%2Fdockprobe/lists"}