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>
2.5 KiB
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 |