diff --git a/server/DEPLOY.md b/server/DEPLOY.md index d17ce24..877b54c 100644 --- a/server/DEPLOY.md +++ b/server/DEPLOY.md @@ -1,62 +1,45 @@ -# 同步服务端部署指南(Docker + Caddy 自动 HTTPS) +# 同步服务端部署(服务器 /opt,Docker + Caddy) -## 一、部署同步服务 +服务器现状:Caddy 占用 80/443,各服务容器接入 mynet 网络,Gitea SSH 在宿主机 222 端口。 -1. 上传 server 目录到服务器(如 ~/internlog-sync/) -2. 启动: +## 一、获取部署文件并启动 - cd ~/internlog-sync - docker compose up -d --build + cd /opt + git clone https://gitea.linyux.cn/root/daywork.git daywork 2>/dev/null || (cd daywork && git pull) + cd daywork/server + docker compose up -d --build -3. 验证:curl http://127.0.0.1:3780/api/health 应返回 {"ok":true} +启动后容器 internlog-sync 加入 mynet,Caddy 可用容器名直接访问。 -数据保存在 ./data/(用户注册表 + 每用户数据文件),整目录复制即备份。 +## 二、修改 Caddyfile -## 二、Caddy 反向代理(自动申请与续期 HTTPS 证书) - -### 方式一:独立子域名(推荐) - -先在 DNS 添加 A 记录:sync.linyux.cn → 124.221.192.176 - -Caddyfile: - - sync.linyux.cn { - reverse_proxy 127.0.0.1:3780 - } - -客户端同步地址填:https://sync.linyux.cn - -### 方式二:复用现有域名路径(不新增 DNS 记录) - -在 gitea.linyux.cn 现有 Caddy 站点块中加入 handle_path(原有 Gitea 反代配置保持不变): +在 /opt/caddy 下的 Caddyfile 中,把 gitea.linyux.cn 站点改为(新增两个 handle 块): gitea.linyux.cn { handle_path /sync-api/* { - reverse_proxy 127.0.0.1:3780 + reverse_proxy internlog-sync:3780 + } + handle { + reverse_proxy gitea:3000 } - # ...原有 Gitea 配置 } -客户端同步地址填:https://gitea.linyux.cn/sync-api +其余站点不动。 -### 启动 Caddy +## 三、重载并验证 -- 宿主机已运行 Caddy:修改 Caddyfile 后 caddy reload 即可(参考 server/Caddyfile.example) -- 未运行 Caddy:docker compose 里已附注释掉的 caddy 服务段,取消注释后 docker compose up -d + docker exec caddy caddy reload --config /etc/caddy/Caddyfile + curl https://gitea.linyux.cn/sync-api/api/health -注意:证书自动申请要求 80/443 端口公网可达,且域名已解析到本服务器。 +应返回 {"ok":true}(公网可达,可从本机验证)。 -## 三、客户端配置 +## 四、客户端 -应用 → 设置 → 多端数据同步: +应用 → 设置 → 多端数据同步:地址填 https://gitea.linyux.cn/sync-api,注册云端账号后同步。 +手机浏览器打开同一地址登录,添加到主屏幕后即为手机端应用。 -1. 同步服务地址:https://sync.linyux.cn(或方式二的 https://gitea.linyux.cn/sync-api) -2. 注册云端账号(或填写已注册的账号密码) -3. 立即同步;此后登录状态下每 5 分钟自动同步 +## 五、数据与运维 -## 四、接口 - -- POST /api/auth/register {username, password} -- POST /api/auth/login {username, password} -- POST /api/sync Authorization: Bearer ,body: {tables, tombstones} -- GET /api/health +- 数据目录:/opt/daywork/server/data(用户注册表 + 每用户数据),打包即备份 +- 更新版本:cd /opt/daywork && git pull && cd server && docker compose up -d --build +- 接口:POST /api/auth/register、POST /api/auth/login、POST /api/sync、GET /api/health diff --git a/server/docker-compose.yml b/server/docker-compose.yml index 61c0fbb..b5bff9b 100644 --- a/server/docker-compose.yml +++ b/server/docker-compose.yml @@ -6,13 +6,8 @@ services: volumes: - ./data:/app/data networks: - - proxy-net + - mynet -# 让 Caddy 能用容器名 internlog-sync 直接访问本服务。 -# 请先查出 Caddy 与 gitea 所在的共享网络名: -# docker inspect gitea --format '{{range $k,$v := .NetworkSettings.Networks}}{{$k}} {{end}}' -# 把下面 name 替换成查到的网络名。若 Caddy 与本服务同属一个 compose 项目则可删掉 networks 配置。 networks: - proxy-net: - name: proxy-net + mynet: external: true