文件功能描述:说明 WebShare 的本地开发环境、项目结构、构建测试流程和代码约定。
WebShare 是 Go 单体应用,管理后台由 Vite 和 TypeScript 构建后嵌入 Go 服务。后端负责用户、项目、版本、文件存储、分享网关和项目独立端口服务;前端负责管理工作台。
- 后端:Go,SQLite,标准库 HTTP 服务。
- 前端:Vite,TypeScript,pnpm。
- 数据:默认写入
data/,包含 SQLite 数据库和上传后的项目文件。 - Windows 交付:主程序可内嵌管理前端和项目 EXE 壳程序。
cmd/webshare/ 主程序入口
cmd/webshare-runner/ 已发布项目下载 EXE 时使用的运行壳
internal/app/ 应用服务、HTTP 路由、项目生命周期
internal/config/ 运行配置和环境变量读取
internal/store/ SQLite 存储和迁移
internal/storage/ 项目文件存储
internal/security/ 密码、会话和令牌相关逻辑
web/ 管理后台前端
scripts/ 构建脚本
docs/ 项目文档
安装前端依赖:
pnpm --dir web install构建管理后台:
pnpm --dir web build运行后端:
go run ./cmd/webshare启动后访问:
- 管理后台:
http://localhost:8080/admin/ - 分享网关:
http://localhost:8081/
首次启动会创建管理员账号。若未设置 INIT_ADMIN_PASSWORD,服务日志会输出一次性密码。
本地运行日志默认写入 data/logs/webshare.log。
运行全部测试:
go test ./...构建项目运行壳:
go build -ldflags="-H windowsgui" -o release/webshare-runner-windows-amd64.exe ./cmd/webshare-runner把运行壳复制到后端默认读取位置:
Copy-Item release/webshare-runner-windows-amd64.exe internal/runnerstub/webshare-runner-windows-amd64.exe构建内嵌运行壳的 Windows 主程序:
go build -tags embedrunner -ldflags="-H windowsgui" -o release/webshare.exe ./cmd/webshare一键构建 Windows 单 EXE:
.\scripts\build-windows-single.ps1- 使用中文协作和编写项目文档。
- 前端依赖使用 pnpm 管理。
- 单个代码文件过长或职责变复杂时,应拆分模块。
- 源代码文件开头保留文件功能描述。
- 函数注释优先说明职责、输入输出和关键约束。
- 项目通常已经启动,开发时不要反复启动服务;确认端口占用后再决定是否重启。
- 管理端口默认是
8080,分享网关默认是8081。 - 独立端口池默认是
12000-12999,用于兼容依赖根路径/的静态页面。 - 前端构建产物位于
web/dist/,后端会从该目录提供管理后台资源。 - 项目数据默认写入
data/,调试时清理该目录会同时清理用户、项目和上传文件。