Django 多个 worker 内存占用 1-2 GB,换成 Bun 单进程后约 25 MB, 同时去掉 Postgres 和 Redis,只剩 Caddy + Bun 两个容器。 - server/:Hono + bun:sqlite + Bun 原生 WebSocket,接口与原 django-ninja 保持兼容;表结构、时间/UUID 存储格式、密码哈希与 Django 一致,旧数据可直接使用 - 评分加权、贝叶斯平滑、成绩册的计算结果与原实现逐位一致(复刻 Python round/sum) - scripts/:Postgres → SQLite 迁移、新建超管、提示词层级标注、重算分数 - 前端:Django Admin 去掉后,用户新建/修改改为页面内弹窗; 非超管的挑战公开按钮置灰 - 权限不足返回 JSON 403(原来是重定向到不存在的登录页) - docker-compose / Caddyfile / dev.sh / CLAUDE.md 更新,删除 AGENTS.md - 服务器切换步骤见 docs/migrate-to-bun.md Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
37 lines
892 B
YAML
37 lines
892 B
YAML
services:
|
|
webpreview-web:
|
|
image: caddy:alpine
|
|
container_name: webpreview-web
|
|
volumes:
|
|
- ./build:/usr/share/caddy:ro
|
|
- ./media:/media
|
|
- ./Caddyfile:/etc/caddy/Caddyfile:ro
|
|
ports:
|
|
- 8081:80
|
|
depends_on:
|
|
- webpreview-api
|
|
restart: unless-stopped
|
|
|
|
webpreview-api:
|
|
build: server
|
|
container_name: webpreview-api
|
|
env_file:
|
|
- .env
|
|
volumes:
|
|
- ./sqlite:/app/data
|
|
- ./media:/app/media
|
|
restart: unless-stopped
|
|
|
|
# 只在从旧版 Postgres 迁移数据时使用:
|
|
# docker compose --profile migrate up -d webpreview-db
|
|
# docker compose run --rm webpreview-api bun scripts/migrate-from-postgres.ts
|
|
webpreview-db:
|
|
image: postgres:17-alpine
|
|
container_name: webpreview-db
|
|
profiles: ["migrate"]
|
|
volumes:
|
|
- ./data:/var/lib/postgresql/data
|
|
env_file:
|
|
- .env
|
|
restart: "no"
|