Files
c0py/AGENTS.md
T
admin e04cf8fbd3 c0py: initial scaffolding for website registry tool
Repo: sax3l/c0py (created on Gitea, code pushed)

Initial scaffolding includes:
- apps/api: Fastify API server (typecheck, build, test pass)
- apps/web: Next.js UI (build passes)
- packages/c0py-core: Crawler, registry assembler, analyzer (6 tests pass)
- packages/config: Zod-validated env loader
- packages/types: Shared TypeScript types

CI/CD: .gitea/workflows/ci.yml + deploy.yml
Dockerfile for Coolify deployment
mise.toml (toolchain contract)
lefthook.yml, renovate.json
docs/architecture/OVERVIEW.md, docs/PLATFORM.md

Platform setup required (see docs/PLATFORM.md):
1. Coolify app provision (c0py on server5/6)
2. Postgres database (dedicated, not shared)
3. Infisical secrets (DATABASE_URL, CL0UD, ZITADEL, AUD0, ST0RE, INF0, N0D)
4. DNS c0py.siax.io A-record
5. Zitadel OIDC project (Simon-decision)

Status: dev (repo live, code pushable, platform infra pending)
2026-09-16 13:33:45 +02:00

956 B

C0PY — AGENTS.md

Repo-konventioner

  • Package manager: pnpm (frozen-lockfile)
  • Framework: Next.js (apps/web), Fastify (apps/api)
  • TypeScript: strict mode, bundler module resolution
  • CI: Gitea Actions — .gitea/workflows/ci.yml
  • Deploy: Coolify via .gitea/workflows/deploy.yml
  • Secrets: Infisical (vault.siax.io) — ALDRIG i repo
  • Testing: vitest (apps/api, packages/*)
  • Lint: eslint flat config
  • Testing: vitest (apps/api, packages/*)
  • OTel: not yet wired — add bootstrap at apps/api/src/index.ts entry when available
  • Tenant: bound to session via CL0UD, NEVER from client input

Kontrakt

  • API-kontrakt: contracts/openapi.yaml
  • Schema-versionshantering: semantisk versionering i packages/types

Fällor

  • NEXT_PUBLIC_* ska ALDRI innehålla hemligheter
  • Alla writes till AUD0/ST0RE via klientskikt, aldrig direkt
  • Crawling ska vara throttle-ad och respect robots.txt