Files
sincos.cc-website/deploy/DEPLOY.md
T
admin d4ffec7f18 feat: 全站改版为科技首页风格,重构导航与产品页面
- 品牌更名 Easy Data Collection
- 导航重构:前沿技术研究 / 工具开发 / 资源中心 / License / 博客(含下拉菜单)
- 新增前沿技术研究聚合页、工具开发产品页与 6 个产品独立介绍页
- License 申请 / 查询下载 / 资源包合并为 License 中心,旧路径保留兼容
- 首页与全站样式升级为科技产品风(Apple/Wise 式)
- 博客构建脚本同步更新(新导航 + 新首页)
2026-09-29 10:52:30 +08:00

6.2 KiB
Raw Blame History

SinCos 聚合站部署手册(详细版)

  • 服务器:124.220.63.9(1Panel + OpenResty + Python)
  • 域名:sincos.cc(腾讯云备案,已解析 A 记录 → 124.220.63.9)
  • 站点形态:单站 FastAPI(:8003),根路径 = 科技首页(产品矩阵 + 研究 + 最新文章),其余为子页面

目录结构

website/                   ← 整个目录上传到服务器 /opt/website
├─ main.py                 FastAPI 主程序
├─ license.py              MAC→LIC 算法
├─ requirements.txt        依赖清单
├─ run.sh                  启动脚本
├─ static/                 前端(首页/研究/工具/License/资源中心/博客/管理后台)
└─ data/                   运行时数据(自动创建)
   ├─ requests/*.txt       申请记录(DokuWiki 式)
   ├─ licenses/*.lic       生成的授权文件
   └─ packages/            ★ 资源包(把真实资源包 zip 放这里)

第一步:准备本地文件

  1. 打包本地 website/ 目录为 website.zip(只打包目录本身,不含外层)

第二步:上传到服务器

方式 A:1Panel 网页上传 1Panel → 文件 → 进入 /opt → 上传 website.zip → 右键解压 → 得到 /opt/website/

方式 B:scp 命令行

scp -r D:\黑奴编程\网站\website root@124.220.63.9:/opt/website

第三步:服务器安装依赖

SSH 登录服务器后执行:

# 确认 python 版本(1Panel 环境一般自带 python3)
python3 --version

# 安装依赖
pip3 install -r /opt/website/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

若提示 pip3 不存在,用 python3 -m pip install -r /opt/website/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple


第四步:设置管理密码并启动

方式 A(推荐):1Panel 进程守护(图形化)

  1. 1Panel → 应用商店 → 安装 进程守护(Process Supervisor)
  2. 1Panel → 进程守护 → 创建:
    • 名称:reslib
    • 运行用户:root
    • 运行目录:/opt/website
    • 启动命令:uvicorn main:app --host 0.0.0.0 --port 8003
    • 环境变量:RESLIB_ADMIN_PASSWORD=你的强密码(管理后台密码,务必修改)
    • 开机自启:开
  3. 创建后进程状态为"运行中"即成功

方式 B:1Panel Python 项目(图形化) 1Panel → 网站 → 创建网站 → 选择 Python 项目:

  • 运行环境:选择已装的 Python
  • 项目路径:/opt/website
  • 启动命令:uvicorn main:app --host 0.0.0.0 --port 8003
  • 环境变量:RESLIB_ADMIN_PASSWORD=你的强密码

方式 C:临时测试

cd /opt/website && RESLIB_ADMIN_PASSWORD="你的强密码" python3 -m uvicorn main:app --host 0.0.0.0 --port 8003

验证服务已监听:

curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:8003/
# 应返回 200

第五步:1Panel 建站(反代)

1Panel → 网站 → 创建网站 → 反向代理:

  • 主域名:sincos.cc
  • 其他域名:留空(不需要 www)
  • 代理地址:http://127.0.0.1:8003
  • 创建

然后 网站 → 选中 sincos.cc → 网站 → 确认 OpenResty 已启用(反向代理自动走 OpenResty)。


第六步:HTTPS 证书

1Panel → 网站 → sincos.cc → HTTPS → 申请证书:

  • 类型:Let's Encrypt(推荐,自动续期)
  • 勾选:强制 HTTPS、自动续期
  • 申请成功后站点即带 https://

备案域名证书申请无特殊要求。若 Let's Encrypt 连不上,可改用腾讯云免费证书(DNSPod 申请 → 上传证书)。


第七步:防火墙放行

1Panel → 安全 → 防火墙:

  • 放行端口:80、443(8003 不需要对外开放,只在服务器内网访问)
  • 若之前有其他站点端口(30000/10000 等)保持原状

第八步:上线验证

地址 预期
https://sincos.cc/ 科技首页(Hero + 研究平台 + 工具矩阵 + 最新文章)
https://sincos.cc/research/ 前沿技术研究聚合页
https://sincos.cc/tools/ 工具开发产品页(6 个产品独立介绍页)
https://sincos.cc/license/ License 中心(申请 / 查询下载 / 资源包)
https://sincos.cc/license/apply License 申请(MAC 输入)
https://sincos.cc/license/status 查询/下载
https://sincos.cc/license/package 资源包获取(仅 approved)
https://sincos.cc/resources/ 资源中心(私有服务入口)
https://sincos.cc/blog/ 文章列表
https://sincos.cc/admin 管理后台(密码 = 第四步设置的)

第九步:数据目录初始化

mkdir -p /opt/website/data/{requests,licenses,packages}
  • packages/ 放入真实资源包文件(zip 等),文件名即展示给用户的名字
  • requests/、licenses/ 由系统自动写入

日常维护

写博客

# 本地
# 1. 新建 blog\posts\2026-xx-xx-标题.md(front matter: title/date/tags)
# 2. 构建
python -X utf8 blog\build.py
# 3. 将 website\static\home.html、about.html、blog\ 目录 上传覆盖到服务器 /opt/website/static/

备份(每周):备份 /opt/website/data/ 目录即可(申请记录 + 授权文件)

tar czf /root/reslib-backup-$(date +%F).tar.gz /opt/website/data

查看日志

# 1Panel 进程守护 → reslib → 日志

重启服务

# 1Panel 进程守护 → reslib → 重启(或先停后启)

常见问题

问题 处理
80/443 访问超时 检查防火墙放行、1Panel 网站状态
反代 502 curl http://127.0.0.1:8003/ 检查后端是否在跑;1Panel 进程守护查看 reslib 状态
证书申请失败 确认 DNS A 记录解析完成且 80 端口可访问
申请提交后 txt 乱码 确认服务器 python3 默认编码 UTF-8(正常不会)
忘记管理密码 SSH 执行 export RESLIB_ADMIN_PASSWORD=新密码 后重启服务

待办清单

  • 上传 website/ 到服务器
  • 安装依赖
  • 设置 RESLIB_ADMIN_PASSWORD
  • 启动服务并 curl 验证 200
  • 1Panel 建反代站 + SSL
  • 防火墙放行 80/443
  • 放真实资源包到 data/packages/
  • 全站访问验证