synops/docs/setup/lokal.md
vegard 0a467066ba Synops v2: arkitektur, retninger og dokumentasjon
Nystart basert på arkitektonisk innsikt fra Sidelinja v1.
Koden er ny, visjon og primitiver er validert gjennom tidligere arbeid.

Inneholder:
- Komplett arkitekturdokumentasjon (docs/arkitektur.md)
- 6 vedtatte retninger (docs/retninger/)
- Alle concepts, features, proposals og erfaringer fra v1
- Server-oppsett og drift (docs/setup/)
- LiteLLM-konfigurasjon (API-nøkler via env)
- Editor.svelte referanse fra v1

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 06:43:08 +01:00

2.5 KiB

Oppsett: Lokalt Utviklingsmiljø (WSL2)

Filsti: docs/setup/lokal.md

Det lokale miljøet er et utviklingsmiljø for kode. Frontend (SvelteKit) kjøres lokalt med HMR, Rust bygges lokalt. Alle tjenester (PG, SpacetimeDB, AI Gateway, etc.) kjører på produksjonsserveren — ingen lokal Docker-replika.

Hva som gjøres hvor

Aktivitet Hvor Hvorfor
Skrive/teste kode (Rust, SvelteKit, TypeScript) Lokalt Rask iterasjon, HMR
PG-skjema og migrasjoner Mot server-PG Én sannhetskilde
Whisper/AI-eksperimentering Via AI Gateway på server Felles tjeneste
Docker-compose endringer Direkte i prod Serveren er dev-miljø
Caddy/Authentik/Forgejo config Direkte i prod Avhenger av domener, sertifikater, SSO

0. Forutsetninger

  • Windows 11 med WSL2 (Ubuntu 24.04 LTS)
  • Node.js 20+ (via nvm i WSL2)
  • Rust toolchain (via rustup i WSL2)
  • SSH-nøkkel konfigurert mot serveren og Forgejo (~/.ssh/id_ed25519)

1. Installer verktøy i WSL2

# Node.js via nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install 20
nvm use 20

# Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env

2. Klon prosjektet

cd ~
git clone ssh://git@git.sidelinja.org:222/sidelinja/server.git sidelinja-v2
cd sidelinja-v2

3. Miljøvariabler (.env.local)

cp .env.example .env.local
# Fyll inn API-nøkler (Gemini, xAI, etc.)

.env.local inneholder kun lokale variabler (API-nøkler for dev, Authentik-innstillinger). Tjenestekonfigurasjon lever på serveren.

4. Utviklingsflyt

# Start alt lokalt
./dev.sh

# Eller manuelt:
cd web && npm run dev     # SvelteKit med HMR
cd rust && cargo run       # Rust maskinrom

dev.sh er kanonisk — oppdater alltid scriptet når nye steg oppdages.

5. Deploy

# 1. Commit og push
git push forgejo main

# 2. Deploy til prod (krever eksplisitt godkjenning)
ssh sidelinja@157.180.81.26 "cd /srv/sidelinja && git pull && docker compose up -d --build"

6. Forskjeller fra produksjon (bevisste)

Aspekt Lokalt Produksjon
SvelteKit npm run dev (HMR) Docker container
Rust cargo run Docker container
Database/tjenester Kobler til server Kjører lokalt i Docker
HTTPS Ikke nødvendig Let's Encrypt via Caddy
Auth Authentik bypass eller dev-token Full Authentik OIDC