Skip to content

开发与构建

服务端

cd server
bun install
bun run dev

生产构建:

bun run build

构建产物默认在 server/dist。src/libs 会复制到 exe 同目录的 libs/,其中包含 ExifTool。

配置

配置文件:server/config.jsonc

{
  "serve": {
    "host": "127.0.0.1",
    "port": 3000,
    "bodyLimit": 12582912,
    "webui": {
      "enabled": true
    }
  },
  "storage": {
    "databaseFile": "D:/tmp/js/js.db",
    "filesDirectory": "D:/tmp/js/hash-file-storage",
    "cacheDirectory": "D:/tmp/js/tm"
  }
}

测试

cd server
bun test

图片元数据清理测试使用样例文件:

server/test/IMG_20261105_071902.HEIC

文档

文档项目位于 safeDocs/docs,使用 MkDocs Material + uv。

cd docs
uv sync
uv run mkdocs serve

Windows 下也可以直接运行 serve.cmd 热启动。

构建:

bun run build

或直接运行 MkDocs:

uv run mkdocs build -f mkdocs.yml

输出目录:safeDocs/docs/dist。

也可以从 safeDocs 根目录直接指定配置:

uv run --project docs mkdocs serve -f docs/mkdocs.yml
uv run --project docs mkdocs build -f docs/mkdocs.yml

mkdocs.yml 中的 docs_dir 和 site_dir 直接指定源目录和输出目录,不需要复制或移动文件。开发时 mkdocs serve 会直接监听 docs/docs 并自动刷新。

导航由 mkdocs-awesome-nav 自动生成,不需要在 mkdocs.yml 里维护每个页面的路径。新增页面只要创建 Markdown 文件即可;如果要调整某个目录的标题或排序,只在该目录添加 .nav.yml。

发布到 Cloudflare Pages

docs 目录是 Bun + Wrangler 项目:

cd docs
bun install
bun run push

bun run push 会先构建 MkDocs 到 docs/dist,再执行:

bun x wrangler pages deploy dist --project-name safe-docs --branch master

显式指定 --branch master 后,Wrangler 不会再向外层 Git 仓库探测 HEAD,也不需要产生任何 Git Commit。

如果 Cloudflare 上的 Pages 项目名不是 safe-docs,同时修改 docs/package.json 和 docs/wrangler.toml。