synops/docs/setup/lokal.md
vegard 69997c6e87 Rydd sidelinja-referanser: generiske AI-nivåer + synops.no-domener
AI-aliaser: sidelinja/rutine → synops/low, sidelinja/resonering →
synops/high. Fire nivåer i LiteLLM: low/medium/high/extreme.
Oppdatert i: LiteLLM config, PG ai_job_routing, all Rust-kode
(maskinrommet + 5 CLI-verktøy).

Domener: sidelinja.org → synops.no i fallback-URLer, health-sjekker,
LiveKit WSS, bandwidth-logger, docs/erfaringer, docs/setup,
reference/server-state, .env.example.

Docker container-navn (sidelinja-*) beholdes — styrt av
COMPOSE_PROJECT_NAME i /srv/synops/.env, endres separat ved behov.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 17:22:22 +00:00

91 lines
2.9 KiB
Markdown

# 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 |