d4ffec7f18
- 品牌更名 Easy Data Collection - 导航重构:前沿技术研究 / 工具开发 / 资源中心 / License / 博客(含下拉菜单) - 新增前沿技术研究聚合页、工具开发产品页与 6 个产品独立介绍页 - License 申请 / 查询下载 / 资源包合并为 License 中心,旧路径保留兼容 - 首页与全站样式升级为科技产品风(Apple/Wise 式) - 博客构建脚本同步更新(新导航 + 新首页)
6.2 KiB
6.2 KiB
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 放这里)
第一步:准备本地文件
- 打包本地
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 进程守护(图形化)
- 1Panel → 应用商店 → 安装 进程守护(Process Supervisor)
- 1Panel → 进程守护 → 创建:
- 名称:
reslib - 运行用户:
root - 运行目录:
/opt/website - 启动命令:
uvicorn main:app --host 0.0.0.0 --port 8003 - 环境变量:
RESLIB_ADMIN_PASSWORD=你的强密码(管理后台密码,务必修改) - 开机自启:开
- 名称:
- 创建后进程状态为"运行中"即成功
方式 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/
- 全站访问验证