docs: 项目结构调整 — 入口瘦身至 cmd/ydropbox,装配归 internal/app

This commit is contained in:
2026-08-26 20:32:00 +08:00
parent b55c5bb6b5
commit bfcaf489ba
@@ -135,7 +135,7 @@ CREATE TABLE shares (
## 7. 部署
1. **构建**: `CGO_ENABLED=0 go build -o yDropbox .`,纯静态单文件。
1. **构建**: `CGO_ENABLED=0 go build -o yDropbox ./cmd/ydropbox`,纯静态单文件。
2. **运行**: systemd 服务,`ExecStart=/usr/local/bin/yDropbox listen --addr=127.0.0.1:8999`,`YDROPBOX_TOKEN` 经 systemd 环境或 credentials 注入;数据目录指向服务器上固定路径(如 `/var/lib/ydropbox/workspace`,`--workspace` 可配)。
3. **反代**: nginx 站点将 HTTPS 子域名反代至 `127.0.0.1:8999`,配置 `client_max_body_size 100m`,certbot 签发续期证书。
4. **DNS**: 子域名 A 记录指向反代服务器公网 IP(具体域名/IP 由部署时确定,不入仓库文档)。
@@ -144,15 +144,22 @@ CREATE TABLE shares (
```
yoresee_dropbox/
├── main.go # 入口: flag/env 解析、路由注册、启动 scanner
├── cmd/ydropbox/main.go # 入口: 仅 flag/env 解析 → app.Run(cfg)
├── go.mod / go.sum
├── internal/
│ ├── app/app.go # 装配: 开库、建路由(server.New)、起 scanner、监听
│ ├── server/
│ │ ├── server.go # New(): 路由注册
│ │ ├── auth.go # 登录/session/锁定
│ │ ├── files.go # 上传/列表/下载/删除
│ │ └── share.go # 分享创建/撤销/公开访问
│ ├── store/store.go # SQLite 层 (modernc.org/sqlite)
│ └── scanner/scanner.go # inbox+outbox 目录对账
├── web/ # go:embed:index.html, style.css, app.js, alpine.min.js(vendor)
├── web/
│ ├── web.go # //go:embed 挂载点,导出 FS
│ ├── index.html
│ ├── style.css
│ ├── app.js
│ └── alpine.min.js # vendor
└── workspace/ # 运行期生成(gitignore): inbox/, outbox/, .ydropbox/db.sqlite
```