3.1 KiB
3.1 KiB
部署环境评估
记录 2026-07-06 对 Lightsail 实例的只读核查结果,以及 Skelet 第一版部署方式建议。
一、结论
当前 Lightsail 实例可以作为 Skelet 第一版的 2 核 2G VPS 使用,但运行环境尚未满足项目要求。
建议第一版采用系统环境部署:
Ubuntu 22.04
Nginx 80/443
Gunicorn systemd service
Python 3.12 venv
Django / Wagtail
SQLite db.sqlite3 + WAL
local media/
daily backup
暂不建议把 Docker 作为第一版主部署路径。
二、当前实例核查结果
| 检查项 | 当前状态 | 判断 |
|---|---|---|
| 实例规格 | AWS metadata 显示 t3.small;2 vCPU,约 1.9 GiB 内存 |
符合 2 核 2G 目标 |
| 系统 | Ubuntu 22.04.5 LTS | 可用 |
| 磁盘 | 根分区约 60G,已用约 4G | 足够 |
| Python | 只有 Python 3.10.12;未安装 Python 3.12 | 不符合 |
| SQLite | Python 内置 SQLite 3.37.2,JSON1 可用;未安装 sqlite3 CLI |
部分符合 |
| Nginx | 未安装 | 不符合 |
| Gunicorn | 未安装 | 不符合 |
| 80/443 | 当前无监听服务 | 符合部署前提 |
| 防火墙 | ufw inactive |
后续需按部署策略配置 |
| SSH 用户 | ubuntu 可登录;deploy 公钥登录失败 |
需创建或配置 deploy 用户 |
| Swap | 未配置 swap | 建议补 1G swap |
| 现有服务 | Docker 已运行 sub2api、Postgres、Redis、shadowsocks;占用 8080/8388 |
非干净环境,但不阻止 Nginx 80/443 部署 |
三、为什么第一版建议用系统环境
项目当前文档已明确第一版部署目标是单 VPS、Gunicorn + Nginx、SQLite,并且不把 Docker 作为必需项。
Skelet 第一版是内容目录和评测站,运行结构简单。系统环境部署更贴近当前项目边界,组件少,故障面更小:
Nginx -> Gunicorn -> Django/Wagtail -> SQLite
SQLite 放进 Docker 后,需要额外处理 volume、文件权限、WAL 文件、备份一致性和恢复路径。对当前 MVP 来说,这些复杂度没有带来足够收益。
当前实例上已经运行多个 Docker 容器,包括 Postgres 和 Redis。在 2G 内存机器上继续把 Skelet 容器化,会让资源边界和故障排查更复杂。第一版更重要的是尽快跑通 Wagtail、内容录入、SEO 验证和备份。
四、Docker 可作为后续选项
后续出现以下条件时,再重新评估 Docker:
- 迁移 PostgreSQL。
- 同机部署多个隔离服务。
- 需要 staging / production 环境一致性。
- 引入 Redis、后台 worker、任务队列等组件。
- 需要频繁迁移到其他机器或平台。
在这些条件出现前,Docker 不应成为第一版部署的默认前提。
五、上线前待补事项
- 创建并配置
deploy用户 SSH 登录。 - 安装 Python 3.12。
- 安装
sqlite3CLI、Nginx 和必要系统依赖。 - T-001 初始化项目后,创建 Python venv 并安装 Wagtail / Django 依赖。
- 配置 Gunicorn systemd service。
- 配置 Nginx 反向代理和静态 / 媒体文件服务。
- 启用 SQLite WAL。
- 配置
db.sqlite3和media/的每日备份。 - 评估现有 Docker 服务是否继续保留,避免与 Skelet 争抢 2G 内存。