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>
2.9 KiB
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
# 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.synops.no:222/vegard/synops.git
cd synops
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
# SvelteKit med HMR (proxy til api.sidelinja.org for /api-kall)
cd frontend && npm run dev
# Rust maskinrom
cd maskinrommet && cargo run
5. Deploy
# 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 |