Oppdater docs til server-only utviklingsmodell
Fjerner alle referanser til lokal WSL2-instans og to-instans-modellen. All utvikling skjer nå direkte på produksjonsserveren via Claude Code. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
f81c8a96e0
commit
91ccf4b270
6 changed files with 42 additions and 47 deletions
18
CLAUDE.md
18
CLAUDE.md
|
|
@ -12,14 +12,11 @@ plattformkode og infrastruktur er skilt fra tenant-data og -innhold.
|
|||
- **Standard arbeidsmodus:** Start i planleggingsmodus. Lag en grundig plan,
|
||||
få godkjenning, deretter implementer. Jobbene er ment å kunne kjøre
|
||||
lenge autonomt uten input underveis.
|
||||
- **Utvikling mot server.** Ingen lokale databaser eller tjenester.
|
||||
Frontend (SvelteKit) utvikles lokalt med HMR mot server-API.
|
||||
Rust bygges lokalt, deployes til server for integrasjonstest.
|
||||
- **Alt skjer på serveren.** Claude Code kjører direkte på produksjonsserveren
|
||||
(`/home/vegard/synops/`). Rust, Node.js og Docker er tilgjengelig.
|
||||
Bygging, testing og deploy skjer her. Vegard kobler til via SSH/tmux.
|
||||
- **Browser-testing:** Claude har ikke tilgang til browser. Visuell testing
|
||||
gjøres av Vegard. Claude verifiserer backend (kompilering, API, DB-state).
|
||||
- **Server-side Claude Code:** Claude Code er installert på serveren med repo
|
||||
i `/home/vegard/synops/`. Brukes for vedlikehold, feilretting og oppgavekjøring
|
||||
direkte på serveren (f.eks. via tmux fra telefon). Rust og Node.js tilgjengelig.
|
||||
- **Commit og push:** Bruk egen vurdering. Trygt og reverserbart.
|
||||
- **Deploy til produksjon:** Krever alltid eksplisitt godkjenning fra Vegard.
|
||||
- **Diskusjon:** Forklar og diskuter før arkitekturendringer.
|
||||
|
|
@ -52,7 +49,7 @@ CLAUDE.md er eneste startdokument. Alt annet ligger under `docs/`:
|
|||
- `docs/proposals/` — Idébank med 32+ uimplementerte forslag (se README.md)
|
||||
- `docs/setup/` — Oppsett og drift:
|
||||
- `produksjon.md` — Steg-for-steg oppsett av Hetzner VPS fra scratch
|
||||
- `lokal.md` — Lokalt utviklingsmiljø (WSL2, mot server)
|
||||
- `lokal.md` — Historisk: lokalt utviklingsmiljø (WSL2). Utdatert — all utvikling skjer nå på serveren.
|
||||
- `migration_safety.md` — Sjekkliste for PostgreSQL-migrasjoner (v1 workspace-RLS, trenger omskriving til node_access)
|
||||
- `docs/infra/` — Infrastruktur og drift:
|
||||
- `ai_gateway.md` — LiteLLM som sentralisert AI-ruter (BYOK + fallback)
|
||||
|
|
@ -64,8 +61,8 @@ CLAUDE.md er eneste startdokument. Alt annet ligger under `docs/`:
|
|||
- `ops/` — Repeterbare vedlikeholdsjobber (ryddejobb, doc-audit, drift-sjekk)
|
||||
|
||||
## Aktører
|
||||
- **Vegard** — serveradmin, utvikler, bruker. SSH: `vegard@157.180.81.26`
|
||||
- **Claude** — AI-agent, utvikler. SSH: `claude@157.180.81.26`
|
||||
- **Vegard** — serveradmin, utvikler, bruker. Kobler til via SSH/tmux.
|
||||
- **Claude** — AI-agent, utvikler. Kjører direkte på serveren (`/home/vegard/synops/`).
|
||||
- Begge har sudo + docker-tilgang på serveren.
|
||||
|
||||
## Stack
|
||||
|
|
@ -79,9 +76,8 @@ CLAUDE.md er eneste startdokument. Alt annet ligger under `docs/`:
|
|||
|
||||
## Produksjonsserver
|
||||
- **IP:** 157.180.81.26
|
||||
- **SSH:** `ssh vegard@157.180.81.26` / `ssh claude@157.180.81.26`
|
||||
- **SSH:** `ssh vegard@157.180.81.26`
|
||||
- **Root-login:** Deaktivert
|
||||
- **SSH-nøkkel (lokal WSL2):** `/home/vegard/.ssh/id_ed25519`
|
||||
- **Server-filer:** `/srv/synops/` (docker-compose.yml, .env, config/, data/)
|
||||
- **Domener:**
|
||||
- `sidelinja.org` — Tenant-app (Sidelinja podcastredaksjonen)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,11 @@
|
|||
# Oppsett: Lokalt Utviklingsmiljø (WSL2)
|
||||
# Oppsett: Lokalt Utviklingsmiljø (WSL2) — UTDATERT
|
||||
**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.
|
||||
> **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, SpacetimeDB, AI Gateway, etc.) kjørte på produksjonsserveren — ingen lokal Docker-replika.
|
||||
|
||||
## Hva som gjøres hvor
|
||||
|
||||
|
|
|
|||
|
|
@ -420,16 +420,17 @@ docker compose up -d forgejo
|
|||
```
|
||||
|
||||
## 12. Deploy-workflow (etter initial setup)
|
||||
Etter at serveren er satt opp, er dette den daglige deploy-flyten:
|
||||
All utvikling og deploy skjer direkte på serveren. Claude Code kjører i
|
||||
`/home/vegard/synops/` og har direkte tilgang til Docker og alle tjenester.
|
||||
|
||||
```bash
|
||||
# Fra lokal maskin (WSL2):
|
||||
# Commit og push til Forgejo
|
||||
cd /home/vegard/synops
|
||||
git add <filer> && git commit -m "beskrivelse"
|
||||
git push forgejo main
|
||||
|
||||
# SSH inn til server:
|
||||
ssh sidelinja@<server-ip>
|
||||
# Bygg og deploy tjeneste (krever godkjenning fra Vegard)
|
||||
cd /srv/synops
|
||||
git pull
|
||||
docker compose build --no-cache <tjeneste>
|
||||
docker compose up -d <tjeneste>
|
||||
```
|
||||
|
|
@ -437,14 +438,11 @@ docker compose up -d <tjeneste>
|
|||
### Maskinrommet (Rust API)
|
||||
|
||||
Maskinrommet bygges som Docker-image fra `maskinrommet/Dockerfile` og kjører
|
||||
som service i docker-compose. Imaget bygges lokalt på serveren (ikke registry):
|
||||
som service i docker-compose. Imaget bygges på serveren (ikke registry):
|
||||
|
||||
```bash
|
||||
# Kopier kildekode til server (eller clone repo)
|
||||
rsync -avz --exclude='target/' maskinrommet/ server:/path/to/maskinrommet/
|
||||
|
||||
# Bygg image
|
||||
cd /path/to/maskinrommet && docker build -t maskinrommet:latest .
|
||||
cd /home/vegard/synops/maskinrommet && docker build -t maskinrommet:latest .
|
||||
|
||||
# Start/restart service
|
||||
cd /srv/synops && docker compose up -d maskinrommet
|
||||
|
|
@ -460,7 +458,7 @@ fra PG inn i STDB (warmup). Caddy proxyer `api.sidelinja.org` til port 3100.
|
|||
- [ ] `https://auth.sidelinja.org` viser Authentik login
|
||||
- [ ] `https://git.sidelinja.org` viser Forgejo, innlogging via Authentik fungerer
|
||||
- [ ] PostgreSQL: `docker compose exec postgres pg_isready` returnerer OK
|
||||
- [ ] SSH-push fra lokal WSL2 til Forgejo fungerer
|
||||
- [ ] Git push til Forgejo fungerer
|
||||
|
||||
### Lag B-C
|
||||
- [x] `https://api.sidelinja.org/health` returnerer `{"status":"ok"}` med PG og STDB tilkoblet (verifisert 2026-03-17)
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ kjøres av Claude eller manuelt.
|
|||
|------|-----|----------|-------------|
|
||||
| Ryddejobb | [ryddejobb.md](ryddejobb.md) | Annenhver uke / ved behov | Full revisjon av prosjektet — docs, kode, drift, fremdrift |
|
||||
| Doc-audit | [doc-audit.md](doc-audit.md) | Månedlig / etter store endringer | Sjekk at docs/ stemmer med faktisk kode |
|
||||
| Drift-sjekk | [drift-sjekk.md](drift-sjekk.md) | Ved deploy / ved behov | Asynkron tilstand mellom prod, lokal og docs |
|
||||
| Drift-sjekk | [drift-sjekk.md](drift-sjekk.md) | Ved deploy / ved behov | Synk mellom repo, deploy og docs |
|
||||
|
||||
## Konvensjoner
|
||||
|
||||
|
|
|
|||
|
|
@ -1,42 +1,39 @@
|
|||
# Drift-sjekk — Prod vs lokal vs docs
|
||||
# Drift-sjekk — Repo vs deploy vs docs
|
||||
|
||||
## Hva
|
||||
Verifiser at produksjonsserveren, lokalt utviklermiljø og dokumentasjon er i synk.
|
||||
Verifiser at repo, deployede tjenester og dokumentasjon er i synk.
|
||||
Fanger opp tilfeller der noe er deployet men ikke dokumentert, eller dokumentert
|
||||
men ikke implementert.
|
||||
|
||||
## Når
|
||||
- Før og etter deploy til produksjon
|
||||
- Når noe oppfører seg annerledes i prod vs lokalt
|
||||
- Ved mistanke om drift
|
||||
|
||||
## Sjekkliste
|
||||
|
||||
### 1. Git-status
|
||||
- [ ] Er prod-server på siste commit? (`ssh vegard@157.180.81.26 'cd /srv/synops/app && git log -1'`)
|
||||
- [ ] Er det ucommittede endringer lokalt som burde vært pushet?
|
||||
- [ ] Er det commits på Forgejo som ikke er deployet til prod?
|
||||
- [ ] Er repo oppdatert? (`git status`, `git log -3`)
|
||||
- [ ] Er det ucommittede endringer som burde vært pushet?
|
||||
- [ ] Er det commits i repo som ikke er deployet til Docker-tjenestene?
|
||||
|
||||
### 2. Database-migrasjoner
|
||||
- [ ] Er alle lokale migrasjoner pushet til repo?
|
||||
- [ ] Er alle migrasjoner i repo kjørt i prod?
|
||||
- [ ] Stemmer migrasjonsnumre mellom miljøer?
|
||||
- [ ] Er alle migrasjoner i repo kjørt i PG?
|
||||
- [ ] Stemmer migrasjonsnumre?
|
||||
|
||||
### 3. Docker-tjenester
|
||||
- [ ] Kjører alle forventede containere i prod? (`docker compose ps`)
|
||||
- [ ] Er image-versjoner oppdatert?
|
||||
- [ ] Kjører alle forventede containere? (`docker compose ps`)
|
||||
- [ ] Er image-versjoner oppdatert med siste kode?
|
||||
|
||||
### 4. Miljøvariabler
|
||||
- [ ] Er det nye env-vars lagt til lokalt som mangler i prod `.env`?
|
||||
- [ ] Er det env-vars i prod som er utdaterte?
|
||||
- [ ] Er det nye env-vars i koden som mangler i `/srv/synops/.env`?
|
||||
- [ ] Er det env-vars i `.env` som er utdaterte?
|
||||
- [ ] Er secrets rotert der de bør være?
|
||||
|
||||
### 5. SpacetimeDB-modul
|
||||
- [ ] Er SpacetimeDB-modulen publisert med siste endringer?
|
||||
- [ ] Stemmer modul-skjema mellom lokal og prod?
|
||||
|
||||
### 6. Caddy / reverse proxy
|
||||
- [ ] Er Caddyfile i repo synk med prod?
|
||||
- [ ] Er Caddyfile i repo synk med `/srv/synops/config/caddy/Caddyfile`?
|
||||
- [ ] Er det nye subdomener eller routes som mangler?
|
||||
|
||||
## Sist kjørt
|
||||
|
|
|
|||
|
|
@ -39,11 +39,10 @@ fjerne utdaterte referanser, og sikre at dokumentasjon stemmer med virkeligheten
|
|||
- [ ] Hva er kun planlagt (kun docs)?
|
||||
- [ ] Oppdater en kort statusoversikt (kan legges i `ops/status.md` ved behov)
|
||||
|
||||
### 5. Asynkron tilstand — prod vs lokal vs docs
|
||||
- [ ] Stemmer `docker-compose.dev.yml` med det som faktisk kjøres lokalt?
|
||||
- [ ] Er prod-server oppdatert med siste push?
|
||||
- [ ] Er det migrasjoner som er kjørt lokalt men ikke i prod (eller omvendt)?
|
||||
- [ ] Er miljøvariabler (.env) synkronisert mellom miljøer?
|
||||
### 5. Synk — repo vs deploy vs docs
|
||||
- [ ] Er deployede Docker-images bygd fra siste kode i repo?
|
||||
- [ ] Er alle migrasjoner i repo kjørt i PG?
|
||||
- [ ] Er miljøvariabler i `/srv/synops/.env` oppdatert?
|
||||
|
||||
### 6. CLAUDE.md minne
|
||||
- [ ] Gå gjennom `~/.claude/projects/-home-vegard-server/memory/MEMORY.md`
|
||||
|
|
@ -56,8 +55,9 @@ fjerne utdaterte referanser, og sikre at dokumentasjon stemmer med virkeligheten
|
|||
- [ ] Er eksisterende erfaringsdokumenter fortsatt relevante og korrekte?
|
||||
|
||||
### 8. Utviklermiljø
|
||||
- [ ] Fungerer lokal utvikling mot server (SvelteKit HMR, Rust build)?
|
||||
- [ ] Er `docs/setup/lokal.md` oppdatert med eventuelle nye steg?
|
||||
- [ ] Kompilerer Rust (`cargo build` i maskinrommet/)?
|
||||
- [ ] Bygger frontend (`npm run build` i frontend/)?
|
||||
- [ ] Er `~/.claude/CLAUDE.md` (server-instrukser) oppdatert?
|
||||
|
||||
## Sist kjørt
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue