📘 新手请看:《服务器登录与运行查看手册 · 图文步骤版》——手把手教你登录服务器、看懂黑色命令行窗口里的系统运行状态。
系统三层架构:腾讯文档智能表格 = 数据库 | 本服务器 nginx = 网页应用(2026-08-29 起全部自托管,CloudStudio 仅作历史备用) | 云服务器 cron = 搬运工(同步脚本) | 云端 launcher = 手动执行入口。
同步任务已全部迁移至腾讯云轻量服务器,cron 定时 + 立即运行按钮双重保障,主机关闭也能正常运作。
信息更新日期:2026-09-04
| 模块 | 角色 / 职责 |
|---|---|
腾讯文档智能表格file_id: dTGXLbXSAFDV | 数据核心——所有业务数据真正的「家」。三车间/一车间生产、入库流水、出库流水、仓库、模具台账、样品档案、客户导航等 14+ 张表都在这里。谁产生数据、谁展示数据,都围绕它转。 |
云服务器110.40.188.103 | 执行核心——系统的「发动机」,24 小时常驻。内部四层:nginx(8843 端口 HTTPS,大门:反代 launcher + 托管导航页静态文件)→ systemd 启动器(内部 8765 端口,管家:验证口令 888888、拉起脚本、跟踪状态、开机自启)→ cron(闹钟:7 项定时任务)→ 12 个同步脚本(工人:读生产表 → 写回流水量表/仓库/台账)。 |
CloudStudio 云应用*.app.workbuddy.link | 展示层——导航中心、三车间/一车间/出库/报价打印中心、3D 云仓库、3D 模具仓库、客户 3D 地图。全是部署在云端的静态页面,任何设备浏览器直接打开。 |
本地主机(你的电脑)现在只承担开发和维护职责:改脚本、改页面、通过 SSH 连服务器部署。它关机时——cron 照常跑、立即运行照常点、数据照常同步,整套系统零影响。只有「改代码、发新版本」这种事需要它开机。换电脑/用手机:浏览器打开导航页即可,一切功能都在云端,本地工作空间目录和服务器 cron 不跟随账号,改代码需在新电脑重建工作目录。
| 场景 | 过程 |
|---|---|
| 同事完成生产工单 | 什么都不用做,下个整点 cron 自动同步入库 |
| 想立刻同步 | 打开导航页 → 点对应脚本「立即运行」→ 弹窗看实时运行日志 |
| 换电脑 / 用手机 | 浏览器打开导航页即可(CloudStudio 或服务器直连地址均可) |
| 出问题排查 | 本页(服务器运维端口)有 SSH 诊断命令和 cron 表;导航页顶栏有 launcher 在线状态 |
一句话总结:文档存数据,服务器干活,浏览器只负责「看」和「点」——所以主机(本页读者)关机、换电脑、多人同时用,系统都不受影响。
无需登录主机,在浏览器里就能立即触发任一同步脚本:
| 入口 | 说明 |
|---|---|
| 主入口(域名,推荐) | https://nav.caninind.com(2026-09-04 上线,手机/电脑/微信通用,Let's Encrypt 正式证书无警告,直接打开无需登录) |
| 备用入口(IP) | https://110.40.188.103:8843(自签证书,首次访问会显示警告,选择「继续访问」即可) |
| 功能 | 导航中心首页 + 9 个自动化程序「立即运行」按钮 + 实时输出面板(每 2 秒轮询) |
| 认证 | 两个入口一致:页面口令 888888(打印页/运维页各自弹口令框,API 走 token)。域名入口曾短暂使用 HTTP Basic 账号门禁,因微信等手机内置浏览器不兼容(显示错误页)已于 2026-09-04 当日移除,安全等级与 IP 入口完全一致 |
| 实现原理 | 服务器 server_launcher.py(127.0.0.1:8765,仅本机)+ nginx 反代(nav.caninind.com:443 正式证书 / 8843 自签证书) + systemd 常驻;证书由 acme.sh 自动续期 |
| 防火墙 | 腾讯云控制台已放行 TCP 443 / 8843 入站 |
| 项目 | 详情 |
|---|---|
| 公网 IP | 110.40.188.103 |
| 云厂商 / 型号 | 腾讯云轻量应用服务器(2核 2G 内存 / 50G 磁盘 / 300G 流量) |
| 操作系统 | OpenCloudOS 9.2(兼容 CentOS / RHEL,包管理用 yum) |
| 登录方式 | SSH 端口 22 | 用户 root | 密码 |
| 资源占用(部署时) | CPU 约 2% / 内存约 400MB / 磁盘已用 12.5G —— 无需升级 |
| API 密钥 | 当前无需腾讯云 API 密钥(SSH 密码直连即可);今后如需 API 管理服务器,新建密钥时选择 QcloudLighthouseFullAccess 权限,用完建议禁用 |
| 路径 | 用途 |
|---|---|
/opt/canyin_scripts/ | 全部同步脚本主目录(本地 F:\工作空间\灿因全流程管理系统_scripts 的服务器副本) |
/opt/canyin_scripts/server_deploy/ | 部署组件:run_sync.py(统一任务入口)、tencentdocs.py(直连腾讯文档开放 API 的 MCP 客户端) |
/opt/canyin_scripts/logs/ | 各任务运行日志(保留 30 天,每周日自动清理) |
/etc/canyin.env | 环境变量:腾讯文档 Access Token(TDOC_ACCESS_TOKEN)等 |
/etc/cron.d/canyin-sync | 定时任务定义文件(含日志轮转) |
| 任务 | 时间 | 说明 |
|---|---|---|
| 仓库库存重算 | 08:00 | 入库流水 + 出库流水 → 重算仓库(车间订单不再自动入库) |
| 一车间胶料同步 | 08:02 | 胶料入库流水 + 出库流水 → 重算胶料库存(入库累计/已领用) |
| 三车间打印中心刷新 | 08:04 | 拉取三车间生产 → 重新生成打印页 + 补写/纠正打印链接(打印页 /print_san) |
| 一车间打印中心刷新 | 08:06 | 拉取一车间生产 → 重新生成打印页 + 补写打印链接(打印页 /print_yi) |
| 模具台账同步 | 08:08 | 三车间模具加工(是否完成=完成)+ 外协开模记录(状态=完成)→ 模具台账;状态=退回 → 台账标记退回 |
| 3D 云仓库同步 | 08:10 | 仓库表库存位置 → 3D 货架数据(页面 /warehouse3d) |
| 3D 模具仓库同步 | 08:12 | 模具台账货位 → 3D 模具货架数据(页面 /mould3d) |
| 采购刷新 | 08:14 | 采购明细自动带出 + 金额计算 + 打印页(/print_po) |
| 销售刷新 | 08:16 | 合同编号自动补号(CN-)+ 明细带出(仅填空)+ 金额计算 + 打印页(/print_so) |
| 报价刷新 | 08:18 | 报价明细刷新(名称/图号带出,仅填空)+ 打印页(/print_quote) |
| 关键表每日备份 | 08:20 | 19 张关键表全量导出 JSON → /backup/canyin/日期/,保留 30 天 |
| 日志清理 | 每周日 02:00 | 删除 30 天前的运行日志 |
登录服务器(Windows 可用 PowerShell / CMD 自带 ssh,或任意 SSH 工具):
ssh root@110.40.188.103
查看各同步任务实时日志:
ssh root@110.40.188.103 "tail -f /opt/canyin_scripts/logs/*.log"
查看定时任务定义 / 手动运行某个同步任务(以仓库为例):
cat /etc/cron.d/canyin-sync source /etc/canyin.env && cd /opt/canyin_scripts && python3 server_deploy/run_sync.py warehouse
任务名对照:warehouse(仓库)、yi_workshop(一车间胶料)、mould_ledger(模具台账)、warehouse3d(3D仓库)、quote(报价)、purchase(采购)。
# 查看 launcher 服务状态
systemctl status canyin-launcher
# 实时查看 launcher 日志
journalctl -u canyin-launcher -f
# 测试 API(应返回 {"ok": true, ...})
curl -sk https://127.0.0.1:8843/api/ping
# 触发一次仓库同步(无需浏览器)
curl -sk -X POST https://127.0.0.1:8843/api/run \
-H "X-Access-Token: 888888" \
-H "Content-Type: application/json" \
-d '{"id":"warehouse"}'
# 重启 launcher(配置变更后)
systemctl restart canyin-launcher
# 查看 nginx 反代日志
tail -f /var/log/nginx/canyin_*.log
canyin_access_token),同一浏览器输一次全站通用,兼容手机/微信。服务器 .tmp 下 6 个页面模板已同步打补丁,cron 重新生成不丢失。备份:本地 .tmp/backup_gate_20260904/、服务器 /opt/canyin_scripts/.tmp/backup_gate_20260904/。/etc/nginx/.htpasswd_canyin 备用(配置备份 canyin_domain.conf.bak0904-2)。/etc/nginx/.htpasswd_canyin)→ 80 端口 301 跳转 443。导航页全部卡片链接已切换为域名版。手机浏览器访问正常(正式证书无警告)。备用 IP 入口 8843 保留不动。firewall-cmd --permanent --add-port=8843/tcp),公网 HTTPS 访问验证通过。</script> 闭标签导致整段 JS 未执行),12 个「立即运行」卡片 + 11 个链接卡片全部恢复。https://110.40.188.103:8843/print_yi 与 /customer_map/;一车间生产表 3 条打印链接已改写;新增 cron 每小时 2 分自动刷新打印页。客户导航表「端口」列已被删除,地图入口仅保留导航页。deploy_to_server.py 一键部署;② launcher 新增 /api/last_runs,导航页自动化卡片显示红绿灯(定时/一键运行状态与时间);③ 全部打印页与 3D 页自托管(/print_san /print_out /print_quote /print_po /warehouse3d /mould3d),三车间 80 条打印链接已重写为服务器地址,摆脱 CloudStudio 依赖;④ 关键表每日 00:30 自动备份至 /backup/canyin/(18 表,保留 30 天);⑤ 三车间打印页新增每小时 25 分自动刷新。cron 任务现为 11 项。bSHIv3 +《销售明细(试用)》dzMesb(销售单号手动编辑不自动生成,明细关联样品档案);sync_sales.py 自动带出产品名称/规格型号 + 计算含税金额/总价;新增销售订单打印中心 https://110.40.188.103:8843/print_so/(口令 888888)+ cron 每日 00:20 自动刷新 + 导航页打印入口与「销售子系统一键刷新」卡片。cron 任务现为 12 项。