feat:添加docker-mirror-monitor到列表

This commit is contained in:
okxlin 2026-03-10 22:34:07 +08:00
parent 2dd81d88c3
commit 2fb4096b75
11 changed files with 1315 additions and 0 deletions

View File

@ -0,0 +1,32 @@
additionalProperties:
formFields:
- default: "49080"
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Port
labelZh: 端口
required: true
rule: paramPort
type: number
- default: "9080"
edit: true
envKey: PANEL_APP_PORT_HTTP_INTERNAL
labelEn: Internal Port
labelZh: 内部端口
required: true
rule: paramPort
type: number
- default: "./data"
disabled: true
envKey: DATA_PATH
labelEn: Data Path
labelZh: 数据路径
required: true
type: text
- default: Asia/Shanghai
edit: true
envKey: TIME_ZONE
labelEn: Time zone
labelZh: 时区
required: true
type: text

View File

@ -0,0 +1,572 @@
server:
listen: ":9080"
debug: false # 调试模式false=只显示错误/启动信息true=显示所有连接日志
refresh_interval: 1800s # 全局刷新间隔,<= 300s系统将自动启用 WebSocket> 300s系统将自动启用 HTTP 定时拉取
slow_threshold: 3000 # 响应时间超过3000ms视为缓慢
api_token: "test-token-for-api-auth" # API访问令牌
# 站点配置
site:
logo: "容器镜像监控" # Header左侧Logo文字
logo_icon: "fab fa-docker" # Logo图标支持Font Awesome类名或图片路径
# Logo图标支持多种格式
# 1. Font Awesome图标: "fab fa-docker", "fas fa-cube", "fas fa-server" 等
# 2. 本地图片: "/custom/logo.png", "/custom/my-icon.svg" (需放在 ./data/public/ 目录下)
# 3. 网络图片: "https://example.com/logo.png"
# 4. Base64图片: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
#
# 提示Font Awesome 5 图标请注意前缀:
# * 品牌图标(如 Docker, GitHub, 微信):使用 **fab** (例如 fab fa-weixin)
# * 常规图标(如 首页, 设置):使用 **fas** (例如 fas fa-home)
title: "容器镜像加速器监控" # 页面主标题
description: "实时监控多种容器镜像源的加速器状态,帮助开发者选择最佳的镜像源" # 页面描述
browser_title: "容器镜像监控" # 浏览器标签页标题
favicon: "" # favicon图标URL留空使用默认
# 示例: favicon: "https://example.com/favicon.ico"
# 示例: favicon: "./favicon.png"
# User-Agent 配置(防止被目标站点识别为机器人)
# 默认使用 Chrome 浏览器的 User-Agent
user_agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
# 代理配置 (支持 HTTP/HTTPS/SOCKS5)
# proxy: "http://127.0.0.1:7890" # HTTP代理
# proxy: "socks5://127.0.0.1:1080" # SOCKS5代理
# proxy: "socks5://user:pass@127.0.0.1:1080" # 带认证的SOCKS5
proxy: ""
# 推荐镜像配置按分组ID配置为空则按配置顺序选择前5个在线镜像
recommended_mirrors:
dockerhub:
- "https://docker.1ms.run"
- "https://docker.1panel.live"
- "https://docker.m.ixdev.cn"
- "https://hub.rat.dev"
- "https://docker.xuanyuan.me"
# ghcr:
# - "https://ghcr.1ms.run"
# quay:
# - "https://quay.1ms.run"
# 推荐配置是否只选择在线镜像
# true: 只选中推荐列表中且在线的镜像
# false: 选中推荐列表中的所有镜像,无论是否在线
recommended_only_online: false
# TLS/HTTPS 配置 (可选)
# 如果配置了 cert_file 和 key_file服务将自动启用 HTTPS
tls:
enabled: false # 是否启用 HTTPS设为true启用
cert_file: "./ca.crt" # 证书文件路径
key_file: "./ca.key" # 私钥文件路径
# 顶部公告配置显示在header右侧
site_notice:
#enabled: false # 是否启用顶部公告
#text: "站点公告" # 公告文字
#url: "" # 点击跳转链接
#icon: "fas fa-bullhorn" # Font Awesome图标可选建议用fa-bullhorn或fa-bell
#color: "#ff6b6b" # 文字颜色
#bg_color: "rgba(255,107,107,0.1)" # 背景颜色
# 示例配置:
enabled: true
text: "1Panel & Halo 限时优惠 🎉"
url: "https://www.lxware.cn?code=sssvip"
icon: "fas fa-gift"
color: "#ff6b6b"
bg_color: "rgba(255,107,107,0.1)"
# 页脚配置
footer:
text: "容器镜像监控系统"
icp: "" # ICP备案号如 京ICP备12345678号
icp_url: "https://beian.miit.gov.cn/"
copyright: "" # 版权信息,如 © 2024 Your Company
enable_html: false # 是否启用HTML渲染text和copyright字段支持HTML
links: # 自定义链接
- name: "GitHub"
url: "https://github.com/okxlin/docker-mirror-monitor"
# 标签颜色配置 (keyword匹配不区分大小写按顺序优先匹配)
tag_colors:
# 官方源
- keyword: "官方"
color: "#4f6ef7"
bg_color: "rgba(79,110,247,0.15)"
# CDN/服务商
- keyword: "CloudFlare"
color: "#f6821e"
bg_color: "rgba(246,130,30,0.15)"
- keyword: "Nginx"
color: "#44a047"
bg_color: "rgba(68,160,71,0.15)"
- keyword: "EdgeOne"
color: "#006eff"
bg_color: "rgba(0,110,255,0.15)"
# 云厂商
- keyword: "阿里"
color: "#ff9900"
bg_color: "rgba(255,153,0,0.15)"
- keyword: "腾讯"
color: "#00a4ff"
bg_color: "rgba(0,164,255,0.15)"
- keyword: "Azure"
color: "#0078d4"
bg_color: "rgba(0,120,212,0.15)"
- keyword: "Google"
color: "#4285f4"
bg_color: "rgba(66,133,244,0.15)"
- keyword: "Oracle"
color: "#f80000"
bg_color: "rgba(248,0,0,0.15)"
# 项目/组织
- keyword: "1Panel"
color: "#005eeb"
bg_color: "rgba(0,94,235,0.15)"
- keyword: "DaoCloud"
color: "#005eeb"
bg_color: "rgba(0,94,235,0.15)"
- keyword: "Red Hat"
color: "#ee0000"
bg_color: "rgba(238,0,0,0.15)"
- keyword: "NVIDIA"
color: "#76b900"
bg_color: "rgba(118,185,0,0.15)"
- keyword: "Elastic"
color: "#fed10a"
bg_color: "rgba(254,209,10,0.15)"
# 警告类 (需登录/限速等)
- keyword: "需"
color: "#ff5722"
bg_color: "rgba(255,87,34,0.15)"
- keyword: "限"
color: "#ff5722"
bg_color: "rgba(255,87,34,0.15)"
# 配置生成器模板(可选,不配置则使用默认值)
# config_templates:
# empty_hint: "// 请先选择镜像源" # 空选择时的提示文字
# docker:
# title: "Docker 镜像加速配置"
# steps:
# - "编辑配置文件: sudo vim /etc/docker/daemon.json"
# - "重启 Docker: sudo systemctl restart docker"
# podman:
# title: "Podman 配置"
# steps:
# - "编辑配置文件: sudo vim /etc/containers/registries.conf"
# - "重启 Podman: sudo systemctl restart podman"
# containerd:
# title: "Containerd 配置"
# steps:
# - "编辑配置文件: sudo vim /etc/containerd/config.toml"
# - "重启 Containerd: sudo systemctl restart containerd"
# nerdctl:
# title: "Nerdctl/Containerd hosts.toml"
# steps:
# - "创建目录: sudo mkdir -p /etc/containerd/certs.d/{registry}"
# - "编辑配置: sudo vim /etc/containerd/certs.d/{registry}/hosts.toml"
# 关于页面配置
about:
enabled: true # 是否启用关于页面
title: "关于本项目" # 关于页面标题
description: | # 项目介绍支持HTML
<p>容器镜像监控系统是一个开源项目,帮助开发者实时监控各种容器镜像加速器的可用性和响应速度。</p>
<p>本项目支持 Docker Hub、GHCR、Quay、MCR、K8s、GCR、Elastic、NVCR 等多种镜像仓库的加速器监控。</p>
# 自定义HTML文件路径可选启用后将使用该文件内容替代默认关于页面
# 文件内容将直接嵌入到关于页面的内容区域
custom_html_file: "" # 如 "about.html"
# 捐赠配置
donate:
enabled: false # 是否显示捐赠信息
title: "支持本项目"
description: "如果本项目对您有帮助,欢迎打赏支持!"
# 捐赠方式列表
items: []
# - name: "微信支付"
# icon: "fab fa-weixin" # 品牌图标使用 fab
# qrcode: "" # 二维码图片URL或base64
# color: "#07c160"
# - name: "支付宝"
# icon: "fab fa-alipay" # 支付宝也有专门的图标
# qrcode: ""
# color: "#1677ff"
# 合作伙伴/推广配置
partners:
enabled: false # 是否显示推荐/合作伙伴
items: []
# - title: "推荐服务"
# description: "优质的云服务提供商"
# url: "https://example.com"
# image: "" # 广告图片URL可选
# color: "#4f6ef7" # 边框颜色
# 自定义链接
links:
# - name: "GitHub"
# url: "https://github.com/xxx"
# icon: "fab fa-github" # 品牌图标使用 fab
# - name: "文档"
# url: "https://docs.example.com"
# icon: "fas fa-book" # 通用图标使用 fas
# 免责声明配置
disclaimer:
enabled: true # 是否显示免责声明
title: "免责声明"
content: |
<p>本项目仅供学习和研究使用,不提供任何形式的担保。</p>
<p>镜像源的可用性和安全性由各镜像源提供方负责,使用前请自行评估风险。</p>
<p>本项目不对因使用镜像源而导致的任何损失承担责任。</p>
ai_generated: true # 是否显示AI生成声明
ai_statement: "本项目由 AI 辅助生成"
groups:
# Docker Hub 镜像源
- id: "dockerhub"
name: "Docker Hub"
description: "Docker官方镜像仓库加速器"
official_url: "https://registry-1.docker.io"
targets:
- name: "Docker Hub"
url: "https://registry-1.docker.io/v2/"
tags: ["官方", "CloudFront"]
- name: "腾讯云镜像仓库"
url: "https://mirror.ccs.tencentyun.com/v2/"
tags: ["腾讯云", "仅限腾讯云内网"]
- name: "毫秒镜像(免费版)"
url: "https://docker.1ms.run/v2/"
tags: ["木雷坞", "CloudFlare"]
- name: "毫秒镜像(付费版)"
url: "https://docker.1ms.run/v2/"
tags: ["木雷坞", "CDN", "需登陆", "高可用"]
- name: "1Panel"
url: "https://docker.1panel.live/v2/"
tags: ["1Panel", "CloudFlare"]
- name: "CNIX Internal"
url: "https://docker.m.ixdev.cn/v2/"
tags: ["国家(深圳·前海)新型互联网交换中心", "Nginx", "广东BGP"]
- name: "耗子面板"
url: "https://hub.rat.dev/v2/"
tags: ["耗子面板", "CloudFlare"]
- name: "轩辕镜像(免费版)"
url: "https://docker.xuanyuan.me/v2/"
tags: ["源码跳动", "CloudFlare"]
- name: "轩辕镜像(专业版)"
url: "https://docker.xuanyuan.run/v2/"
tags: ["源码跳动", "白山云CDN", "需登陆"]
- name: "轩辕镜像专业版2"
url: "https://docker.xuanyuan.dev/v2/"
tags: ["源码跳动", "CloudFlare", "需登陆"]
- name: "DockerProxy"
url: "https://dockerproxy.net/v2/"
tags: ["DockerProxy", "Oracle CDN"]
- name: "奶昔论坛"
url: "https://docker-registry.nmqu.com/v2/"
tags: ["奶昔论坛", "CloudFlare"]
- name: "爱铭网络 1"
url: "https://hub.amingg.com/v2/"
tags: ["爱铭网络", "CloudFlare"]
- name: "爱铭网络 2"
url: "https://docker.amingg.com/v2/"
tags: ["爱铭网络", "CloudFlare"]
- name: "厚浪云"
url: "https://docker.hlmirror.com/v2/"
tags: ["厚浪云", "CloudFlare"]
- name: "棉花云 1"
url: "https://hub1.nat.tf/v2/"
tags: ["美国西海岸节点", "Nginx"]
- name: "棉花云 2"
url: "https://hub2.nat.tf/v2/"
tags: ["香港BGP节点", "Nginx"]
- name: "棉花云 3"
url: "https://hub3.nat.tf/v2/"
tags: ["日本东京节点", "Nginx"]
- name: "棉花云 4"
url: "https://hub4.nat.tf/v2/"
tags: ["美国东海岸备用节点", "Nginx"]
- name: "天云港云"
url: "https://run-docker.cn/v2/"
tags: ["天云港云", "CloudFlare"]
- name: "DaoCloud"
url: "https://docker.m.daocloud.io/v2/"
tags: ["DaoCloud", "阿里云", "限速"]
- name: "科技lion"
url: "https://docker.kejilion.pro/v2/"
tags: ["自媒体UP主", "Nginx"]
- name: "1Panel三方镜像源"
url: "https://docker.367231.xyz/v2/"
tags: ["1Panel核心用户GXL驱动", "CloudFlare"]
- name: "1Panel三方镜像源2"
url: "https://hub.1panel.dev/v2/"
tags: ["1Panel核心用户无名驱动", "CloudFlare"]
- name: "SUNBALCONY"
url: "https://dockerproxy.cool/v2/"
tags: ["ipip.icu博主", "EdgeOne"]
- name: "apiba"
url: "https://docker.apiba.cn/v2/"
tags: ["apiba.cn", "CloudFlare"]
- name: "mxjia"
url: "https://proxy.vvvv.ee/v2/"
tags: ["NodeSeek大佬", "Nginx"]
- name: "飞牛NAS"
url: "https://docker.fnnas.com/v2/"
tags: ["飞牛NAS", "Nginx", "需登陆"]
# GHCR 镜像源
- id: "ghcr"
name: "GHCR"
description: "GitHub Container Registry 镜像加速器"
official_url: "https://ghcr.io"
targets:
- name: "GHCR"
url: "https://ghcr.io/v2/"
tags: ["官方", "Azure"]
- name: "毫秒镜像(免费版)"
url: "https://ghcr.1ms.run/v2/"
tags: ["木雷坞", "CloudFlare"]
- name: "毫秒镜像(付费版)"
url: "https://ghcr.1ms.run/v2/"
tags: ["木雷坞", "CDN", "需登陆", "高可用"]
- name: "CNIX Internal"
url: "https://ghcr.m.ixdev.cn/v2/"
tags: ["国家(深圳·前海)新型互联网交换中心", "Nginx", "广东BGP"]
- name: "轩辕镜像(专业版)"
url: "https://xxx-ghcr.xuanyuan.run/v2/"
tags: ["源码跳动", "白山云 CDN", "需登陆"]
- name: "DockerProxy"
url: "https://ghcr.dockerproxy.net/v2/"
tags: ["DockerProxy", "Oracle CDN"]
- name: "DaoCloud"
url: "https://ghcr.m.daocloud.io/v2/"
tags: ["DaoCloud", "阿里云", "限速"]
# Quay 镜像源
- id: "quay"
name: "Quay"
description: "Red Hat Quay.io 镜像加速器"
official_url: "https://quay.io"
targets:
- name: "Quay"
url: "https://quay.io/v2/"
tags: ["官方", "CloudFront"]
- name: "毫秒镜像(免费版)"
url: "https://quay.1ms.run/v2/"
tags: ["木雷坞", "CloudFlare"]
- name: "毫秒镜像(付费版)"
url: "https://quay.1ms.run/v2/"
tags: ["木雷坞", "CDN", "需登陆", "高可用"]
- name: "CNIX Internal"
url: "https://quay.m.ixdev.cn/v2/"
tags: ["国家(深圳·前海)新型互联网交换中心", "Nginx", "广东BGP"]
- name: "轩辕镜像(专业版)"
url: "https://xxx-quay.xuanyuan.run/v2/"
tags: ["源码跳动", "白山云 CDN", "需登陆"]
- name: "DockerProxy"
url: "https://quay.dockerproxy.net/v2/"
tags: ["DockerProxy", "Oracle CDN"]
- name: "DaoCloud"
url: "https://quay.m.daocloud.io/v2/"
tags: ["DaoCloud", "阿里云", "限速"]
# MCR 镜像源
- id: "mcr"
name: "MCR"
description: "Microsoft Container Registry 镜像加速器"
official_url: "https://mcr.microsoft.com"
targets:
- name: "MCR"
url: "https://mcr.microsoft.com/v2/"
tags: ["官方", "Azure"]
- name: "毫秒镜像(免费版)"
url: "https://mcr.1ms.run/v2/"
tags: ["木雷坞", "CloudFlare"]
- name: "毫秒镜像(付费版)"
url: "https://mcr.1ms.run/v2/"
tags: ["木雷坞", "CDN", "需登陆", "高可用"]
- name: "CNIX Internal"
url: "https://mcr.m.ixdev.cn/v2/"
tags: ["国家(深圳·前海)新型互联网交换中心", "Nginx", "广东BGP"]
- name: "轩辕镜像(专业版)"
url: "https://xxx-mcr.xuanyuan.run/v2/"
tags: ["源码跳动", "白山云 CDN", "需登陆"]
- name: "DockerProxy"
url: "https://mcr.dockerproxy.net/v2/"
tags: ["DockerProxy", "Oracle CDN"]
- name: "DaoCloud"
url: "https://mcr.m.daocloud.io/v2/"
tags: ["DaoCloud", "阿里云", "限速"]
# K8s 镜像源
- id: "k8s"
name: "K8s"
description: "Kubernetes Registry 镜像加速器"
official_url: "https://registry.k8s.io"
targets:
- name: "K8s Registry"
url: "https://registry.k8s.io/v2/"
tags: ["官方", "Google Cloud"]
- name: "毫秒镜像(免费版)"
url: "https://k8s.1ms.run/v2/"
tags: ["木雷坞", "CloudFlare"]
- name: "毫秒镜像(付费版)"
url: "https://k8s.1ms.run/v2/"
tags: ["木雷坞", "CDN", "需登陆", "高可用"]
- name: "CNIX Internal"
url: "https://k8s.m.ixdev.cn/v2/"
tags: ["国家(深圳·前海)新型互联网交换中心", "Nginx", "广东BGP"]
- name: "轩辕镜像(专业版)"
url: "https://xxx-k8s.xuanyuan.run/v2/"
tags: ["源码跳动", "白山云 CDN", "需登陆"]
- name: "DockerProxy"
url: "https://k8s.dockerproxy.net/v2/"
tags: ["DockerProxy", "Oracle CDN"]
- name: "DaoCloud"
url: "https://k8s.m.daocloud.io/v2/"
tags: ["DaoCloud", "阿里云", "限速"]
# GCR 镜像源
- id: "gcr"
name: "GCR"
description: "Google Container Registry 镜像加速器"
official_url: "https://gcr.io"
targets:
- name: "GCR"
url: "https://gcr.io/v2/"
tags: ["官方", "Google Cloud"]
- name: "毫秒镜像(付费版)"
url: "https://gcr.1ms.run/v2/"
tags: ["木雷坞", "CDN", "需登陆", "高可用"]
- name: "轩辕镜像(专业版)"
url: "https://xxx-gcr.xuanyuan.run/v2/"
tags: ["源码跳动", "白山云 CDN", "需登陆"]
- name: "DockerProxy"
url: "https://gcr.dockerproxy.net/v2/"
tags: ["DockerProxy", "Oracle CDN"]
- name: "DaoCloud"
url: "https://gcr.m.daocloud.io/v2/"
tags: ["DaoCloud", "阿里云", "限速"]
# Elastic 镜像源
- id: "elastic"
name: "Elastic"
description: "Elastic Docker Registry 镜像加速器"
official_url: "https://docker.elastic.co"
targets:
- name: "Elastic"
url: "https://docker.elastic.co/v2/"
tags: ["官方", "Google Cloud"]
- name: "毫秒镜像(免费版)"
url: "https://elastic.1ms.run/v2/"
tags: ["木雷坞", "CloudFlare"]
- name: "毫秒镜像(付费版)"
url: "https://elastic.1ms.run/v2/"
tags: ["木雷坞", "CDN", "需登陆", "高可用"]
- name: "CNIX Internal"
url: "https://elastic.m.ixdev.cn/v2/"
tags: ["国家(深圳·前海)新型互联网交换中心", "Nginx", "广东BGP"]
- name: "轩辕镜像(专业版)"
url: "https://xxx-elastic.xuanyuan.run/v2/"
tags: ["源码跳动", "白山云 CDN", "需登陆"]
- name: "DaoCloud"
url: "https://elastic.m.daocloud.io/v2/"
tags: ["DaoCloud", "阿里云", "限速"]
# NVCR 镜像源
- id: "nvcr"
name: "NVCR"
description: "NVIDIA Container Registry 镜像加速器"
official_url: "https://nvcr.io"
targets:
- name: "NVCR"
url: "https://nvcr.io/v2/"
tags: ["官方", "CloudFront"]
- name: "毫秒镜像(免费版)"
url: "https://nvcr.1ms.run/v2/"
tags: ["木雷坞", "CloudFlare"]
- name: "毫秒镜像(付费版)"
url: "https://nvcr.1ms.run/v2/"
tags: ["木雷坞", "CDN", "需登陆", "高可用"]
- name: "CNIX Internal"
url: "https://nvcr.m.ixdev.cn/v2/"
tags: ["国家(深圳·前海)新型互联网交换中心", "Nginx", "广东BGP"]
- name: "轩辕镜像(专业版)"
url: "https://xxx-nvcr.xuanyuan.run/v2/"
tags: ["源码跳动", "白山云 CDN", "需登陆"]
- name: "DaoCloud"
url: "https://nvcr.m.daocloud.io/v2/"
tags: ["DaoCloud", "阿里云", "限速"]

