跳转到内容

部署步骤 ​

English · 简体中文

1. 准备环境 ​

支持 Linux amd64、arm64。建议预留 2 GB 内存及数 GB 磁盘,实际用量取决于目标网页。服务器需要访问目标网站;镜像下载需要访问 GitHub Container Registry。

低配置机器保持后台并发为 1,按需要降低翻译服务的并发。没有编辑会话或抓取任务时,Chromium 空闲 60 秒后自动退出,下次需要时重新启动;这会减少空闲内存,但下次抓取包含一次浏览器启动开销。镜像使用多阶段构建,仅保留运行依赖和 Chromium 无头版本,清理安装缓存;前端依赖只参与构建,网页使用打包产物。复杂网页仍可能占用较多内存,这些优化不改变条目保留设置和累计采集、翻译计数。测量口径及限额测试见性能验证。

按 Docker 官方安装文档安装 Engine,再安装 Compose 插件。确认当前用户可以运行:

sh
docker version
docker compose version
docker info

Docker Desktop 也可以用于本机试用。仅有 Docker CLI 不足以启动容器,必须有可连接的引擎。容器主机必须允许 Chromium 用户命名空间沙箱,具体见故障排查。

2. 选择安装方式 ​

Docker Compose 部署(推荐) ​

新建目录,下载 docker-compose.yml 和配套沙箱规则,然后直接启动。无需安装脚本或下载源码:

sh
mkdir feedlantern
cd feedlantern
curl -fLO https://raw.githubusercontent.com/Jaaayden/feedlantern/main/docker-compose.yml -fLO https://raw.githubusercontent.com/Jaaayden/feedlantern/main/seccomp_profile.json
docker compose up -d --wait
docker compose logs feedlantern

两个配置文件放在同一目录。Compose 默认使用 latest 镜像(main 分支通过全部 CI 及双架构容器验证后的构建),自动配置持久化卷、健康检查、重启策略和日志轮转。seccomp_profile.json 用于保留 Chromium 沙箱,不能删除或用特权模式替代。

日常更新只需拉取镜像并重建容器,无需修改版本号或每次下载配置,见升级维护。域名直接填写在 Nginx 模板,无需 .env。高级用户仍可通过 FEEDLANTERN_VERSION 选择特定标签用于复现或回退。

源码构建 ​

需要在 CI 镜像发布前试用源码时:

sh
git clone https://github.com/Jaaayden/feedlantern.git
cd feedlantern
docker build -t ghcr.io/jaaayden/feedlantern:local .
FEEDLANTERN_VERSION=local docker compose up -d --wait

后续命令需继续设置 FEEDLANTERN_VERSION=local,或写入该部署目录的 .env。不要把 .env 提交到 Git。

3. 首次初始化 ​

sh
docker compose ps
docker compose logs --tail=50 feedlantern

打开 http://127.0.0.1:4321,填写日志中的一次性设置码和管理员账号密码。没有默认密码;初始化后设置码被删除。已有完整备份时可选择“从备份恢复”,无需先创建管理员。

默认端口仅绑定宿主机回环地址。远程服务器可以先建立 SSH 隧道:

sh
ssh -L 4321:127.0.0.1:4321 user@your-server

然后在本机浏览器访问相同地址。长期域名访问按 Nginx 指南部署。

4. 验证 ​

  1. 创建管理员后退出再登录,确认登录有效。
  2. 添加一个公开文章列表,预览并保存,复制 RSS 地址到阅读器。
  3. 立即刷新一次,检查最近成功时间;关闭页面后等待调度再次更新。
  4. docker compose restart 后确认订阅和历史还在。
  5. 正式使用前导出一次加密备份,妥善保管密码。

数据在 Compose 命名卷 feedlantern_data 中,包括数据库及本机加密密钥。docker compose down 保留卷,down -v 会删除数据,不用于日常维护。

RSS 翻译连通性检查 ​

RSS 翻译复用现有容器与数据卷,不需要 Redis、外部数据库或额外服务。Google 免费通道要求容器能访问 translate-pa.googleapis.com;宿主机浏览器能翻译不代表容器的出口可用。

在部署目录运行:

sh
docker compose exec feedlantern node --import tsx scripts/check-translation.ts

该命令将三段固定公开样本文本合并为一次请求翻译,最多等待 20 秒。成功显示译文数量和耗时,失败返回非零退出码。遇到自动化请求限制页面或 HTTP 429 时,稍后重试或检查服务器的网络出口;服务不会绕过限制,也不会自动改用收费接口。Google 免费通道可能变更,本地测试使用模拟服务不能代替实际服务器连通性验证。

RSS 源获取沿用设置中的目标主机访问策略与加密 DNS 选项。默认禁止私网及特殊地址,每次重定向重新检查;若订阅你自己内网的 RSS 服务,需要在现有「允许目标主机」设置里明确加入对应主机与端口。

基于 MIT 许可证开源 · 在自己的服务器上部署