一个轻量级、易部署的服务器流量监控与订阅管理系统,支持 Nezha、DStatus 和 Komari 探针。
- 📊 流量监控 - 支持探针服务器与外部订阅流量聚合统计
- 📈 历史流量 - 30 天流量使用趋势图表
- 🔗 订阅链接 - 展示通过订阅管理上传或导入和生成订阅生成的订阅
- 🔗 订阅管理 - 上传猫咪配置文件或从其他订阅url导入生成订阅
- 🎯 生成订阅 - 从导入的节点生成订阅,可视化代理组规则编辑器
- 📦 节点管理 - 导入个人节点或机场节点,支持添加、编辑、删除代理节点
- 🔧 生成订阅 - 自定义规则或使用模板快速生成订阅
- 🎨 代理分组 - 拖拽式代理节点分组配置,支持链式代理
- 👥 用户管理 - 管理员/普通用户角色区分,订阅权限管理
- 🌓 主题切换 - 支持亮色/暗色模式
- 📱 响应式设计 - 适配移动端和桌面端
账户/密码: test / test123
failed to initialize traffic repository: enable wal: unable to open database file: out of memory (14)
给映射的目录 chmod -R 777 比如示例的目录
chmod -R 777 ./data ./subscribes ./rule_templates
使用 Docker 是最简单快捷的部署方式,无需配置任何依赖环境。
docker run -d \
--user root \
--name miaomiaowu \
-p 8080:8080 \
-v $(pwd)/mmw-data:/app/data \
-v $(pwd)/subscribes:/app/subscribes \
-v $(pwd)/rule_templates:/app/rule_templates \
ghcr.io/jimleerx/miaomiaowu:latest参数说明:
-p 8080:8080将容器端口映射到宿主机,按需调整。-v ./mmw-data:/app/data持久化数据库文件,防止容器重建时数据丢失。-v ./subscribes:/app/subscribes订阅文件存放目录-v ./rule_templates:/app/rule_templates规则模板存放目录-e JWT_SECRET=your-secret可选参数,配置token密钥,建议改成随机字符串- 其他环境变量(如
LOG_LEVEL)同下文“环境变量”章节,可通过-e继续添加。
更新镜像后可执行:
docker pull ghcr.io/jimleerx/miaomiaowu:latest
docker stop miaomiaowu && docker rm miaomiaowu然后按照上方命令重新启动服务。
创建 docker-compose.yml 文件:
version: '3.8'
services:
miaomiaowu:
image: ghcr.io/jimleerx/miaomiaowu:latest
container_name: miaomiaowu
restart: unless-stopped
user: root
environment:
- PORT=8080
- DATABASE_PATH=/app/data/traffic.db
- LOG_LEVEL=info
ports:
- "8080:8080"
volumes:
- ./data:/app/data
- ./subscribes:/app/subscribes
- ./rule_templates:/app/rule_templates
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8080/"]
interval: 30s
timeout: 3s
start_period: 5s
retries: 3
参数说明:
-p 8080:8080将容器端口映射到宿主机,按需调整。-e JWT_SECRET=your-secret可选参数,配置token密钥,建议改成随机字符串- 其他环境变量(如
LOG_LEVEL)同下文“环境变量”章节,可通过-e继续添加。
映射目录说明:
volumes: #这是挂载下面这三个目录到宿主机的,如果你不知道这三个目录是干嘛的,不需要添加
- ./mmw-data:/app/data #持久化数据库文件,防止容器重建时数据丢失。
- ./subscribes:/app/subscribes #订阅文件存放目录
- ./rule_templates:/app/rule_templates #规则模板存放目录
启动服务:
docker-compose up -d查看日志:
docker-compose logs -f停止服务:
docker-compose down容器使用两个数据卷进行数据持久化:
/app/data- 存储 SQLite 数据库文件/app/subscribes- 存储订阅配置文件/app/rule_templates- 存储规则文件模板
重要提示:请确保定期备份这两个目录的数据。
旧服务卸载及备份转移
sudo systemctl stop traffic-info
sudo systemctl disable traffic-info
sudo rm -rf /etc/systemd/system/traffic-info.service
sudo rm -f /usr/local/bin/traffic-info
sudo cp -rf /var/lib/traffic-info/* /etc/mmw/
自动安装为 systemd 服务(Debian/Ubuntu):
# 下载并运行安装脚本
curl -sL https://raw.githubusercontent.com/Jimleerx/miaomiaowu/main/install.sh | bash安装完成后,服务将自动启动,访问 http://服务器IP:8080 即可。
更新到最新版本:
# systemd 服务更新
curl -sL https://raw.githubusercontent.com/Jimleerx/miaomiaowu/main/install.sh | sudo bash -s update简易安装(手动运行):
# 一键下载安装
curl -sL https://raw.githubusercontent.com/Jimleerx/miaomiaowu/main/quick-install.sh | bash
# 运行服务
./mmw更新简易安装版本:
# 更新到最新版本
curl -sL https://raw.githubusercontent.com/Jimleerx/miaomiaowu/main/quick-install.sh | bash -s updateLinux:
# 下载二进制文件(修改版本号为所需版本)
wget https://github.com/Jimleerx/miaomiaowu/releases/download/v0.0.2/mmw-linux-amd64
# 添加执行权限
chmod +x mmw-linux-amd64
# 运行
./mmw-linux-amd64Windows:
# 从 Releases 页面下载 mmw-windows-amd64.exe
# https://github.com/Jimleerx/miaomiaowu/releases
# 双击运行或在命令行中执行
.\mmw-windows-amd64.exe- 🚀 单二进制文件部署,无需外部依赖
- 💾 使用 SQLite 数据库,免维护
- 🔒 JWT 认证,安全可靠
- 📱 响应式设计,支持移动端
- Linux/Windows x86_64
- 无其他依赖
# 下载二进制文件
wget https://github.com/Jimleerx/miaomiaowu/releases/latest/download/mmw-linux-amd64
# 添加执行权限
chmod +x mmw-linux-amd64
# 运行
./mmw-linux-amd64# 下载 mmw-windows-amd64.exe
# 双击运行或在命令行中执行
.\mmw-windows-amd64.exe- 启动程序后,访问
http://localhost:8080 - 首次访问会显示初始化页面
- 填写管理员账号信息:
- 用户名
- 密码
- 昵称
- 邮箱(可选)
- 头像地址(可选)
- 完成初始化后,使用管理员账号登录
- 以管理员身份登录
- 进入「探针管理」页面
- 选择探针类型(Nezha/DStatus/Komari)
- 填写探针地址(如:
https://probe.example.com) - 添加服务器配置:
- 服务器 ID:探针中的服务器标识
- 服务器名称:显示名称
- 流量计算方式:
up- 仅上行流量down- 仅下行流量both- 双向流量
- 月流量限额(GB):服务器月流量上限
- 保存配置
# 服务器端口(默认 8080)
PORT=8080
# 数据库路径(默认 ./data/traffic.db)
DATABASE_PATH=./data/traffic.db
# JWT 密钥(建议自定义)
JWT_SECRET=your-secret-key
# 日志级别(debug/info/warn/error)
LOG_LEVEL=info程序启动时会自动创建 SQLite 数据库,默认路径为 ./data/traffic.db。数据库包含:
- 用户表
- 探针配置表
- 流量记录表
- 订阅配置表
- Go 1.24+
- SQLite (modernc.org/sqlite)
- Gorilla WebSocket
- JWT 认证
- React 19
- TypeScript
- TanStack Router
- TanStack Query
- Tailwind CSS
- Recharts
# 安装依赖
go mod download
# 运行开发服务器
go run cmd/server/main.go# 进入前端目录
cd miaomiaowu
# 安装依赖
npm install
# 启动开发服务器
npm run dev
# 构建生产版本
npm run build# 构建前端
cd miaomiaowu && npm run build && cd ..
# 构建 Linux 版本
GOOS=linux GOARCH=amd64 go build -o build/mmw-linux-amd64 ./cmd/server
# 构建 Windows 版本
GOOS=windows GOARCH=amd64 go build -o build/mmw-windows-amd64.exe ./cmd/servermiaomiaowutraffic-info/
├── cmd/
│ └── server/ # 服务器入口
│ ├── main.go # 主程序
│ └── cors.go # CORS 配置
├── internal/
│ ├── auth/ # 认证模块
│ ├── handler/ # HTTP 处理器
│ ├── storage/ # 数据库操作
│ └── web/ # 嵌入的前端资源
├── miaomiaowu/ # 前端项目
│ ├── src/
│ │ ├── components/ # React 组件
│ │ ├── routes/ # 路由页面
│ │ ├── stores/ # Zustand 状态管理
│ │ └── lib/ # 工具函数
│ └── package.json
├── data/ # 数据目录
│ └── traffic.db # SQLite 数据库
└── build/ # 构建输出
- 修改默认密钥:部署前务必修改 JWT_SECRET
- 使用 HTTPS:生产环境建议配置 SSL 证书
- 定期备份:定期备份
data/traffic.db数据库文件 - 防火墙配置:仅开放必要端口
- 密码强度:设置强密码并定期更换
- 检查探针地址是否正确
- 确认探针服务正常运行
- 检查网络连通性和防火墙设置
- 检查浏览器是否跨域
- 确认探针配置中的服务器 ID 正确
- 检查探针 WebSocket 连接状态
- 查看服务器日志排查错误
- 确认已配置订阅规则
- 检查规则 YAML 格式是否正确
- 验证客户端类型匹配
如果忘记密码,可以删除数据库重新初始化:
# 备份数据库(可选)
cp data/traffic.db data/traffic.db.bak
# 删除数据库
rm data/traffic.db
# 重启程序,将显示初始化页面这个错误通常是由于 SQLite WAL 模式需要 CGO 支持。已在最新版本修复:
- Dockerfile 已启用 CGO 编译
- 添加了必要的运行时库依赖
- 建议使用 docker-compose.yml 部署并正确挂载
/app/data和/app/subscribes卷
如果仍遇到问题:
# 确保数据目录有足够的权限和磁盘空间
chmod 755 ./data ./subscribes
# 使用 docker-compose 重新构建
docker-compose build --no-cache
docker-compose up -dMIT License
欢迎提交 Issue 和 Pull Request!
- 问题反馈:GitHub Issues
- 功能建议:GitHub Discussions
- 🛠️ vless节点转v2ray时servername没有转换成sni
- 🌈 添加使用帮助页面
- 🌈 节点编辑代理组支持拖动排序节点管理和生成订阅支持按标签筛选,支持批量删除节点和更新节点标签
- 🌈 导入节点时支持自定义标签,生成订阅支持标签筛选,现在筛选后默认选中
- 🌈 编辑代理组时增加一个添加到所有代理组的可释放区域
- 🛠️ 修复探针管理类型无法从接口同步
- 🌈 添加自定义规则配置
- 🌈 节点编辑代理组支持拖动排序
- 🌈 节点管理支持配置链式代理的节点
- 🌈 使用外部订阅时支持自定义UA
- 😊 顶栏改为flex定位,始终显示在页面上方
- 🌈 订阅管理编辑订阅时支持重新分配节点
- 😊 优化节点拖动页面,现在用节点支持整组拖动
- 🌈 增加版本号显示与新版本提示角标
- 😊 优化链式代理配置流程,代理组现在也可拖动
- 🌈 新增系统设置
- 🌈 增加获取订阅时同步外部订阅节点的功能
- 🌈 增加外部订阅流量汇总
- 🌈 增加节点与探针服务器绑定与开关
- 🌗 集成substore订阅转换功能(beta)
- 🌈 readme移除docker的volume配置,防止小白没有权限启动失败
- 🌈 新增arm64架构包
- 🌈 节点分组支持链式代理
- 🌈 支持哪吒V0探针
- 🌈 节点列表支持转换为IP(v4或v6)
- 🌈 节点名称与订阅名称、说明、文件名支持修改
- 🛠️ 添加节点时vless丢失spx参数,hy2丢失sni参数
- 🛠️ 节点分组删除代理组后,rules中依然使用
- 🛠️ 修复docker启动问题
- 🎨 新增手动分组功能,支持拖拽式节点分组
- 📦 新增节点管理功能
- 🔧 新增订阅生成器(支持自定义规则和模板)
- 📱 优化移动端响应式布局
- 🚀 前端依赖清理,减小打包体积
- ⭐ 一键安装脚本支持更新
- 🎨 支持导入外部clash订阅与上传yaml文件
- 🐛 修复若干 UI 显示问题
- 🔐 增强安全性,添加管理员权限控制
- 🎯 优化规则选择器UI
- 📝 改进自定义规则编辑器
- 🐛 修复数据库连接问题
- 初始版本发布
- 支持 Nezha/DStatus/Komari 探针
- 流量监控与订阅管理
- 用户权限管理
- 首次启动初始化向导