View File

@ -0,0 +1,25 @@
services:
docker-mirror-monitor:
image: "moelin/docker-mirror-monitor:v1.1.1"
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:${PANEL_APP_PORT_HTTP_INTERNAL}"
volumes:
- ${DATA_PATH}:/app/data
environment:
- TZ=${TIME_ZONE}
healthcheck:
test: ["CMD", "/app/docker-mirror-monitor", "healthcheck", "-config", "/app/data/config.yaml"]
interval: 30s
timeout: 10s
retries: 3
start_period: 5s
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

View File

@ -0,0 +1,3 @@
#!/bin/bash
chown -R 1000:1000 data

View File

@ -0,0 +1,16 @@
# Docker Mirror Monitor
实时监控多种容器镜像源的加速器状态,帮助开发者选择最佳的镜像源。
## 功能特性
* **多分组监控**:支持 Docker Hub、GHCR、Quay、K8s、GCR 等多种仓库。
* **实时更新**:基于 WebSocket 的实时状态推送。
* **配置生成**:一键生成 Docker `daemon.json` 或 Containerd 配置。
* **美观界面**:支持浅色/深色模式及多种配色主题。
## 使用说明
安装完成后,访问 `http://IP:端口` 即可使用。
如需修改监控目标或站点标题,请编辑安装目录下的 `data/config.yaml` 文件,然后调用 API 热加载或重启容器。

