# Oppsett: Lokalt Utviklingsmiljø (WSL2) — UTDATERT **Filsti:** `docs/setup/lokal.md` > **MERK:** Denne guiden er utdatert. All utvikling skjer nå direkte på > produksjonsserveren via Claude Code. Dokumentet beholdes som referanse > i tilfelle lokalt utviklingsmiljø gjeninnføres. Det lokale miljøet var et **utviklingsmiljø for kode**. Frontend (SvelteKit) ble kjørt lokalt med HMR, Rust ble bygd lokalt. Alle tjenester (PG, AI Gateway, etc.) kjørte 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 på server | Serveren er dev-miljø | | Caddy/Authentik/Forgejo config | Direkte på server | 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 ```bash # 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 ```bash cd ~ git clone ssh://git@git.synops.no:222/vegard/synops.git cd synops ``` ## 3. Miljøvariabler (.env.local) ```bash 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 ```bash # SvelteKit med HMR (proxy til api.sidelinja.org for /api-kall) cd frontend && npm run dev # Rust maskinrom cd maskinrommet && cargo run ``` ## 5. Deploy ```bash # 1. Commit og push git push forgejo main # 2. Deploy til prod (krever eksplisitt godkjenning) ssh vegard@157.180.81.26 "cd /srv/synops && git pull && docker compose up -d --build" ``` ## 6. Server-side Claude Code Claude Code er også installert direkte på produksjonsserveren (`/home/vegard/synops/`). Brukes for vedlikehold, feilretting og oppgavekjøring via tmux. Autentiserer med Anthropic Max-abonnement (`claude` login). ## 7. 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 |