Skip to content

yhdsl/dockmon

 
 

Repository files navigation

DockMon - 非官方中文项目

一个功能全面的 Docker 容器监控与管理软件,提供实时容器或主机监控、智能重启、多渠道告警以及完整的事件日志管理。

本仓库为 DockMon 项目的非官方简体中文翻译版本,在原版的基础上进行了如下的修改:

  1. 完全支持简体中文,包括通知内容
  2. 添加了 UTC+8 时区的支持
  3. 修正原版 DockMon 不支持非英文标签、用户组的问题

一个快速上手的 docker-compose.yml 文件:

services:
  dockmon:
    image: yhdsl/dockmon:latest
    container_name: dockmon
    restart: unless-stopped
    ports:
      - "8001:443"
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - dockmon_data:/app/data
      - /var/run/docker.sock:/var/run/docker.sock
    healthcheck:
      test: ["CMD", "curl", "-k", "-f", "https://localhost:443/health"]
      interval: 30s
      timeout: 10s
      retries: 3

volumes:
  dockmon_data:

DockMon Docker Python React Go License Buy Me A Coffee

DockMon Dashboard

核心特性

  • 多主机监控 - 支持监控任意数量的本地或远程 Docker 主机上的容器
  • 基于代理的远程监控 - 由 Go 编写的轻量级代理服务,无需暴露 Docker 端口即可安全监控远程主机,支持以容器或 systemd 服务形式运行
  • 实时仪表板 - 支持拖拽的可自定义仪表板组件,基于 WebSocket 实现实时更新
  • 实时统计信息 - 实时展示 CPU 使用率、内存使用率以及网络 I/O
  • 历史数据统计 - 可选的时间序列数据持久化功能,用于记录 CPU、内存和网络指标,最长可保留 90 天的历史数据。允许在主机和容器的弹出窗口中,浏览 5 分钟 / 1 小时 / 24 小时 / 7 天 / 30 天 / 60 天 / 90 天的历史图表。出于隐私考虑,此功能默认关闭,可在 设置 → 系统设置 页面中启用。
  • 实时容器日志 - 支持同时查看多个容器的实时日志流
  • 事件管理 - 提供完整的且实时更新的事件日志记录,支持过滤和搜索
  • 智能重启 - 基于容器配置的重启策略自动恢复异常退出的容器,并支持自定义重试逻辑
  • 告警功能 - 支持 Discord、Slack、Telegram、Pushover、Gotify 和 SMTP,允许自定义通知模板
  • 容器标签 - 基于 Docker 标签自动生成容器标签,并支持自定义标签管理
  • 批量操作 - 支持批量启动、停止、重启容器,并提供实时进度反馈
  • 堆栈管理 - 支持创建、编辑 Docker Compose 堆栈并部署至本地或远程主机,支持从运行中的容器或主机文件系统导入现有堆栈,并提供实时部署进度及分层镜像拉取跟踪
  • 自动更新 - 按计划检测并更新容器镜像版本
  • HTTP/HTTPS 健康检查 - 支持对容器自定义监控 URL 进行健康检查,并在失败时自动重启
  • 维护黑窗 - 在计划维护期间抑制告警通知
  • 多用户支持 - 基于角色的访问控制 (RBAC),支持自定义用户组、细粒度权限管理以及用户控制
  • OIDC/SSO 集成 - 支持通过任意 OIDC 提供商 (如 Authentik、Keycloak、Okta、Entra ID、Auth0) 实现单点登录,支持用户组同步及可选的审批流程
  • API 密钥 - 提供基于用户组权限控制的 API 访问,支持 IP 限制及过期策略
  • 安全设计 - 基于会话认证、限流机制、远程主机 mTLS,并使用 Alpine Linux 镜像构建

参考文档 (英文)

官方支持与社区

技术栈

后端

  • 使用 Python 3.13,结合 FastAPI 与 async/await
  • 基于 Alpine Linux 3.x 构建的容器 (降低攻击面)
  • 使用 OpenSSL 3.x 提供现代加密能力
  • 采用 SQLAlchemy 2.0 与 Alembic 实现数据库迁移管理
  • 使用 Go 1.23 构建统计服务,实现实时指标传输

前端

  • 使用 React 18.3 + TypeScript (严格模式,零 any)
  • 通过 Vite 提供快速开发构建
  • 使用 TanStack Table 构建数据表格
  • 使用 React Grid Layout 实现自定义仪表盘布局
  • 采用 Tailwind CSS 进行样式设计

基础设施

  • 多阶段 Docker 构建: 整合 Go 统计服务 + React 前端 + Python 后端
  • 使用 Supervisor 进行进程管理
  • 通过 Nginx 作为反向代理并支持 SSL/TLS
  • 使用 WebSocket 实现实时更新
  • 为所有服务配置健康检查功能

贡献 (原项目)

欢迎贡献!无需签署 CLA 协议 - 只需提交 PR 即可!

提交贡献即表示你同意: 你的贡献将按照与原项目相同的 BSL 1.1 许可条款进行授权。

开发

想参与代码贡献或在开发模式下运行 DockMon?

请查看 Development Setup 页面以了解:

  • 如何配置本地开发环境
  • 项目架构概览
  • 运行测试
  • 从源码构建

许可证

Business Source License 1.1 - see LICENSE file for full details.

作者

Created by darthnorse

YHDSL 汉化并维护

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 非官方简体中文项目

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Python 58.4%
  • TypeScript 30.1%
  • Go 10.2%
  • Shell 1.1%
  • Dockerfile 0.1%
  • CSS 0.1%