View File

@ -0,0 +1,35 @@
name: Docker Mirror Monitor
tags:
- 实用工具
title: Docker镜像监控系统
description: 实时监控多种容器镜像源的加速器状态,帮助开发者选择最佳的镜像源
additionalProperties:
key: docker-mirror-monitor
name: Docker Mirror Monitor
tags:
- Tool
shortDescZh: 实时监控多种容器镜像源的加速器状态
shortDescEn: Real-time monitoring of multiple container image source accelerators
type: tool
crossVersionUpdate: true
limit: 0
recommend: 0
website: https://github.com/okxlin/docker-mirror-monitor
github: https://github.com/okxlin/docker-mirror-monitor
document: https://github.com/okxlin/docker-mirror-monitor/blob/main/README.md
description:
en: Real-time monitoring of multiple container image source accelerators.
zh: 实时监控多种容器镜像源的加速器状态。
zh-Hant: 实时监控多種容器鏡像源的加速器状态。
ja: 複数のコンテナイメージソースアクセラレータの状態をリアルタイムで監視。
ms: Pemantauan masa nyata status pemacu pelbagai sumber imej bekas.
pt-br: Monitoramento em tempo real do status de aceleradores de várias fontes de imagem de contêiner.
ru: Мониторинг состояния ускорителей различных источников образов контейнеров в реальном времени.
ko: 여러 컨테이너 이미지 소스 가속기 상태 실시간 모니터링.
batchInstallSupport: true
architectures:
- amd64
- arm64
- armv7
- ppc64le
- s390x

