Skip to main content

Prerequisites

  • Go (match each repo’s go.mod; currently often 1.25+)
  • Optional: flyctl for Fly.io
  • At least one GitHub PAT (Trending / Weekly / Discovery need it; Sharing benefits from tokens for public repo enrichment)
Get the code either by:
  • Cloning each GitHub repo separately, or
  • From a full Starcat tree: cd supports && ./clone-all.sh, then enter each starcat-*-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’s supports/:
Ports 50015006 must be free; start from the supports/ root (do not run binaries only from bin/).

Deploy on Fly.io

Each repo includes Dockerfile and fly.toml. Typical flow:
Maintainer Makefile shortcuts under supports/:
Never commit secrets. Local .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_KEY to warm Wiki after crawls.
  • Sharing BASE_URL should be your public share origin used when building short links.

After deploy

Paste the public HTTPS URL (or LAN http://IP:port) and one key from API_KEYS into Starcat — see Configure in Starcat.
You own uptime, quotas, compliance, and key security for self-hosted instances. Released App Store / Direct builds keep official defaults until you override them under Settings → Services.
Last modified on July 22, 2026