Skip to content

Releases: Kaiyuan/go4wol

v3.0.1

12 Apr 17:04

Choose a tag to compare

修复 PWA 图标

v3.0.0

11 Apr 07:46

Choose a tag to compare

优化重构项目代码

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

21 Sep 20:11

Choose a tag to compare

优化前端页面

  • ✅ 添加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

2.0

20 Sep 20:36

Choose a tag to compare

2.0

增加 PWA 应用,直接可以在页面保存设备信息,点击直接唤醒对应设备。

1.0

16 Sep 13:24

Choose a tag to compare

1.0

1.0