WOL-GO 是一个简单轻量级的局域网远程唤醒/关机图形化管理工具。
- 🌐 Web GUI - 现代化的 Web 管理界面
- ⏰ 定时任务 - 支持 Cron 表达式设置自动唤醒/关机
- 🔍 设备扫描 - ARP 网络扫描自动发现设备
- 📊 状态监控 - 实时检查设备在线状态(ICMP/ARP/TCP)
- 🔐 认证系统 - 可选的登录保护
- 🎨 深色模式 - 支持明/暗主题切换
- 📱 响应式设计 - 完美支持移动端
- 🐧 轻量级 - Go 语言实现,资源占用极低
# 克隆仓库
git clone https://github.com/junex/wol-go.git
cd wol-go
# 启动服务
docker-compose up -d访问 http://localhost:5000 即可使用。
docker build -t wol-go:latest .
docker run -d \
--name=wol-go \
--network="host" \
-v ./appdata/db:/app/db \
-v ./appdata/cron:/etc/cron.d \
-e PORT=5000 \
-e TZ=Asia/Shanghai \
wol-go:latest| 变量 | 默认值 | 说明 |
|---|---|---|
PORT |
5000 | Web 服务端口 |
TZ |
UTC | 时区设置 |
ENABLE_LOGIN |
false | 启用登录认证 |
USERNAME |
admin | 用户名 |
PASSWORD |
admin | 密码 |
ENABLE_ADD_DEL |
true | 启用添加/删除设备功能 |
ENABLE_REFRESH |
true | 启用自动状态刷新 |
REFRESH_INTERVAL |
30 | 状态检查间隔(秒)15/30/60 |
PING_TIMEOUT |
300 | Ping 超时(毫秒) |
ARP_TIMEOUT |
300 | ARP 超时(毫秒) |
TCP_TIMEOUT |
1 | TCP 检查超时(秒) |
ARP_INTERFACE |
- | ARP 网络接口 |
| 指标 | Python 版本 | Go 版本 | 改进 |
|---|---|---|---|
| Docker 镜像 | ~150 MB | ~15 MB | 90% ↓ |
| 运行内存 | ~20 MB | ~8 MB | 60% ↓ |
| 启动时间 | ~2-3 秒 | ~0.05 秒 | 98% ↓ |
POST /api/auth/login- 用户登录POST /api/auth/logout- 用户登出GET /api/auth/status- 认证状态
GET /api/computers- 获取设备列表POST /api/computers- 添加设备PUT /api/computers/:mac- 更新设备DELETE /api/computers/:mac- 删除设备GET /api/computers/:mac/status- 检查状态POST /api/computers/:mac/wake- 唤醒设备POST /api/computers/:mac/sleep- 关机设备
GET /api/computers/:mac/crons- 获取定时任务POST /api/computers/:mac/crons/wake- 添加唤醒任务POST /api/computers/:mac/crons/sleep- 添加关机任务DELETE /api/computers/:mac/crons/wake- 删除唤醒任务DELETE /api/computers/:mac/crons/sleep- 删除关机任务
GET /api/network/arp-scan- ARP 网络扫描
wol-go/
├── cmd/server/ # 应用入口
├── internal/
│ ├── api/ # HTTP 处理器、路由
│ ├── config/ # 配置管理
│ ├── model/ # 数据模型
│ ├── service/ # 业务逻辑
│ ├── repository/ # 数据访问层
│ └── pkg/ # 网络功能、验证器
├── docker/ # Docker 配置
├── go.mod
└── docker-compose.yml
-
备份数据:
cp gptwol/appdata/db/computers.txt ./backup_computers.txt cp gptwol/appdata/cron/gptwol ./backup_cron
-
停止 Python 版本:
docker-compose down
-
启动 Go 版本:
cd wol-go docker-compose up -d -
恢复数据:
cp ./backup_computers.txt appdata/db/computers.txt cp ./backup_cron appdata/cron/wol
# 安装依赖
go mod download
# 运行
go run ./cmd/server
# 构建(需先同步 web 目录)
cp -r web/* internal/api/web/
go build -o build/wol-go ./cmd/server
# 测试
go test -v ./...注意:本项目默认在 web/ 目录下修改前端文件,构建前需要将其同步到 internal/api/web/ 目录(Docker 构建会自动执行此步骤)。
- TODO.md - 开发路线图和待办事项
- MIGRATION.md - 从 Python 版本迁移指南
- PROJECT_SUMMARY.md - 项目技术总结
- DEPLOYMENT_CHECKLIST.md - 部署检查清单
MIT License
- 原项目:GPTWOL by Misterbabou
- 当前项目:WOL-GO by junex
- 使用了 Gorilla Mux 路由器
- 前端使用了 Bootstrap 和 Font Awesome