3.2 KiB
3.2 KiB
同步服务端部署(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/.json 每用户九张表数据 + 墓碑
- backups/<日期>/ 每日自动备份(启动与每次注册表变更也会触发,保留最近 14 天)
- 更新版本: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(默认即是)。 登录即自动绑定云端并全量拉取;本机仅存加密的自动登录凭据,退出登录后需重新输入密码。