Files
daywork/server/DEPLOY.md
T

90 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 同步服务端部署(daywk.linyux.cn 子域名方案)
服务端是整个系统的**唯一数据权威**:认证、九张业务表、用户管理、每日自动备份都在这里。
客户端(桌面 / 网页 / 安卓)只是实时缓存,详见仓库根 README。
## 一、DNS 解析(先做)
在域名服务商处添加 A 记录:
daywk.linyux.cn → 124.221.192.176
## 二、获取部署文件并启动服务
cd /opt
git clone https://gitea.linyux.cn/root/daywork.git daywork 2>/dev/null || (cd daywork && git pull)
cd daywork/server
rm -rf data
docker compose up -d --build
注:rm -rf data 清除开发期残留的测试密钥,服务端首次启动会自动生成全新的签名密钥。
容器 internlog-sync 加入 mynet 网络(与 caddy 同网络,Caddy 可用容器名访问)。
## 三、Caddyfile 新增站点
在 /opt/caddy 的 Caddyfile 顶部(或任意位置)添加:
daywk.linyux.cn {
reverse_proxy internlog-sync:3780
}
其余站点不动。重载:
docker exec caddy caddy reload --config /etc/caddy/Caddyfile
Caddy 会自动为 daywk.linyux.cn 申请并续期 HTTPS 证书(需 DNS 已生效且 80/443 可达)。
## 四、验证
curl https://daywk.linyux.cn/api/health
应返回 {"ok":true}。
## 重要:该域名同时是应用入口
同步服务容器同时托管了网页应用本体(daywork 仓库 intern-log/dist 的构建产物,随仓库提交以便容器直接 COPY)。
手机与电脑浏览器直接打开 https://daywk.linyux.cn 就是应用(可添加到主屏幕作为 PWA);/api 路径为数据接口。
## 五、账号体系
- 注册 / 登录全部经由服务端(POST /api/auth/register、/api/auth/login),密码仅存 PBKDF2 哈希
- **管理员:用户名 xionglin**(服务启动时自动赋予 role=admin,存量注册表也会自动迁移)
- 管理员专用接口(客户端「用户管理」页使用,非管理员一律 403):
- GET /api/admin/users 用户列表(含数据量)
- POST /api/admin/users/create 新建账号
- POST /api/admin/users/password 重置任意用户密码
- POST /api/admin/users/delete 删除账号及其全部数据(不能删自己)
- 客户端"登录密码修改"对应 POST /api/auth/password;"删除此用户"对应 POST /api/auth/delete
## 六、数据与运维
- 数据目录:/opt/daywork/server/data
- registry.json 用户注册表(用户名 / 角色 / PBKDF2 哈希)
- users/<id>.json 每用户九张表数据 + 墓碑
- backups/<日期>/ **每日自动本地备份**(启动与每次注册表变更也会触发,保留最近 14 天)
- **异地备份(推荐开启)**:在 docker-compose.yml 的 internlog-sync 服务加环境变量,备份自动上传腾讯云 COS:
environment:
COS_SECRET_ID: <你的 SecretId>
COS_SECRET_KEY: <你的 SecretKey>
COS_BUCKET: <桶名-AppId,如 footprint-1435255581>
COS_REGION: <地域,如 ap-guangzhou>
开启后每次本地备份都会同步上传(含 latest/ 覆盖版);上传状态可随时查看:
curl https://daywk.linyux.cn/api/health
返回 backup: "ok" / "failed: ..." / "local-only"(未配置)。
- 会话安全:修改密码或管理员重置密码后,该用户**所有旧登录令牌立即失效**(各端自动用保存的凭据重新登录,用户无感知)
- 登录防爆破:同一 IP 十分钟内密码错误满 10 次将临时拒绝(429)
- 更新版本:cd /opt/daywork && git pull && cd server && docker compose up -d --build
- 同步协议:POST /api/sync(Bearer token;推送差异并返回权威全量快照)
- 实时通知:GET /api/events?token=...(SSE,同账号任意端有变更即广播 change)
- 手工备份:直接打包 server/data 目录即可(纯 JSON 文件)
## 七、客户端
应用 → 设置 → 多端数据同步:地址填 https://daywk.linyux.cn(默认即是)。
登录即自动绑定云端并全量拉取;本机仅存加密的自动登录凭据,退出登录后需重新输入密码。