docs: 项目结构调整 — 入口瘦身至 cmd/ydropbox,装配归 internal/app
This commit is contained in:
@@ -135,7 +135,7 @@ CREATE TABLE shares (
|
|||||||
|
|
||||||
## 7. 部署
|
## 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` 可配)。
|
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 签发续期证书。
|
3. **反代**: nginx 站点将 HTTPS 子域名反代至 `127.0.0.1:8999`,配置 `client_max_body_size 100m`,certbot 签发续期证书。
|
||||||
4. **DNS**: 子域名 A 记录指向反代服务器公网 IP(具体域名/IP 由部署时确定,不入仓库文档)。
|
4. **DNS**: 子域名 A 记录指向反代服务器公网 IP(具体域名/IP 由部署时确定,不入仓库文档)。
|
||||||
@@ -144,15 +144,22 @@ CREATE TABLE shares (
|
|||||||
|
|
||||||
```
|
```
|
||||||
yoresee_dropbox/
|
yoresee_dropbox/
|
||||||
├── main.go # 入口: flag/env 解析、路由注册、启动 scanner
|
├── cmd/ydropbox/main.go # 入口: 仅 flag/env 解析 → app.Run(cfg)
|
||||||
├── go.mod / go.sum
|
├── go.mod / go.sum
|
||||||
├── internal/
|
├── internal/
|
||||||
|
│ ├── app/app.go # 装配: 开库、建路由(server.New)、起 scanner、监听
|
||||||
│ ├── server/
|
│ ├── server/
|
||||||
|
│ │ ├── server.go # New(): 路由注册
|
||||||
│ │ ├── auth.go # 登录/session/锁定
|
│ │ ├── auth.go # 登录/session/锁定
|
||||||
│ │ ├── files.go # 上传/列表/下载/删除
|
│ │ ├── files.go # 上传/列表/下载/删除
|
||||||
│ │ └── share.go # 分享创建/撤销/公开访问
|
│ │ └── share.go # 分享创建/撤销/公开访问
|
||||||
│ ├── store/store.go # SQLite 层 (modernc.org/sqlite)
|
│ ├── store/store.go # SQLite 层 (modernc.org/sqlite)
|
||||||
│ └── scanner/scanner.go # inbox+outbox 目录对账
|
│ └── 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
|
└── workspace/ # 运行期生成(gitignore): inbox/, outbox/, .ydropbox/db.sqlite
|
||||||
```
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user