e04cf8fbd3
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)
956 B
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