synops/docs/setup/lokal.md
vegard d43365d5ea SvelteKit frontend-skjelett (oppgave 3.1)
Oppretter frontend/ med SvelteKit, TypeScript, TailwindCSS v4 og
adapter-node. PWA-manifest med SVG-ikon. Vite proxy til
api.sidelinja.org for lokal utvikling med HMR.

Oppdaterer docs/setup/lokal.md med riktige stier (frontend/ og
maskinrommet/ i stedet for web/ og rust/).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 13:37:41 +01:00

2.4 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 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.sidelinja.org: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. 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