server/CLAUDE.md

36 lines
2 KiB
Markdown

# Sidelinja - Claude Code Prosjektguide
## Prosjektoversikt
Sidelinja er et redaksjonelt operativsystem og kunnskapsgraf for podcast-produksjon.
Self-hosted på Hetzner VPS med full datakontroll.
## Nøkkelfiler
- `ARCHITECTURE.md` — Overordnet arkitektur, stack, datamodell og infrastruktur
- `docs/setup/produksjon.md` — Steg-for-steg oppsett av Hetzner VPS fra scratch
- `docs/setup/lokal.md` — Steg-for-steg oppsett av lokalt WSL2 utviklingsmiljø
- `docs/features/` — Detaljerte feature-spesifikasjoner:
- `kunnskapsgraf_og_relasjoner.md` — Nodes & Edges-modell i PostgreSQL
- `ai_research_klipper.md` — AI-drevet research-inntak til kunnskapsgrafen
- `live_ai_assistent.md` — Sanntids faktoid-oppslag under innspilling
- `produktivitetssuite.md` — Kanban, chat, show notes (SpacetimeDB-tung)
- `podcastfabrikken.md` — Publiseringspipeline (Whisper + OpenRouter + RSS)
- `podcast_statistikk.md` — IAB-kompatibel lytterstatistikk fra Caddy-logger
- `valgomat.md` — Publikumsrettet valgomat (SpacetimeDB)
- `jobbkø.md` — Felles PostgreSQL-basert køsystem for alle bakgrunnsjobber
- `synkronisering.md` — PostgreSQL ↔ SpacetimeDB dataflyt og eierskapsmodell
- `api_grensesnitt.md` — Kommunikasjonskart: SvelteKit er web-API, Rust er worker
## Stack
- **Backend/Automasjon:** Rust
- **Frontend:** SvelteKit (TypeScript, PWA)
- **Sanntid:** SpacetimeDB (arbeidsflyt/state) + LiveKit (lyd/video)
- **Database:** PostgreSQL (persistent/kunnskapsgraf) + SpacetimeDB (in-memory/sanntid)
- **AI:** faster-whisper (transkripsjon), OpenRouter (Claude-modeller)
- **Infra:** Docker Compose, Caddy, Authentik (SSO), Forgejo (Git)
## Viktige regler
- Aldri eksponere databaseporter mot internett (kun port 80/443 via Caddy)
- Bruk `tea` CLI, ikke `gh` (vi bruker Forgejo, ikke GitHub)
- Tunge AI-jobber (Whisper, OpenRouter) skal aldri blokkere web-requests
- Kod og test lokalt i WSL2, deploy via push til Forgejo + SSH pull
- Sjekk alltid `docs/features/<navn>.md` før du implementerer en feature