Maskinrommet i Docker Compose (oppgave 2.6)
Maskinrommet kjører nå som Docker-service i server-stacken: - Lagt til maskinrommet-service i docker-compose.yml på server - Intern nettverkstilgang til PG (postgres:5432) og STDB (spacetimedb:3000) - Caddy proxyer api.sidelinja.org → maskinrommet:3100 - Verifisert: health-endpoint, PG-tilkobling, STDB-tilkobling, warmup, auth-middleware (401 uten token) Oppdatert docs/setup/produksjon.md med: - Maskinrommet i service-oversikt og Caddyfile - SpacetimeDB-variabler i .env-template - Deploy-instruksjoner for bygging av Docker-image - Verifiseringssjekkliste Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
79477a24bf
commit
76f386ac84
2 changed files with 30 additions and 5 deletions
|
|
@ -119,11 +119,15 @@ LIVEKIT_API_SECRET=<generer med: openssl rand -hex 32>
|
||||||
OPENROUTER_API_KEY=<fra openrouter.ai>
|
OPENROUTER_API_KEY=<fra openrouter.ai>
|
||||||
|
|
||||||
# === Maskinrommet ===
|
# === Maskinrommet ===
|
||||||
DATABASE_URL=postgres://sidelinja:<POSTGRES_PASSWORD>@postgres:5432/synops
|
|
||||||
AUTHENTIK_ISSUER=https://auth.sidelinja.org/application/o/sidelinja/
|
AUTHENTIK_ISSUER=https://auth.sidelinja.org/application/o/sidelinja/
|
||||||
AUTHENTIK_CLIENT_ID=<fra Authentik OIDC-provider>
|
AUTHENTIK_CLIENT_ID=<fra Authentik OIDC-provider>
|
||||||
AUTHENTIK_CLIENT_SECRET=<fra Authentik OIDC-provider>
|
AUTHENTIK_CLIENT_SECRET=<fra Authentik OIDC-provider>
|
||||||
|
|
||||||
|
# === SpacetimeDB ===
|
||||||
|
SPACETIMEDB_URL=http://spacetimedb:3000
|
||||||
|
SPACETIMEDB_DATABASE=synops
|
||||||
|
SPACETIMEDB_TOKEN=<generert av spacetime identity token>
|
||||||
|
|
||||||
# === Intern ===
|
# === Intern ===
|
||||||
# Ingen porter eksponeres utenom 80/443. Alt rutes internt via Docker-nettverket.
|
# Ingen porter eksponeres utenom 80/443. Alt rutes internt via Docker-nettverket.
|
||||||
EOF
|
EOF
|
||||||
|
|
@ -175,6 +179,7 @@ services:
|
||||||
authentik: # SSO for alle domener, på auth.sidelinja.org
|
authentik: # SSO for alle domener, på auth.sidelinja.org
|
||||||
forgejo: # data:/srv/synops/data/forgejo, på git.sidelinja.org
|
forgejo: # data:/srv/synops/data/forgejo, på git.sidelinja.org
|
||||||
spacetimedb: # data:/srv/synops/data/spacetimedb
|
spacetimedb: # data:/srv/synops/data/spacetimedb
|
||||||
|
maskinrommet: # Rust/axum API, intern port 3100, proxyet via Caddy
|
||||||
livekit: # Intern port, proxyet via Caddy
|
livekit: # Intern port, proxyet via Caddy
|
||||||
sveltekit: # Intern port, proxyet via Caddy
|
sveltekit: # Intern port, proxyet via Caddy
|
||||||
workers: # Rust job workers, ingen porter
|
workers: # Rust job workers, ingen porter
|
||||||
|
|
@ -212,8 +217,7 @@ sidelinja.org {
|
||||||
|
|
||||||
# === Maskinrommet API ===
|
# === Maskinrommet API ===
|
||||||
api.sidelinja.org {
|
api.sidelinja.org {
|
||||||
# Rust/axum backend — aktiveres i fase 2
|
reverse_proxy maskinrommet:3100
|
||||||
# reverse_proxy maskinrommet:3001
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# === Forgejo (Git) ===
|
# === Forgejo (Git) ===
|
||||||
|
|
@ -415,6 +419,26 @@ docker compose build --no-cache <tjeneste>
|
||||||
docker compose up -d <tjeneste>
|
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):
|
||||||
|
|
||||||
|
```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 .
|
||||||
|
|
||||||
|
# Start/restart service
|
||||||
|
cd /srv/synops && docker compose up -d maskinrommet
|
||||||
|
```
|
||||||
|
|
||||||
|
Maskinrommet kobler til PG og SpacetimeDB via Docker-nettverket `sidelinja-net`
|
||||||
|
(hostname `postgres` og `spacetimedb`). Ved oppstart laster den hele grafen
|
||||||
|
fra PG inn i STDB (warmup). Caddy proxyer `api.sidelinja.org` til port 3100.
|
||||||
|
|
||||||
## 13. Verifisering etter oppsett
|
## 13. Verifisering etter oppsett
|
||||||
|
|
||||||
### Lag A (minimum fungerende server)
|
### Lag A (minimum fungerende server)
|
||||||
|
|
@ -424,6 +448,8 @@ docker compose up -d <tjeneste>
|
||||||
- [ ] SSH-push fra lokal WSL2 til Forgejo fungerer
|
- [ ] SSH-push fra lokal WSL2 til Forgejo fungerer
|
||||||
|
|
||||||
### Lag B-C
|
### Lag B-C
|
||||||
|
- [x] `https://api.sidelinja.org/health` returnerer `{"status":"ok"}` med PG og STDB tilkoblet (verifisert 2026-03-17)
|
||||||
|
- [x] `https://api.sidelinja.org/me` returnerer 401 uten token (verifisert 2026-03-17)
|
||||||
- [x] `https://sidelinja.org` laster SvelteKit-appen (deployet 2025-03-15)
|
- [x] `https://sidelinja.org` laster SvelteKit-appen (deployet 2025-03-15)
|
||||||
- [x] `https://sidelinja.org/api/health` returnerer 200
|
- [x] `https://sidelinja.org/api/health` returnerer 200
|
||||||
- [x] Authentik OIDC-innlogging fungerer fra nettleser (verifisert 2025-03-15)
|
- [x] Authentik OIDC-innlogging fungerer fra nettleser (verifisert 2025-03-15)
|
||||||
|
|
|
||||||
3
tasks.md
3
tasks.md
|
|
@ -56,8 +56,7 @@ Uavhengige faser kan fortsatt plukkes.
|
||||||
- [x] 2.3 SpacetimeDB-klient i maskinrommet: koble til STDB, skriv noder og edges via reducers.
|
- [x] 2.3 SpacetimeDB-klient i maskinrommet: koble til STDB, skriv noder og edges via reducers.
|
||||||
- [x] 2.4 Skrivestien: `POST /intentions/create_node` — valider, skriv STDB (instant), spawn async PG-skriving. Returner node_id umiddelbart.
|
- [x] 2.4 Skrivestien: `POST /intentions/create_node` — valider, skriv STDB (instant), spawn async PG-skriving. Returner node_id umiddelbart.
|
||||||
- [x] 2.5 Flere intensjoner: `create_edge`, `update_node`, `delete_node`. Validering av tilgang (created_by eller owner/admin-edge).
|
- [x] 2.5 Flere intensjoner: `create_edge`, `update_node`, `delete_node`. Validering av tilgang (created_by eller owner/admin-edge).
|
||||||
- [~] 2.6 Docker Compose: legg maskinrommet inn i server-stacken. Intern nettverkstilgang til PG og STDB.
|
- [x] 2.6 Docker Compose: legg maskinrommet inn i server-stacken. Intern nettverkstilgang til PG og STDB.
|
||||||
> Påbegynt: 2026-03-17T13:26
|
|
||||||
|
|
||||||
## Fase 3: Frontend — skjelett
|
## Fase 3: Frontend — skjelett
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue