- Sett opp docker-compose.dev.yml med PostgreSQL, Redis, Caddy og Whisper - Benchmarket faster-whisper (small/medium/large-v3) med norsk tale - Besluttet medium + initial_prompt som standard, SRT som master-format - Ny feature-spec: AI Gateway (LiteLLM) med BYOK og Promptfoo-testing - Definert dataklassifisering (kritisk/gjenskapbar/avledet/flyktig) - Konkretisert backup-strategi med pg_dump, rsync og restore-prosedyre - Splittet repos: sidelinja/server (kode) + sidelinja/sidelinja (innhold) - Oppdatert lokal.md: utviklingsmiljø for kode, ikke prod-replika - Dokumentert transkripsjonspipeline: Whisper SRT → Git → PG (avledet) - Live AI-assistent: small-modell, flyktig logg med 30d TTL Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2.9 KiB
2.9 KiB
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 infrastrukturdocs/setup/produksjon.md— Steg-for-steg oppsett av Hetzner VPS fra scratchdocs/setup/lokal.md— Steg-for-steg oppsett av lokalt WSL2 utviklingsmiljødocs/features/— Detaljerte feature-spesifikasjoner:kunnskapsgraf_og_relasjoner.md— Nodes & Edges-modell i PostgreSQLai_research_klipper.md— AI-drevet research-inntak til kunnskapsgrafenlive_ai_assistent.md— Sanntids faktoid-oppslag under innspillingproduktivitetssuite.md— Kanban, chat, show notes (SpacetimeDB-tung)podcastfabrikken.md— Publiseringspipeline (Whisper + OpenRouter + RSS)podcast_statistikk.md— IAB-kompatibel lytterstatistikk fra Caddy-loggervalgomat.md— Publikumsrettet valgomat (SpacetimeDB)jobbkø.md— Felles PostgreSQL-basert køsystem for alle bakgrunnsjobbersynkronisering.md— PostgreSQL ↔ SpacetimeDB dataflyt og eierskapsmodellapi_grensesnitt.md— Kommunikasjonskart: SvelteKit er web-API, Rust er workerai_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.gitsidelinja— 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
teaCLI, ikkegh(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/<navn>.mdfør du implementerer en feature