2.6 KiB
2.6 KiB
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
- 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
Drift (Coolify)
- App UUID API:
wvmn6eg40jofssvm3nigmav6, server6 —c0py-api.siax.io - App UUID Web:
58pa82h4qlzcwsc4shreuwk0, server6 —c0py-web.siax.io(Dockerfile.web) - Postgres UUID:
qhucpjjpv3mx9jupqkbyf5uh, server6 - Images:
<app-uuid>:latest(built on server6 from /tmp/c0py-build) - Deploy:
docker build -t <app-uuid>:latest . && cd /data/coolify/applications/<app-uuid> && docker compose up -d - DNS:
c0py-api+c0py-web→ 65.109.19.146 (Cloudflare A, DNS-only — proxied ger TLS-fail på tredjenivå) - Coolify API: POST
/api/v1/applications/dockerfile(NOT/api/v1/applications) - Health check:
GET /health→ 200 (wget-based, Fastify HTTP) - ⚠️
c0py.siax.ioapex är Worker-kapad ("Hello World!") — ej åtgärdbar utan Workers-perms - Coolify dockerfile+git-buildpack: trasig för detta monorepo (build-context saknar repo-träd) — bygg manuellt
Kontrakt
- API-kontrakt:
contracts/openapi.yaml - Schema-versionshantering: semantisk versionering i
packages/types - Digital Twin Spec:
docs/spec/DIGITAL-TWIN-SPEC.md(fullständig specifikation för webbplats-analys och identisk reproduktion)
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
- Docker COPY over build stages bryter pnpm-symlinks — kör
pnpm install --frozen-lockfilei runtime-staget, lägg till tsx-symlink efteråt tsxär devDependency i@siax/c0py-api— pnpm länkar workspace-devDeps INTE till rot-nivå- Auth: preHandler hook kollar
Authorization: Bearer *-header, returnerar 401 annars - GitHub push: använd
gh auth login(keyring), INTE inbäddade tokens i URLs - Coolify compose på disk kan vara stale — labels/port regenereras ej vid misslyckad deploy; sed:a compose-filen +
docker compose up -d, ochdocker rm -fgammal container (den lever kvar vid recreate)