# 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 - `ai_gateway.md` — LiteLLM som sentralisert AI-ruter (BYOK + OpenRouter fallback) ## 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), LiteLLM (AI Gateway → Gemini/Claude/Grok/OpenRouter) - **Infra:** Docker Compose, Caddy, Authentik (SSO), Forgejo (Git) ## Produksjonsserver - **IP:** 157.180.81.26 - **SSH:** `ssh sidelinja@157.180.81.26` (nøkkelbasert, sudo uten passord) - **Filer:** `/srv/sidelinja/` (docker-compose.yml, .env, config/, data/, media/, logs/) - **Git repos:** - `server` — app-kode, infra, arkitektur: `ssh://git@git.sidelinja.org:222/sidelinja/server.git` - `sidelinja` — podcastinnhold (transkripsjoner, show notes, research): `ssh://git@git.sidelinja.org:222/sidelinja/sidelinja.git` - **Domener:** sidelinja.org, auth.sidelinja.org (Authentik), git.sidelinja.org (Forgejo), vegard.info - **Status:** Lag A komplett (PostgreSQL, Caddy, Authentik, Forgejo, Redis). Lag B-C gjenstår. ## 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, LLM-kall) skal aldri blokkere web-requests - All AI-kode peker på `http://ai-gateway:4000/v1` — aldri direkte til leverandør-APIer - Kod og test lokalt i WSL2, deploy via push til Forgejo + SSH pull - Sjekk alltid `docs/features/.md` før du implementerer en feature