Compare commits

..

No commits in common. "02fc38eb3d0bc86d503712f72207329a8fe545a9" and "2ba830c7b486ae3063b32f6c95137c7b33e309ec" have entirely different histories.

3 changed files with 10 additions and 21 deletions

View file

@ -31,12 +31,10 @@ sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_
sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
systemctl restart sshd systemctl restart sshd
# Brannmur: SSH, HTTP, HTTPS + LiveKit WebRTC # Brannmur: kun SSH, HTTP, HTTPS
ufw allow OpenSSH ufw allow OpenSSH
ufw allow 80/tcp ufw allow 80/tcp
ufw allow 443/tcp ufw allow 443/tcp
ufw allow 7881/tcp # LiveKit ICE/TCP fallback
ufw allow 50000:50100/udp # LiveKit WebRTC media
ufw enable ufw enable
``` ```
@ -170,7 +168,7 @@ Tjenestene startes i rekkefølge fordi noen avhenger av andre. Alle defineres i
# Denne seksjonen dokumenterer strukturen og viktige regler. # Denne seksjonen dokumenterer strukturen og viktige regler.
# REGLER: # REGLER:
# - Ingen "ports:" mot host UTENOM Caddy (80, 443) og LiveKit (UDP 50000-50100, TCP 7881) # - Ingen "ports:" mot host UTENOM Caddy (80, 443)
# - Alle tjenester på samme interne nettverk (sidelinja-net) # - Alle tjenester på samme interne nettverk (sidelinja-net)
# - Volumer bruker bind mounts til /srv/synops/ # - Volumer bruker bind mounts til /srv/synops/
# - .env-filen lastes automatisk av Docker Compose # - .env-filen lastes automatisk av Docker Compose
@ -210,10 +208,10 @@ sidelinja.org {
reverse_proxy spacetimedb:3000 reverse_proxy spacetimedb:3000
} }
# LiveKit signaling (WebSocket upgrade) # LiveKit (WebSocket upgrade) — aktiveres i fase 11
handle_path /livekit/* { # handle_path /livekit/* {
reverse_proxy livekit:7880 # reverse_proxy livekit:7880
} # }
# Podcast media (statiske filer med byte-range support) # Podcast media (statiske filer med byte-range support)
handle_path /media/* { handle_path /media/* {
@ -479,5 +477,5 @@ ikke i produksjon.
- [ ] `https://synops.no` viser placeholder - [ ] `https://synops.no` viser placeholder
- [ ] `https://vegard.info` svarer - [ ] `https://vegard.info` svarer
- [ ] SpacetimeDB: WebSocket-tilkobling fra nettleser fungerer - [ ] SpacetimeDB: WebSocket-tilkobling fra nettleser fungerer
- [x] LiveKit: Container kjører, signaling proxyet via Caddy (verifisert 2026-03-17) - [ ] LiveKit: Test-rom med video/lyd fungerer
- [ ] Media: `curl -I https://sidelinja.org/media/podcast/test.mp3` returnerer `Accept-Ranges: bytes` - [ ] Media: `curl -I https://sidelinja.org/media/podcast/test.mp3` returnerer `Accept-Ranges: bytes`

View file

@ -11,8 +11,6 @@ container_ip() { docker inspect "$1" --format '{{range .NetworkSettings.Networks
PG_IP=$(container_ip sidelinja-postgres-1) PG_IP=$(container_ip sidelinja-postgres-1)
STDB_IP=$(container_ip sidelinja-spacetimedb-1) STDB_IP=$(container_ip sidelinja-spacetimedb-1)
WHISPER_IP=$(container_ip sidelinja-faster-whisper-1 2>/dev/null || echo "") WHISPER_IP=$(container_ip sidelinja-faster-whisper-1 2>/dev/null || echo "")
AI_GW_IP=$(container_ip sidelinja-ai-gateway-1 2>/dev/null || echo "")
LIVEKIT_IP=$(container_ip sidelinja-livekit-1 2>/dev/null || echo "")
cat > /tmp/maskinrommet.env <<EOF cat > /tmp/maskinrommet.env <<EOF
DATABASE_URL=postgres://$(read_env POSTGRES_USER):$(read_env POSTGRES_PASSWORD)@${PG_IP}:5432/synops DATABASE_URL=postgres://$(read_env POSTGRES_USER):$(read_env POSTGRES_PASSWORD)@${PG_IP}:5432/synops
@ -24,11 +22,6 @@ AUTHENTIK_CLIENT_ID=$(read_env AUTHENTIK_CLIENT_ID)
BIND_ADDR=0.0.0.0:3100 BIND_ADDR=0.0.0.0:3100
CAS_ROOT=/srv/synops/media/cas CAS_ROOT=/srv/synops/media/cas
WHISPER_URL=http://${WHISPER_IP:-localhost}:8000 WHISPER_URL=http://${WHISPER_IP:-localhost}:8000
AI_GATEWAY_URL=http://${AI_GW_IP:-localhost}:4000
LITELLM_MASTER_KEY=$(read_env LITELLM_MASTER_KEY)
LIVEKIT_URL=http://${LIVEKIT_IP:-localhost}:7880
LIVEKIT_API_KEY=$(read_env LIVEKIT_API_KEY)
LIVEKIT_API_SECRET=$(read_env LIVEKIT_API_SECRET)
PROJECT_DIR=/home/vegard/synops PROJECT_DIR=/home/vegard/synops
RUST_LOG=maskinrommet=debug,tower_http=debug RUST_LOG=maskinrommet=debug,tower_http=debug
EOF EOF

View file

@ -112,20 +112,18 @@ Uavhengige faser kan fortsatt plukkes.
- [x] 9.1 Kanban-visning: noder med board-edge, gruppert på status-edge. Drag-and-drop for statusendring. - [x] 9.1 Kanban-visning: noder med board-edge, gruppert på status-edge. Drag-and-drop for statusendring.
- [x] 9.2 Kalender-visning: noder med `scheduled`-edge, på tidslinje. - [x] 9.2 Kalender-visning: noder med `scheduled`-edge, på tidslinje.
- [x] 9.3 Dagbok-visning: private noder (ingen delte edges), sortert på tid. - [x] 9.3 Dagbok-visning: private noder (ingen delte edges), sortert på tid.
- [~] 9.4 Kunnskapsgraf: topic-noder, `mentions`-edges. Visuell graf-visning. - [ ] 9.4 Kunnskapsgraf: topic-noder, `mentions`-edges. Visuell graf-visning.
> Påbegynt: 2026-03-17T22:35
## Fase 10: AI og beriking ## Fase 10: AI og beriking
- [~] 10.1 LiteLLM oppsett: Docker-container, API-nøkler, modell-routing. Ref: `docs/infra/ai_gateway.md`. - [ ] 10.1 LiteLLM oppsett: Docker-container, API-nøkler, modell-routing. Ref: `docs/infra/ai_gateway.md`.
> Påbegynt: 2026-03-17T22:43
- [ ] 10.2 AI-foreslåtte edges: maskinrommet sender innhold til LLM → foreslår mentions, topics. - [ ] 10.2 AI-foreslåtte edges: maskinrommet sender innhold til LLM → foreslår mentions, topics.
- [ ] 10.3 Oppsummering: kommunikasjonsnode → AI-generert sammendrag som ny node. - [ ] 10.3 Oppsummering: kommunikasjonsnode → AI-generert sammendrag som ny node.
- [ ] 10.4 TTS: tekst → lyd via ElevenLabs. Mottaker-preferanse i metadata. - [ ] 10.4 TTS: tekst → lyd via ElevenLabs. Mottaker-preferanse i metadata.
## Fase 11: Produksjons-pipeline ## Fase 11: Produksjons-pipeline
- [x] 11.1 LiveKit oppsett: Docker-container for WebRTC. Ref: `docs/setup/produksjon.md`. - [ ] 11.1 LiveKit oppsett: Docker-container for WebRTC. Ref: `docs/setup/produksjon.md`.
- [ ] 11.2 Sanntidslyd: kommunikasjonsnode med live-status → LiveKit-rom for deltakere. - [ ] 11.2 Sanntidslyd: kommunikasjonsnode med live-status → LiveKit-rom for deltakere.
- [ ] 11.3 Pruning-logikk: TTL per modalitet, signaler som forlenger levetid, disk-nødventil. - [ ] 11.3 Pruning-logikk: TTL per modalitet, signaler som forlenger levetid, disk-nødventil.
- [ ] 11.4 Podcast-RSS: samlings-node med publiserings-edges → generert RSS-feed. - [ ] 11.4 Podcast-RSS: samlings-node med publiserings-edges → generert RSS-feed.