Files
c0py/AGENTS.md
T
admin 5522b3bd3b
CI (SIAX Cloud) / contracts (push) Successful in 15s
CI (SIAX Cloud) / security (push) Successful in 31s
CI (SIAX Cloud) / quality (push) Successful in 49s
Deploy to Coolify / deploy (push) Failing after 1s
docs: production deployment facts, DNS/TLS pattern, Coolify gotchas
2026-09-16 21:47:07 +02:00

45 lines
2.6 KiB
Markdown

# 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.io` apex ä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-lockfile` i 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`, och `docker rm -f` gammal container (den lever kvar vid recreate)