From bfcaf489ba18b1c23d95745e544e342cffbdd9fe Mon Sep 17 00:00:00 2001 From: Fendy Date: Wed, 26 Aug 2026 20:32:00 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E9=A1=B9=E7=9B=AE=E7=BB=93=E6=9E=84?= =?UTF-8?q?=E8=B0=83=E6=95=B4=20=E2=80=94=20=E5=85=A5=E5=8F=A3=E7=98=A6?= =?UTF-8?q?=E8=BA=AB=E8=87=B3=20cmd/ydropbox=EF=BC=8C=E8=A3=85=E9=85=8D?= =?UTF-8?q?=E5=BD=92=20internal/app?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../superpowers/specs/2026-08-26-ydropbox-design.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/docs/superpowers/specs/2026-08-26-ydropbox-design.md b/docs/superpowers/specs/2026-08-26-ydropbox-design.md index 0c5b58f..431396a 100644 --- a/docs/superpowers/specs/2026-08-26-ydropbox-design.md +++ b/docs/superpowers/specs/2026-08-26-ydropbox-design.md @@ -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 ```