synops/reference/server-state.md
vegard b5aa5bb243 Fjern SpacetimeDB komplett (oppgave 22.4)
SpacetimeDB er nå helt fjernet fra Synops. Sanntid håndteres av
PG LISTEN/NOTIFY + WebSocket i portvokteren (maskinrommet).

Kode fjernet:
- spacetimedb/ Rust-modul og spacetime.json
- maskinrommet/src/stdb.rs (HTTP-klient for STDB-reducers)
- frontend module_bindings/ (23 auto-genererte filer)
- spacetimedb npm-avhengighet fra package.json
- scripts/test-sanntid.sh (testet STDB-flyt)

Infrastruktur:
- Docker-container stoppet og fjernet fra docker-compose.yml
- Caddy: fjernet /spacetime/* reverse proxy
- maskinrommet-env.sh: fjernet STDB_IP og SPACETIMEDB_*-variabler
- .env.example: fjernet SpacetimeDB-seksjoner

Dokumentasjon oppdatert:
- CLAUDE.md: stack, lagmodell, kjerneprinsipper, driftsmodell
- docs/arkitektur.md: skrivestien, lesestien, datalag, teknologivalg
- docs/retninger/datalaget.md: migrasjonshistorikk, status "fjernet"
- 37 andre docs oppdatert (features, concepts, infra, ops, retninger)
- Alle kode-kommentarer med STDB-referanser oppdatert

Verifisert: maskinrommet bygger og starter OK, frontend bygger OK,
helsesjekk returnerer 200. Caddy reloadet.
2026-03-18 13:39:09 +00:00

73 lines
3 KiB
Markdown

# Server-tilstand ved overgang fra Sidelinja v1 (mars 2025)
Denne filen dokumenterer hva som kjører på serveren ved overgangen.
Slettes når Synops er oppe og stabilt.
## Kjørende containere (docker-compose)
| Container | Image | Rolle | Beholdes? |
|---|---|---|---|
| postgres | postgres:16 | Database (sidelinja, authentik, forgejo) | JA |
| caddy | caddy:2 | Reverse proxy, HTTPS | JA |
| authentik-server | goauthentik/server:latest | SSO | JA |
| authentik-worker | goauthentik/server:latest | SSO bakgrunn | JA |
| redis | redis:7-alpine | Cache for Authentik | JA |
| forgejo | forgejo:10 | Git | JA |
| ~~spacetimedb~~ | ~~clockworklabs/spacetime:latest~~ | ~~Sanntid~~ | FJERNET (mars 2026) |
| web | sidelinja-web (bygget) | SvelteKit v1 | FJERNES |
| worker | sidelinja-worker (bygget) | Rust worker v1 | FJERNES |
| ai-gateway | litellm:main-stable | AI-ruter | BEHOLDES (uavhengig av app) |
## Caddyfile (fungerende)
- auth.sidelinja.org → authentik-server:9000
- git.sidelinja.org → forgejo:3000
- sidelinja.org → web:3000 + /media/* (filservering) + JSON access log
- vegard.info → placeholder
- ~~rt.sidelinja.org → spacetimedb:3000~~ (fjernet)
## PG init-script
`/srv/sidelinja/config/postgres/init/01-create-databases.sql`
Oppretter authentik og forgejo DB-brukere med hardkodede passord.
Disse passordene matcher .env-variablene og er allerede kjørt — scriptet
kjøres kun ved *første* PG-oppstart.
## Dockerfiles (referanse)
### web/Dockerfile
- node:20-alpine, to-stegs bygg
- ~~VITE_SPACETIMEDB_URL som build-arg~~ (fjernet)
- `npm run build``node build` på port 3000
### worker/Dockerfile
- rust:1-bookworm, to-stegs bygg med dependency-caching
- debian:bookworm-slim runtime med ca-certificates
- Binary: sidelinja-worker
## .env-variabler på server
AUTHENTIK_CLIENT_ID, AUTHENTIK_CLIENT_SECRET, AUTHENTIK_ISSUER,
AUTHENTIK_POSTGRESQL_HOST, AUTHENTIK_POSTGRESQL_NAME, AUTHENTIK_POSTGRESQL_PASSWORD,
AUTHENTIK_POSTGRESQL_USER, AUTHENTIK_SECRET_KEY, AUTH_SECRET,
COMPOSE_PROJECT_NAME, DATABASE_URL, DOMAIN_AUTH, DOMAIN_SIDELINJA, DOMAIN_VEGARD,
FORGEJO_DB_PASSWD, LITELLM_MASTER_KEY, LIVEKIT_API_KEY, LIVEKIT_API_SECRET,
OPENROUTER_API_KEY, POSTGRES_DB, POSTGRES_PASSWORD, POSTGRES_USER
## Migrasjoner (v1, 15 stk)
0001-0015: initial_schema, kanban, calendar, notes, meldingsboks,
warmup_config, ai_config, ai_prompts, provider_extra_params, openrouter_only,
api_keys_toggle, api_keys_values, drop_priority_unique, workspace_ai_prompts,
usage_action_column. Pluss seed_dev.sql.
Synops starter med nytt skjema (noder+edges). Disse migreringene er irrelevante.
## Crontab
Ingen crontab konfigurert (backup-strategi er dokumentert men ikke implementert).
## Mappestruktur /srv/sidelinja/
```
config/authentik/ config/caddy/ config/postgres/init/
data/authentik/ data/caddy/ data/forgejo/ data/postgres/ data/redis/ data/spacetimedb/
logs/caddy/
media/ (podcast-filer)
server/ (git-klon av v1-repoet)
docker-compose.yml
.env
```