{"id":32844689,"url":"https://github.com/darthnorse/dockmon","last_synced_at":"2026-04-30T01:03:18.539Z","repository":{"id":316329569,"uuid":"1062924394","full_name":"darthnorse/dockmon","owner":"darthnorse","description":"DockMon - Modern Docker container monitoring with auto-restart and alerts","archived":false,"fork":false,"pushed_at":"2026-04-29T14:47:13.000Z","size":116471,"stargazers_count":1320,"open_issues_count":24,"forks_count":71,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-04-29T16:29:34.551Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/darthnorse.png","metadata":{"files":{"readme":"README.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":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-23T23:36:40.000Z","updated_at":"2026-04-29T15:32:03.000Z","dependencies_parsed_at":"2025-10-22T16:10:58.453Z","dependency_job_id":"e834c996-090a-4ac9-9920-06dc89b973ca","html_url":"https://github.com/darthnorse/dockmon","commit_stats":null,"previous_names":["darthnorse/dockmon"],"tags_count":62,"template":false,"template_full_name":null,"purl":"pkg:github/darthnorse/dockmon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darthnorse%2Fdockmon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darthnorse%2Fdockmon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darthnorse%2Fdockmon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darthnorse%2Fdockmon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/darthnorse","download_url":"https://codeload.github.com/darthnorse/dockmon/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darthnorse%2Fdockmon/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32450234,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T22:27:22.272Z","status":"ssl_error","status_checked_at":"2026-04-29T22:10:49.234Z","response_time":110,"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":[],"created_at":"2025-11-08T06:01:48.345Z","updated_at":"2026-04-30T01:03:18.527Z","avatar_url":"https://github.com/darthnorse.png","language":"Python","funding_links":["https://buymeacoffee.com/darthnorse"],"categories":["Python"],"sub_categories":[],"readme":"# DockMon\n\nA comprehensive Docker container monitoring and management platform with real-time monitoring, intelligent auto-restart, multi-channel alerting, and complete event logging.\n\n![DockMon](https://img.shields.io/badge/DockMon-v2.4.0-blue.svg)\n![Docker](https://img.shields.io/badge/Docker-Ready-2496ED?logo=docker\u0026logoColor=white)\n![Python](https://img.shields.io/badge/Python-3.13-3776AB?logo=python\u0026logoColor=white)\n![React](https://img.shields.io/badge/React-18.3-61DAFB?logo=react\u0026logoColor=white)\n![Go](https://img.shields.io/badge/Go-1.25-00ADD8?logo=go\u0026logoColor=white)\n![License](https://img.shields.io/badge/license-BSL%201.1-blue.svg)\n[![Buy Me A Coffee](https://img.shields.io/badge/Buy%20Me%20A%20Coffee-Support-FFDD00?logo=buy-me-a-coffee\u0026logoColor=black)](https://buymeacoffee.com/darthnorse)\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshots/dashboard.png\" alt=\"DockMon Dashboard\" width=\"800\"\u003e\n\u003c/p\u003e\n\n## Key Features\n\n- **Multi-Host Monitoring** - Monitor containers across unlimited Docker hosts (local and remote)\n- **Agent-Based Remote Monitoring** - Lightweight Go agent for secure remote Docker monitoring without exposing Docker ports. Runs as a container or systemd service\n- **Real-Time Dashboard** - Drag-and-drop customizable widgets with WebSocket updates\n- **Real-Time Statistics** - Live CPU, memory, network metrics\n- **Historical Stats** - Optional time-series persistence for CPU, memory, and network metrics with retention up to 90 days. Browse historical charts in host and container modals via a time-range selector (5m / 1h / 24h / 7d / 30d / 60d / 90d). Disabled by default (privacy); opt in from Settings → System\n- **Real-Time Container Logs** - View logs from multiple containers simultaneously with live updates\n- **Event Viewer** - Comprehensive audit trail with filtering, search, and real-time updates\n- **Intelligent Auto-Restart** - Per-container auto-restart with configurable retry logic\n- **Advanced Alerting** - Discord, Slack, Telegram, Pushover, Gotify, SMTP with customizable templates\n- **Container Tagging** - Automatic tag derivation from Docker labels with user-defined tags\n- **Bulk Operations** - Start, stop, restart multiple containers simultaneously with progress tracking\n- **Stack Management** - Create, edit, and deploy Docker Compose stacks to local and remote hosts. Import existing stacks from running containers or host filesystems, with real-time deployment progress and layer-by-layer image pull tracking\n- **Automatic Updates** - Detect and execute container image updates on schedule\n- **HTTP/HTTPS Health Checks** - Custom endpoint monitoring with auto-restart on failure\n- **Blackout Windows** - Schedule maintenance periods to suppress alerts\n- **Multi-User Support** - Group-based RBAC with custom groups, granular capabilities, and user management\n- **OIDC/SSO Integration** - Single sign-on with any OIDC provider (Authentik, Keycloak, Okta, Entra ID, Auth0), automatic group sync, and optional user approval workflow\n- **API Keys** - Programmatic access with group-based permissions, optional IP restrictions, and expiration\n- **Secure by Design** - Session-based auth, rate limiting, mTLS for remote hosts, Alpine Linux base\n\n## Documentation\n\n- **[Complete User Guide](https://github.com/darthnorse/dockmon/wiki)** - Full documentation\n- **[Quick Start](https://github.com/darthnorse/dockmon/wiki/Quick-Start)** - Get started in 5 minutes\n- **[Installation](https://github.com/darthnorse/dockmon/wiki/Installation)** - Docker, unRAID, Synology, QNAP\n- **[Configuration](https://github.com/darthnorse/dockmon/wiki/Notifications)** - Alerts, notifications, settings\n- **[Multi-User \u0026 OIDC](https://github.com/darthnorse/dockmon/wiki/Multi-User-and-OIDC)** - Users, groups, SSO setup\n- **[Security](https://github.com/darthnorse/dockmon/wiki/Security-Guide)** - Best practices and mTLS setup\n- **[Remote Monitoring](https://github.com/darthnorse/dockmon/wiki/Remote-Docker-Setup)** - Monitor remote Docker hosts\n- **[Event Viewer](https://github.com/darthnorse/dockmon/wiki/Event-Viewer)** - Comprehensive audit trail with filtering\n- **[Container Logs](https://github.com/darthnorse/dockmon/wiki/Container-Logs)** - Real-time multi-container log viewer\n- **[API Reference](https://github.com/darthnorse/dockmon/wiki/API-Reference)** - REST and WebSocket APIs\n- **[FAQ](https://github.com/darthnorse/dockmon/wiki/FAQ)** - Frequently asked questions\n- **[Troubleshooting](https://github.com/darthnorse/dockmon/wiki/Troubleshooting)** - Common issues\n\n## Support \u0026 Community\n\n- **[Discord Server](https://discord.gg/wEZxeet2N3)** - Join the community, get help, share tips\n- **[Report Issues](https://github.com/darthnorse/dockmon/issues)** - Found a bug?\n- **[Discussions](https://github.com/darthnorse/dockmon/discussions)** - Ask questions, share ideas\n- **[Wiki](https://github.com/darthnorse/dockmon/wiki)** - Complete documentation\n- **[Star on GitHub](https://github.com/darthnorse/dockmon)** - Show your support!\n- **[Buy Me A Coffee](https://buymeacoffee.com/darthnorse)** - Support the project\n\n## Technology Stack\n\n### Backend\n- **Python 3.13** with FastAPI and async/await\n- **Alpine Linux 3.x** container base (reduced attack surface)\n- **OpenSSL 3.x** for modern cryptography\n- **SQLAlchemy 2.0** with Alembic migrations\n- **Go 1.23** stats service for real-time metrics streaming\n\n### Frontend\n- **React 18.3** with TypeScript (strict mode, zero `any`)\n- **Vite** for fast development builds\n- **TanStack Table** for data tables\n- **React Grid Layout** for dashboard customization\n- **Tailwind CSS** for styling\n\n### Infrastructure\n- **Multi-stage Docker build** - Go stats + React frontend + Python backend\n- **Supervisor** for process management\n- **Nginx** reverse proxy with SSL/TLS\n- **WebSocket** for real-time updates\n- **Health checks** for all services\n\n## Upgrading from v1 to v2\n\n### Breaking Changes\n- **Alert Rules**: Old alert rules must be recreated using the new alert system\n- **mTLS Certificates**: Regenerate certificates due to Alpine's stricter OpenSSL 3.x requirements\n- **Database Schema**: Automatic one-time migration from v1.1.3 to v2.0.0\n\n### Data Preserved\n- ✅ Hosts and their configurations\n- ✅ Containers and container history\n- ✅ Event logs and audit trail\n- ✅ User accounts and preferences\n\n### Post-Upgrade Steps\n1. Regenerate mTLS certificates for remote hosts (see [mTLS Setup Guide](https://github.com/darthnorse/dockmon/wiki/Security-Guide#mtls-setup))\n2. Recreate alert rules using the new alert system\n3. Verify host connections after upgrade\n\nSee the [Migration Guide](https://github.com/darthnorse/dockmon/wiki/Migration-Guide) for detailed instructions.\n\n## Contributing\n\nContributions are welcome! **No CLA required** - just submit a PR!\n\n- Report bugs via [GitHub Issues](https://github.com/darthnorse/dockmon/issues)\n- Suggest features in [Discussions](https://github.com/darthnorse/dockmon/discussions)\n- Improve documentation (edit the [Wiki](https://github.com/darthnorse/dockmon/wiki))\n- Submit pull requests (see [Contributing Guide](https://github.com/darthnorse/dockmon/wiki/Contributing))\n\nBy contributing, you agree your contributions are licensed under the same BSL 1.1 terms as the project.\n\n## Development\n\nWant to contribute code or run DockMon in development mode?\n\nSee [Development Setup](https://github.com/darthnorse/dockmon/wiki/Development-Setup) for:\n- Local development environment setup\n- Architecture overview\n- Running tests\n- Building from source\n\n## License\n\n**Business Source License 1.1** - see [LICENSE](LICENSE) file for full details.\n\n### What this means:\n\n✅ **You can use DockMon:**\n- For internal use in your company (any size)\n- For personal projects\n- To monitor your clients' infrastructure as part of consulting/MSP services\n- Fork, modify, and customize for your own use\n- Contribute improvements back to the project\n\n❌ **You cannot:**\n- Offer DockMon as a SaaS product to third parties\n- Embed DockMon in a commercial monitoring platform sold to others\n- Provide DockMon hosting as a standalone commercial service\n\n### Future Open Source:\nAfter 2 years (Change Date: 2027-01-01), each version automatically converts to **Apache License 2.0**, becoming fully permissive open source with explicit patent grants.\n\n### Commercial Licensing:\nNeed to use DockMon in a way not permitted by BSL? Contact us for commercial licensing:\n- [Open an Issue](https://github.com/darthnorse/dockmon/issues)\n- Describe your use case\n- We'll work with you on licensing terms\n\n### Why BSL?\nBSL protects the project from direct commercial competition while remaining contributor-friendly:\n- **No CLAs required** - standard GitHub workflow\n- **Eventually becomes open source** - builds community trust\n- **Allows all legitimate uses** - only blocks competitive SaaS offerings\n- Used successfully by Sentry, CockroachDB, MariaDB, and other major projects\n\n## Author\n\nCreated by [darthnorse](https://github.com/darthnorse)\n\n## Acknowledgments\n\nThis project has been developed with **vibe coding** and **AI assistance** using Claude Code. The codebase includes clean, well-documented code with proper error handling, comprehensive testing considerations, modern async/await patterns, robust database design, and production-ready deployment configurations.\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eIf DockMon helps you, please consider giving it a star or supporting the project!\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://buymeacoffee.com/darthnorse\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png\" alt=\"Buy Me A Coffee\" style=\"height: 60px !important;width: 217px !important;\" \u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/darthnorse/dockmon/wiki\"\u003eDocumentation\u003c/a\u003e •\n  \u003ca href=\"https://github.com/darthnorse/dockmon/issues\"\u003eIssues\u003c/a\u003e •\n  \u003ca href=\"https://github.com/darthnorse/dockmon/discussions\"\u003eDiscussions\u003c/a\u003e\n\u003c/p\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarthnorse%2Fdockmon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdarthnorse%2Fdockmon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarthnorse%2Fdockmon/lists"}