这份文档用于固定 TrendRadar Rust 第 1 轮拓展的官方部署入口。
当前默认支持两种方式:
- Docker one-shot 运行
- 二进制 +
systemd timer调度
trendradar 当前是一次执行一轮 pipeline 的 CLI,不是常驻 Web 服务。
这意味着:
- 它适合被
cron、systemd timer、CI 或容器任务周期性调用 - 容器默认也应按 one-shot 方式运行,而不是包装成常驻空转进程
为了避免与自动发现逻辑混淆,官方部署样例统一显式传入这两个路径:
- 配置文件:
/config/config.json - 数据库文件:
/data/trendradar.db
对应 CLI 参数:
trendradar --config /config/config.json --db /data/trendradar.db先复制最小 RSS 示例配置:
cp deploy/examples/config.rss.json deploy/runtime/config.json
mkdir -p deploy/runtime/data这个示例使用 Rust Blog RSS,可直接用于验证容器链路是否正常。
cargo build --release -p trendradar-app
docker build -t trendradar:local .docker compose -f deploy/docker-compose.yml run --rm trendradar --dry-run如果你想保留这一轮的完整结构化运行日志,可在真实执行时追加:
trendradar --config /config/config.json --db /data/trendradar.db --run-log /data/run-log.jsondocker compose -f deploy/docker-compose.yml run --rm trendradardeploy/docker-compose.yml使用仓库根目录Dockerfile- 当前 Dockerfile 直接打包本机已构建的 release 二进制,因此首次构建前需要先执行
cargo build --release -p trendradar-app - 镜像已内置 CA 证书,HTTPS RSS / API 请求可直接使用
- 镜像内
trendradar用户固定为uid/gid 1000,与常见本地工作目录权限更容易对齐 deploy/docker-compose.yml把--config /config/config.json --db /data/trendradar.db固定在 entrypoint 中,因此run --rm trendradar --dry-run不会再丢失配置路径- 容器会把数据库写入
deploy/runtime/data/trendradar.db - 如需改输出格式,可把
json调整为html/both/table/markdown
任选一种:
curl -fsSL https://raw.githubusercontent.com/codefromkarl/TrendRadar-Rust/main/install.sh | bash或:
cargo install --path crates/app --lockedsudo mkdir -p /etc/trendradar /var/lib/trendradar
sudo cp deploy/examples/config.rss.json /etc/trendradar/config.jsonsudo cp deploy/systemd/trendradar.service /etc/systemd/system/
sudo cp deploy/systemd/trendradar.timer /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now trendradar.timersudo systemctl start trendradar.service
sudo journalctl -u trendradar.service -n 50 --no-pager默认定时器为每 30 分钟执行一次:
OnUnitActiveSec=30min如需修改,编辑 trendradar.timer 后重新加载:
sudo systemctl daemon-reload
sudo systemctl restart trendradar.timer部署完成后,至少确认下面 4 项:
trendradar --version正常返回版本号--dry-run能正确加载配置- 首次执行后数据库文件已生成
- 非法配置能返回非零退出码
这份部署指南只覆盖第 1 轮的官方最小部署入口,不包含:
- 常驻 Web 服务模式
- Kubernetes / Helm
- Homebrew
- 完整云对象存储接入
- 完整 MCP 服务部署矩阵