Releases: Kaiyuan/go4wol
Releases · Kaiyuan/go4wol
v3.0.1
v3.0.0
优化重构项目代码
1. 代码重构与模块化
将原本冗长的单体 main.go(约 1100 行)拆分为多个功能模块,提高了代码的可维护性和清晰度:
main.go: 入口文件,负责环境加载和路由分发。models.go: 数据结构定义。database.go: 数据库初始化及 CRUD 操作。auth.go: 实现 JWT 无状态认证。wol.go: Wake-on-LAN 核心逻辑。handlers.go: 包含 API 处理器及嵌入式 PWA 前端内容。
2. 认证状态持久化
- JWT 技术:引入了基于 HMAC-SHA256 的简化 JWT 认证。
- 重启不失效:秘钥由管理员密码派生,只要密码不变,服务器重启后之前的登录状态依然有效。
- 安全性:令牌包含 7 天过期时间,并在前端实现了自动过期检测。
3. 前端界面美化 (Rich Aesthetics)
- 毛玻璃设计:采用现代化的 Glassmorphism 风格,搭配深色模式背景渐变。
- 交互优化:
- 登录状态实时校验:页面加载时自动通过
/api/verify验证身份。 - 自动登出:任何 API 返回
401时自动清除本地存储并跳转回登录页。 - 加载动画与提示:操作反馈更直观。
- 登录状态实时校验:页面加载时自动通过
2.0.1
优化前端页面
- ✅ 添加PWA前端界面
- ✅ 集成用户认证系统
- ✅ SQLite数据库存储
- ✅ 设备管理功能
- ✅ 端口改为52133
- ✅ 项目重命名为Go4WOL
Docker Compose 部署
version: '3.8'
services:
go4wol:
build: .
container_name: go4wol
restart: unless-stopped
network_mode: host # 使用host网络模式,确保能够发送广播包
# 注意:使用host网络模式时,ports映射会被忽略
ports:
- "52133:52133" # 在host网络模式下这行会被忽略,但保留以备切换到bridge模式
environment:
- PORT=52133
- ADMIN_PASSWORD=your_secure_password # 请修改为安全的密码
- TZ=Asia/Shanghai
volumes:
- ./data:/data:rw # 挂载数据目录到宿主机,确保读写权限
user: "1000:1000" # 使用与容器内相同的用户ID
labels:
- "traefik.enable=true"
- "traefik.http.routers.go4wol.rule=Host(`go4wol.local`)"
- "traefik.http.services.go4wol.loadbalancer.server.port=52133"
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
image: kaiyuan/go4wol:labels
# 如果不能使用host网络模式,请使用以下配置
# services:
# go4wol:
# build: .
# container_name: go4wol
# restart: unless-stopped
# ports:
# - "52133:52133"
# environment:
# - PORT=52133
# - ADMIN_PASSWORD=your_secure_password
# - TZ=Asia/Shanghai
# volumes:
# - ./data:/data
# networks:
# - go4wol-network
# privileged: true # 可能需要特权模式来发送广播包
#
# networks:
# go4wol-network:
# driver: bridge