Prerequisites
- Go (match each repo’s
go.mod; currently often 1.25+) - Optional:
flyctlfor Fly.io - At least one GitHub PAT (Trending / Weekly / Discovery need it; Sharing benefits from tokens for public repo enrichment)
- Cloning each GitHub repo separately, or
- From a full Starcat tree:
cd supports && ./clone-all.sh, then enter eachstarcat-*-api/
Local single service
Trending example (same pattern for others; see each.env.example):
Stateful services write SQLite under the working directory by default; production should use a persistent volume (on Fly usually
/data/...).
Health checks
ping should return JSON with data.service / data.ok; service must match the API you intended.
Monorepo: start all local APIs
From a full Starcat checkout’ssupports/:
5001–5006 must be free; start from the supports/ root (do not run binaries only from bin/).
Deploy on Fly.io
Each repo includesDockerfile and fly.toml. Typical flow:
supports/:
.env and Fly secrets are separate. See each repo’s docs and (if present) supports/docs/fly-io-环境变量.md.
Optional cross-service wiring
- Trending / Weekly may set
WIKI_API_URL+WIKI_API_KEYto warm Wiki after crawls. - Sharing
BASE_URLshould be your public share origin used when building short links.
After deploy
Paste the public HTTPS URL (or LANhttp://IP:port) and one key from API_KEYS into Starcat — see Configure in Starcat.