an atproto based link aggregator

Add CD deployment documentation for Fly.io

Document how to set up continuous deployment using flyctl from
nixpkgs in Tangled Spindle workflows. Includes example workflow
and required secrets.

๐Ÿค– Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

+39 -2
+39 -2
CLAUDE.md
··· 188 188 189 189 ## CI/CD 190 190 191 + ### CI Pipeline 192 + 191 193 Pipeline runs on Tangled Spindle (`.tangled/workflows/ci.yaml`): 192 194 193 195 - Triggers on push to `main`/`develop` and PRs to `main` 194 - - Runs: install deps โ†’ build lexicons โ†’ lint โ†’ type check โ†’ tests 195 - - Uses nixpkgs for Node.js 22, pnpm, and Chromium (for browser tests) 196 + - Runs: install deps โ†’ build lexicons โ†’ migrate โ†’ lint โ†’ type check โ†’ tests 197 + - Uses nixpkgs for Node.js 22, pnpm, Chromium (browser tests), and gnused 198 + 199 + ### CD (Fly.io Deployment) 200 + 201 + Deployment to Fly.io can be automated using `flyctl` from nixpkgs: 202 + 203 + ```yaml 204 + # Example CD workflow for .tangled/workflows/cd.yaml 205 + when: 206 + - event: ['push'] 207 + branch: ['main'] 208 + 209 + engine: nixery 210 + 211 + dependencies: 212 + nixpkgs: 213 + - nodejs_22 214 + - pnpm 215 + - flyctl 216 + 217 + secrets: 218 + - FLY_API_TOKEN 219 + 220 + steps: 221 + - name: Install dependencies 222 + command: pnpm install --frozen-lockfile 223 + - name: Build 224 + command: pnpm build 225 + - name: Deploy webapp 226 + command: fly deploy --remote-only 227 + - name: Deploy ingester 228 + command: fly deploy -c fly.ingester.toml --remote-only 229 + ``` 230 + 231 + Required secrets: 232 + - `FLY_API_TOKEN`: Get from `fly tokens create deploy` or Fly.io dashboard 196 233 197 234 --- 198 235