36 lines
2 KiB
Markdown
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
|