前置
- Go(版本与各仓库
go.mod一致,当前多为 1.25+) - 可选:
flyctl(部署到 Fly.io) - 至少一个 GitHub PAT(Trending / Weekly / Discovery 抓取需要;Sharing 的公开页补全仓库信息时也建议配置)
- 单独 clone 上表各 GitHub 仓库
- 或使用 Starcat monorepo:
cd supports && ./clone-all.sh拉取各starcat-*-api/,再进入对应目录
本地单服务(通用步骤)
以 Trending 为例,其它服务同理(端口与环境变量见各仓库.env.example):
有状态服务默认把 SQLite 写在进程工作目录;生产请挂持久卷(Fly 上通常为
/data/...)。
健康检查
ping 应返回含 data.service / data.ok 的 JSON;服务名需与所测服务一致。
monorepo:一次启动全部本地 API
若在完整 Starcat 仓库的supports/ 下:
supports/ 根启动(不要只进 bin/ 跑二进制)。
部署到 Fly.io
各仓库自带Dockerfile 与 fly.toml。典型流程:
supports/ 下也可用 Makefile(维护者常用):
.env 与 Fly secrets 是两套渠道。更细的变量表见仓库内文档与(若有)supports/docs/fly-io-环境变量.md。
服务间依赖(可选)
- Trending / Weekly 可配置
WIKI_API_URL+WIKI_API_KEY,在抓到新仓后通知 Wiki 预热。 - Sharing 的
BASE_URL应指向你对外公开的分享域名(用于拼短链)。
部署完成后
把公网 HTTPS 地址(或局域网http://IP:端口)与 API_KEYS 中的某一个 Key,填进 Starcat:见 在 Starcat 中配置。