View File

@ -0,0 +1,32 @@
additionalProperties:
formFields:
- default: "49080"
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Port
labelZh: 端口
required: true
rule: paramPort
type: number
- default: "9080"
edit: true
envKey: PANEL_APP_PORT_HTTP_INTERNAL
labelEn: Internal Port
labelZh: 内部端口
required: true
rule: paramPort
type: number
- default: "./data"
disabled: true
envKey: DATA_PATH
labelEn: Data Path
labelZh: 数据路径
required: true
type: text
- default: Asia/Shanghai
edit: true
envKey: TIME_ZONE
labelEn: Time zone
labelZh: 时区
required: true
type: text

View File

@ -0,0 +1,572 @@
server:
listen: ":9080"
debug: false # 调试模式false=只显示错误/启动信息true=显示所有连接日志
refresh_interval: 1800s # 全局刷新间隔,<= 300s系统将自动启用 WebSocket> 300s系统将自动启用 HTTP 定时拉取
slow_threshold: 3000 # 响应时间超过3000ms视为缓慢
api_token: "test-token-for-api-auth" # API访问令牌
# 站点配置
site:
logo: "容器镜像监控" # Header左侧Logo文字
logo_icon: "fab fa-docker" # Logo图标支持Font Awesome类名或图片路径
# Logo图标支持多种格式
# 1. Font Awesome图标: "fab fa-docker", "fas fa-cube", "fas fa-server" 等
# 2. 本地图片: "/custom/logo.png", "/custom/my-icon.svg" (需放在 ./data/public/ 目录下)
# 3. 网络图片: "https://example.com/logo.png"
# 4. Base64图片: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
#
# 提示Font Awesome 5 图标请注意前缀:
# * 品牌图标(如 Docker, GitHub, 微信):使用 **fab** (例如 fab fa-weixin)
# * 常规图标(如 首页, 设置):使用 **fas** (例如 fas fa-home)
title: "容器镜像加速器监控" # 页面主标题
description: "实时监控多种容器镜像源的加速器状态,帮助开发者选择最佳的镜像源" # 页面描述
browser_title: "容器镜像监控" # 浏览器标签页标题
favicon: "" # favicon图标URL留空使用默认
# 示例: favicon: "https://example.com/favicon.ico"
# 示例: favicon: "./favicon.png"
# User-Agent 配置(防止被目标站点识别为机器人)
# 默认使用 Chrome 浏览器的 User-Agent
user_agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
# 代理配置 (支持 HTTP/HTTPS/SOCKS5)
# proxy: "http://127.0.0.1:7890" # HTTP代理
# proxy: "socks5://127.0.0.1:1080" # SOCKS5代理
# proxy: "socks5://user:pass@127.0.0.1:1080" # 带认证的SOCKS5
proxy: ""
# 推荐镜像配置按分组ID配置为空则按配置顺序选择前5个在线镜像
recommended_mirrors:
dockerhub:
- "https://docker.1ms.run"
- "https://docker.1panel.live"
- "https://docker.m.ixdev.cn"
- "https://hub.rat.dev"
- "https://docker.xuanyuan.me"
# ghcr:
# - "https://ghcr.1ms.run"
# quay:
# - "https://quay.1ms.run"
# 推荐配置是否只选择在线镜像
# true: 只选中推荐列表中且在线的镜像
# false: 选中推荐列表中的所有镜像,无论是否在线
recommended_only_online: false
# TLS/HTTPS 配置 (可选)
# 如果配置了 cert_file 和 key_file服务将自动启用 HTTPS
tls:
enabled: false # 是否启用 HTTPS设为true启用
cert_file: "./ca.crt" # 证书文件路径
key_file: "./ca.key" # 私钥文件路径
# 顶部公告配置显示在header右侧
site_notice:
#enabled: false # 是否启用顶部公告
#text: "站点公告" # 公告文字
#url: "" # 点击跳转链接
#icon: "fas fa-bullhorn" # Font Awesome图标可选建议用fa-bullhorn或fa-bell
#color: "#ff6b6b" # 文字颜色
#bg_color: "rgba(255,107,107,0.1)" # 背景颜色
# 示例配置:
enabled: true
text: "1Panel & Halo 限时优惠 🎉"
url: "https://www.lxware.cn?code=sssvip"
icon: "fas fa-gift"
color: "#ff6b6b"
bg_color: "rgba(255,107,107,0.1)"
# 页脚配置
footer:
text: "容器镜像监控系统"
icp: "" # ICP备案号如 京ICP备12345678号
icp_url: "https://beian.miit.gov.cn/"
copyright: "" # 版权信息,如 © 2024 Your Company
enable_html: false # 是否启用HTML渲染text和copyright字段支持HTML
links: # 自定义链接
- name: "GitHub"
url: "https://github.com/okxlin/docker-mirror-monitor"
# 标签颜色配置 (keyword匹配不区分大小写按顺序优先匹配)
tag_colors:
# 官方源
- keyword: "官方"
color: "#4f6ef7"
bg_color: "rgba(79,110,247,0.15)"
# CDN/服务商
- keyword: "CloudFlare"
color: "#f6821e"
bg_color: "rgba(246,130,30,0.15)"
- keyword: "Nginx"
color: "#44a047"
bg_color: "rgba(68,160,71,0.15)"
- keyword: "EdgeOne"
color: "#006eff"
bg_color: "rgba(0,110,255,0.15)"
# 云厂商
- keyword: "阿里"
color: "#ff9900"
bg_color: "rgba(255,153,0,0.15)"
- keyword: "腾讯"
color: "#00a4ff"
bg_color: "rgba(0,164,255,0.15)"
- keyword: "Azure"
color: "#0078d4"
bg_color: "rgba(0,120,212,0.15)"
- keyword: "Google"
color: "#4285f4"
bg_color: "rgba(66,133,244,0.15)"
- keyword: "Oracle"
color: "#f80000"
bg_color: "rgba(248,0,0,0.15)"
# 项目/组织
- keyword: "1Panel"
color: "#005eeb"
bg_color: "rgba(0,94,235,0.15)"
- keyword: "DaoCloud"
color: "#005eeb"
bg_color: "rgba(0,94,235,0.15)"
- keyword: "Red Hat"
color: "#ee0000"
bg_color: "rgba(238,0,0,0.15)"
- keyword: "NVIDIA"
color: "#76b900"
bg_color: "rgba(118,185,0,0.15)"
- keyword: "Elastic"
color: "#fed10a"
bg_color: "rgba(254,209,10,0.15)"
# 警告类 (需登录/限速等)
- keyword: "需"
color: "#ff5722"
bg_color: "rgba(255,87,34,0.15)"
- keyword: "限"
color: "#ff5722"
bg_color: "rgba(255,87,34,0.15)"
# 配置生成器模板(可选,不配置则使用默认值)
# config_templates:
# empty_hint: "// 请先选择镜像源" # 空选择时的提示文字
# docker:
# title: "Docker 镜像加速配置"
# steps:
# - "编辑配置文件: sudo vim /etc/docker/daemon.json"
# - "重启 Docker: sudo systemctl restart docker"
# podman:
# title: "Podman 配置"
# steps:
# - "编辑配置文件: sudo vim /etc/containers/registries.conf"
# - "重启 Podman: sudo systemctl restart podman"
# containerd:
# title: "Containerd 配置"
# steps:
# - "编辑配置文件: sudo vim /etc/containerd/config.toml"
# - "重启 Containerd: sudo systemctl restart containerd"
# nerdctl:
# title: "Nerdctl/Containerd hosts.toml"
# steps:
# - "创建目录: sudo mkdir -p /etc/containerd/certs.d/{registry}"
# - "编辑配置: sudo vim /etc/containerd/certs.d/{registry}/hosts.toml"
# 关于页面配置
about:
enabled: true # 是否启用关于页面
title: "关于本项目" # 关于页面标题
description: | # 项目介绍支持HTML
<p>容器镜像监控系统是一个开源项目,帮助开发者实时监控各种容器镜像加速器的可用性和响应速度。</p>
<p>本项目支持 Docker Hub、GHCR、Quay、MCR、K8s、GCR、Elastic、NVCR 等多种镜像仓库的加速器监控。</p>
# 自定义HTML文件路径可选启用后将使用该文件内容替代默认关于页面
# 文件内容将直接嵌入到关于页面的内容区域
custom_html_file: "" # 如 "about.html"
# 捐赠配置
donate:
enabled: false # 是否显示捐赠信息
title: "支持本项目"
description: "如果本项目对您有帮助,欢迎打赏支持!"
# 捐赠方式列表
items: []
# - name: "微信支付"
# icon: "fab fa-weixin" # 品牌图标使用 fab
# qrcode: "" # 二维码图片URL或base64
# color: "#07c160"
# - name: "支付宝"
# icon: "fab fa-alipay" # 支付宝也有专门的图标
# qrcode: ""
# color: "#1677ff"
# 合作伙伴/推广配置
partners:
enabled: false # 是否显示推荐/合作伙伴
items: []
# - title: "推荐服务"
# description: "优质的云服务提供商"
# url: "https://example.com"
# image: "" # 广告图片URL可选
# color: "#4f6ef7" # 边框颜色
# 自定义链接
links:
# - name: "GitHub"
# url: "https://github.com/xxx"
# icon: "fab fa-github" # 品牌图标使用 fab
# - name: "文档"
# url: "https://docs.example.com"
# icon: "fas fa-book" # 通用图标使用 fas
# 免责声明配置
disclaimer:
enabled: true # 是否显示免责声明
title: "免责声明"
content: |
<p>本项目仅供学习和研究使用,不提供任何形式的担保。</p>
<p>镜像源的可用性和安全性由各镜像源提供方负责,使用前请自行评估风险。</p>
<p>本项目不对因使用镜像源而导致的任何损失承担责任。</p>
ai_generated: true # 是否显示AI生成声明
ai_statement: "本项目由 AI 辅助生成"
groups:
# Docker Hub 镜像源
- id: "dockerhub"
name: "Docker Hub"
description: "Docker官方镜像仓库加速器"
official_url: "https://registry-1.docker.io"
targets:
- name: "Docker Hub"
url: "https://registry-1.docker.io/v2/"
tags: ["官方", "CloudFront"]
- name: "腾讯云镜像仓库"
url: "https://mirror.ccs.tencentyun.com/v2/"
tags: ["腾讯云", "仅限腾讯云内网"]
- name: "毫秒镜像(免费版)"
url: "https://docker.1ms.run/v2/"
tags: ["木雷坞", "CloudFlare"]
- name: "毫秒镜像(付费版)"
url: "https://docker.1ms.run/v2/"
tags: ["木雷坞", "CDN", "需登陆", "高可用"]
- name: "1Panel"
url: "https://docker.1panel.live/v2/"
tags: ["1Panel", "CloudFlare"]
- name: "CNIX Internal"
url: "https://docker.m.ixdev.cn/v2/"
tags: ["国家(深圳·前海)新型互联网交换中心", "Nginx", "广东BGP"]
- name: "耗子面板"
url: "https://hub.rat.dev/v2/"
tags: ["耗子面板", "CloudFlare"]
- name: "轩辕镜像(免费版)"
url: "https://docker.xuanyuan.me/v2/"
tags: ["源码跳动", "CloudFlare"]
- name: "轩辕镜像(专业版)"
url: "https://docker.xuanyuan.run/v2/"
tags: ["源码跳动", "白山云CDN", "需登陆"]
- name: "轩辕镜像专业版2"
url: "https://docker.xuanyuan.dev/v2/"
tags: ["源码跳动", "CloudFlare", "需登陆"]
- name: "DockerProxy"
url: "https://dockerproxy.net/v2/"
tags: ["DockerProxy", "Oracle CDN"]
- name: "奶昔论坛"
url: "https://docker-registry.nmqu.com/v2/"
tags: ["奶昔论坛", "CloudFlare"]
- name: "爱铭网络 1"
url: "https://hub.amingg.com/v2/"
tags: ["爱铭网络", "CloudFlare"]
- name: "爱铭网络 2"
url: "https://docker.amingg.com/v2/"
tags: ["爱铭网络", "CloudFlare"]
- name: "厚浪云"
url: "https://docker.hlmirror.com/v2/"
tags: ["厚浪云", "CloudFlare"]
- name: "棉花云 1"
url: "https://hub1.nat.tf/v2/"
tags: ["美国西海岸节点", "Nginx"]
- name: "棉花云 2"
url: "https://hub2.nat.tf/v2/"
tags: ["香港BGP节点", "Nginx"]
- name: "棉花云 3"
url: "https://hub3.nat.tf/v2/"
tags: ["日本东京节点", "Nginx"]
- name: "棉花云 4"
url: "https://hub4.nat.tf/v2/"
tags: ["美国东海岸备用节点", "Nginx"]
- name: "天云港云"
url: "https://run-docker.cn/v2/"
tags: ["天云港云", "CloudFlare"]
- name: "DaoCloud"
url: "https://docker.m.daocloud.io/v2/"
tags: ["DaoCloud", "阿里云", "限速"]
- name: "科技lion"
url: "https://docker.kejilion.pro/v2/"
tags: ["自媒体UP主", "Nginx"]
- name: "1Panel三方镜像源"
url: "https://docker.367231.xyz/v2/"
tags: ["1Panel核心用户GXL驱动", "CloudFlare"]
- name: "1Panel三方镜像源2"
url: "https://hub.1panel.dev/v2/"
tags: ["1Panel核心用户无名驱动", "CloudFlare"]
- name: "SUNBALCONY"
url: "https://dockerproxy.cool/v2/"
tags: ["ipip.icu博主", "EdgeOne"]
- name: "apiba"
url: "https://docker.apiba.cn/v2/"
tags: ["apiba.cn", "CloudFlare"]
- name: "mxjia"
url: "https://proxy.vvvv.ee/v2/"
tags: ["NodeSeek大佬", "Nginx"]
- name: "飞牛NAS"
url: "https://docker.fnnas.com/v2/"
tags: ["飞牛NAS", "Nginx", "需登陆"]
# GHCR 镜像源
- id: "ghcr"
name: "GHCR"
description: "GitHub Container Registry 镜像加速器"
official_url: "https://ghcr.io"
targets:
- name: "GHCR"
url: "https://ghcr.io/v2/"
tags: ["官方", "Azure"]
- name: "毫秒镜像(免费版)"
url: "https://ghcr.1ms.run/v2/"
tags: ["木雷坞", "CloudFlare"]
- name: "毫秒镜像(付费版)"
url: "https://ghcr.1ms.run/v2/"
tags: ["木雷坞", "CDN", "需登陆", "高可用"]
- name: "CNIX Internal"
url: "https://ghcr.m.ixdev.cn/v2/"
tags: ["国家(深圳·前海)新型互联网交换中心", "Nginx", "广东BGP"]
- name: "轩辕镜像(专业版)"
url: "https://xxx-ghcr.xuanyuan.run/v2/"
tags: ["源码跳动", "白山云 CDN", "需登陆"]
- name: "DockerProxy"
url: "https://ghcr.dockerproxy.net/v2/"
tags: ["DockerProxy", "Oracle CDN"]
- name: "DaoCloud"
url: "https://ghcr.m.daocloud.io/v2/"
tags: ["DaoCloud", "阿里云", "限速"]
# Quay 镜像源
- id: "quay"
name: "Quay"
description: "Red Hat Quay.io 镜像加速器"
official_url: "https://quay.io"
targets:
- name: "Quay"
url: "https://quay.io/v2/"
tags: ["官方", "CloudFront"]
- name: "毫秒镜像(免费版)"
url: "https://quay.1ms.run/v2/"
tags: ["木雷坞", "CloudFlare"]
- name: "毫秒镜像(付费版)"
url: "https://quay.1ms.run/v2/"
tags: ["木雷坞", "CDN", "需登陆", "高可用"]
- name: "CNIX Internal"
url: "https://quay.m.ixdev.cn/v2/"
tags: ["国家(深圳·前海)新型互联网交换中心", "Nginx", "广东BGP"]
- name: "轩辕镜像(专业版)"
url: "https://xxx-quay.xuanyuan.run/v2/"
tags: ["源码跳动", "白山云 CDN", "需登陆"]
- name: "DockerProxy"
url: "https://quay.dockerproxy.net/v2/"
tags: ["DockerProxy", "Oracle CDN"]
- name: "DaoCloud"
url: "https://quay.m.daocloud.io/v2/"
tags: ["DaoCloud", "阿里云", "限速"]
# MCR 镜像源
- id: "mcr"
name: "MCR"
description: "Microsoft Container Registry 镜像加速器"
official_url: "https://mcr.microsoft.com"
targets:
- name: "MCR"
url: "https://mcr.microsoft.com/v2/"
tags: ["官方", "Azure"]
- name: "毫秒镜像(免费版)"
url: "https://mcr.1ms.run/v2/"
tags: ["木雷坞", "CloudFlare"]
- name: "毫秒镜像(付费版)"
url: "https://mcr.1ms.run/v2/"
tags: ["木雷坞", "CDN", "需登陆", "高可用"]
- name: "CNIX Internal"
url: "https://mcr.m.ixdev.cn/v2/"
tags: ["国家(深圳·前海)新型互联网交换中心", "Nginx", "广东BGP"]
- name: "轩辕镜像(专业版)"
url: "https://xxx-mcr.xuanyuan.run/v2/"
tags: ["源码跳动", "白山云 CDN", "需登陆"]
- name: "DockerProxy"
url: "https://mcr.dockerproxy.net/v2/"
tags: ["DockerProxy", "Oracle CDN"]
- name: "DaoCloud"
url: "https://mcr.m.daocloud.io/v2/"
tags: ["DaoCloud", "阿里云", "限速"]
# K8s 镜像源
- id: "k8s"
name: "K8s"
description: "Kubernetes Registry 镜像加速器"
official_url: "https://registry.k8s.io"
targets:
- name: "K8s Registry"
url: "https://registry.k8s.io/v2/"
tags: ["官方", "Google Cloud"]
- name: "毫秒镜像(免费版)"
url: "https://k8s.1ms.run/v2/"
tags: ["木雷坞", "CloudFlare"]
- name: "毫秒镜像(付费版)"
url: "https://k8s.1ms.run/v2/"
tags: ["木雷坞", "CDN", "需登陆", "高可用"]
- name: "CNIX Internal"
url: "https://k8s.m.ixdev.cn/v2/"
tags: ["国家(深圳·前海)新型互联网交换中心", "Nginx", "广东BGP"]
- name: "轩辕镜像(专业版)"
url: "https://xxx-k8s.xuanyuan.run/v2/"
tags: ["源码跳动", "白山云 CDN", "需登陆"]
- name: "DockerProxy"
url: "https://k8s.dockerproxy.net/v2/"
tags: ["DockerProxy", "Oracle CDN"]
- name: "DaoCloud"
url: "https://k8s.m.daocloud.io/v2/"
tags: ["DaoCloud", "阿里云", "限速"]
# GCR 镜像源
- id: "gcr"
name: "GCR"
description: "Google Container Registry 镜像加速器"
official_url: "https://gcr.io"
targets:
- name: "GCR"
url: "https://gcr.io/v2/"
tags: ["官方", "Google Cloud"]
- name: "毫秒镜像(付费版)"
url: "https://gcr.1ms.run/v2/"
tags: ["木雷坞", "CDN", "需登陆", "高可用"]
- name: "轩辕镜像(专业版)"
url: "https://xxx-gcr.xuanyuan.run/v2/"
tags: ["源码跳动", "白山云 CDN", "需登陆"]
- name: "DockerProxy"
url: "https://gcr.dockerproxy.net/v2/"
tags: ["DockerProxy", "Oracle CDN"]
- name: "DaoCloud"
url: "https://gcr.m.daocloud.io/v2/"
tags: ["DaoCloud", "阿里云", "限速"]
# Elastic 镜像源
- id: "elastic"
name: "Elastic"
description: "Elastic Docker Registry 镜像加速器"
official_url: "https://docker.elastic.co"
targets:
- name: "Elastic"
url: "https://docker.elastic.co/v2/"
tags: ["官方", "Google Cloud"]
- name: "毫秒镜像(免费版)"
url: "https://elastic.1ms.run/v2/"
tags: ["木雷坞", "CloudFlare"]
- name: "毫秒镜像(付费版)"
url: "https://elastic.1ms.run/v2/"
tags: ["木雷坞", "CDN", "需登陆", "高可用"]
- name: "CNIX Internal"
url: "https://elastic.m.ixdev.cn/v2/"
tags: ["国家(深圳·前海)新型互联网交换中心", "Nginx", "广东BGP"]
- name: "轩辕镜像(专业版)"
url: "https://xxx-elastic.xuanyuan.run/v2/"
tags: ["源码跳动", "白山云 CDN", "需登陆"]
- name: "DaoCloud"
url: "https://elastic.m.daocloud.io/v2/"
tags: ["DaoCloud", "阿里云", "限速"]
# NVCR 镜像源
- id: "nvcr"
name: "NVCR"
description: "NVIDIA Container Registry 镜像加速器"
official_url: "https://nvcr.io"
targets:
- name: "NVCR"
url: "https://nvcr.io/v2/"
tags: ["官方", "CloudFront"]
- name: "毫秒镜像(免费版)"
url: "https://nvcr.1ms.run/v2/"
tags: ["木雷坞", "CloudFlare"]
- name: "毫秒镜像(付费版)"
url: "https://nvcr.1ms.run/v2/"
tags: ["木雷坞", "CDN", "需登陆", "高可用"]
- name: "CNIX Internal"
url: "https://nvcr.m.ixdev.cn/v2/"
tags: ["国家(深圳·前海)新型互联网交换中心", "Nginx", "广东BGP"]
- name: "轩辕镜像(专业版)"
url: "https://xxx-nvcr.xuanyuan.run/v2/"
tags: ["源码跳动", "白山云 CDN", "需登陆"]
- name: "DaoCloud"
url: "https://nvcr.m.daocloud.io/v2/"
tags: ["DaoCloud", "阿里云", "限速"]

View File

@ -0,0 +1,25 @@
services:
docker-mirror-monitor:
image: "moelin/docker-mirror-monitor:latest"
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:${PANEL_APP_PORT_HTTP_INTERNAL}"
volumes:
- ${DATA_PATH}:/app/data
environment:
- TZ=${TIME_ZONE}
healthcheck:
test: [ "CMD", "/app/docker-mirror-monitor", "healthcheck", "-config", "/app/data/config.yaml" ]
interval: 30s
timeout: 10s
retries: 3
start_period: 5s
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

View File

@ -0,0 +1,3 @@
#!/bin/bash
chown -R 1000:1000 data

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB