Skip to content

darthnorse/dockmon

Repository files navigation

DockMon

A comprehensive Docker container monitoring and management platform with real-time monitoring, intelligent auto-restart, multi-channel alerting, and complete event logging.

DockMon Docker Python React Go License Buy Me A Coffee

DockMon Dashboard

Key Features

  • Multi-Host Monitoring - Monitor containers across unlimited Docker hosts (local and remote)
  • Real-Time Dashboard - Drag-and-drop customizable widgets with WebSocket updates
  • Real-Time Statistics - Live CPU, memory, network metrics
  • Real-Time Container Logs - View logs from multiple containers simultaneously with live updates
  • Event Viewer - Comprehensive audit trail with filtering, search, and real-time updates
  • Intelligent Auto-Restart - Per-container auto-restart with configurable retry logic
  • Advanced Alerting - Discord, Slack, Telegram, Pushover, Gotify, SMTP with customizable templates
  • Container Tagging - Automatic tag derivation from Docker labels with user-defined tags
  • Bulk Operations - Start, stop, restart multiple containers simultaneously with progress tracking
  • Automatic Updates - Detect and execute container image updates on schedule
  • HTTP/HTTPS Health Checks - Custom endpoint monitoring with auto-restart on failure
  • Blackout Windows - Schedule maintenance periods to suppress alerts
  • Secure by Design - Session-based auth, rate limiting, mTLS for remote hosts, Alpine Linux base

Documentation

Support & Community

Roadmap

Completed (v1.0)

  • Full backend API with FastAPI
  • WebSocket real-time updates
  • Multi-channel notifications
  • Comprehensive event logging
  • Event log viewer with filtering and search
  • Real-time container logs viewer (multi-container support)
  • Drag-and-drop dashboard
  • Auto-restart with retry logic

Completed (v1.1)

  • Real-time performance metrics (CPU, memory, network, disk I/O)
  • Host-level and container-level statistics
  • TLS/mTLS support for secure remote Docker connections
  • Optimized streaming architecture with Go backend

Completed (v2.0) - Complete Rewrite

  • Modern React 18 frontend with TypeScript
  • Container tagging system with auto-derivation from Docker labels
  • Bulk operations (start/stop/restart multiple containers)
  • Automatic container updates with version tracking and scheduling
  • HTTP/HTTPS health checks with auto-restart on failure
  • Blackout windows for maintenance periods
  • Advanced alert rule engine with metric and event triggers
  • Alpine Linux base image with OpenSSL 3.x
  • Go 1.23 stats service for high-performance metrics streaming
  • Enhanced security and modern architecture

Planned (v2.1+)

  • Historical metrics graphs with trend analysis
  • Configuration export/import
  • Mobile-friendly responsive UI
  • DockMon Agent for remote Docker hosts (avoid exposing Docker socket)
  • Advanced RBAC and multi-user permissions

See the full roadmap for details.

Technology Stack

Backend

  • Python 3.13 with FastAPI and async/await
  • Alpine Linux 3.x container base (reduced attack surface)
  • OpenSSL 3.x for modern cryptography
  • SQLAlchemy 2.0 with Alembic migrations
  • Go 1.23 stats service for real-time metrics streaming

Frontend

  • React 18.3 with TypeScript (strict mode, zero any)
  • Vite for fast development builds
  • TanStack Table for data tables
  • React Grid Layout for dashboard customization
  • Tailwind CSS for styling

Infrastructure

  • Multi-stage Docker build - Go stats + React frontend + Python backend
  • Supervisor for process management
  • Nginx reverse proxy with SSL/TLS
  • WebSocket for real-time updates
  • Health checks for all services

Upgrading from v1 to v2

Breaking Changes

  • Alert Rules: Old alert rules must be recreated using the new alert system
  • mTLS Certificates: Regenerate certificates due to Alpine's stricter OpenSSL 3.x requirements
  • Database Schema: Automatic one-time migration from v1.1.3 to v2.0.0

Data Preserved

  • ✅ Hosts and their configurations
  • ✅ Containers and container history
  • ✅ Event logs and audit trail
  • ✅ User accounts and preferences

Post-Upgrade Steps

  1. Regenerate mTLS certificates for remote hosts (see mTLS Setup Guide)
  2. Recreate alert rules using the new alert system
  3. Verify host connections after upgrade

See the Migration Guide for detailed instructions.

Contributing

Contributions are welcome! Here's how you can help:

Development

Want to contribute code or run DockMon in development mode?

See Development Setup for:

  • Local development environment setup
  • Architecture overview
  • Running tests
  • Building from source

License

MIT License - see LICENSE file for details.

Author

Created by darthnorse

Acknowledgments

This 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.


If DockMon helps you, please consider giving it a star or supporting the project!

Buy Me A Coffee

DocumentationIssuesDiscussions

About

DockMon - Modern Docker container monitoring with auto-restart and alerts

Resources

License

Stars

Watchers

Forks

Packages

No packages published