Files
km/deploy/compose.yml
T
2026-09-04 18:46:46 +02:00

68 lines
2.5 KiB
YAML

# km -- der Wissensdienst als compose-Dienst (spine/core#8, #13).
#
# Zwei Container auf einem Volume:
# km API + Takt: zieht die Ablage, liest Gitea ein, indexiert
# (SQLite FTS5 + sqlite-vec), liefert alles Geaenderte ein
# silverbullet Oberflaeche auf demselben Verzeichnis -- lesen und aendern;
# km committet und pusht die Aenderungen im naechsten Takt
#
# Die Wahrheit ist das Git-Remote (KM_GIT_REMOTE); /srv/km/data/ablage ist
# ein Checkout, /srv/km/data/km-index.sqlite ein Cache. Beides ist ohne die
# Container lesbar bzw. neu baubar (Nachfolgefall).
#
# Secrets stehen in `.env` daneben (root-only) und NICHT hier:
# KM_GIT_USER / KM_GIT_PASSWORD Push an das Ablage-Repo
# KM_GITEA_USER / KM_GITEA_PASSWORD Lesen der Forge
# SB_USER user:passwort fuer die Oberflaeche
#
# Betrieb ueber `oci` (42i-oci): /srv/km/compose.yml, `oci enable km`.
services:
km:
image: git.42i.org/spine/km:latest
build:
context: ../image
container_name: km
restart: unless-stopped
network_mode: host
environment:
KM_NAMESPACE: ${KM_NAMESPACE:-familie}
KM_CLASSIFICATION: ${KM_CLASSIFICATION:-home}
KM_GIT_REMOTE: ${KM_GIT_REMOTE}
KM_GIT_BRANCH: ${KM_GIT_BRANCH:-main}
KM_GIT_USER: ${KM_GIT_USER}
KM_GIT_PASSWORD: ${KM_GIT_PASSWORD}
KM_GIT_NAME: ${KM_GIT_NAME:-km}
KM_GIT_EMAIL: ${KM_GIT_EMAIL:-km@localhost}
KM_GITEA_URL: ${KM_GITEA_URL}
KM_GITEA_USER: ${KM_GITEA_USER}
KM_GITEA_PASSWORD: ${KM_GITEA_PASSWORD}
KM_GITEA_ORGS: ${KM_GITEA_ORGS:-}
KM_GITEA_REPOS: ${KM_GITEA_REPOS:-}
KM_INTERVAL: ${KM_INTERVAL:-300}
# Vektoren erst, wenn es einen Abnehmer gibt (Andreas 04.09.); die
# Ollama-Instanz auf s18 ist vom LXC aus nur mit VLAN5-Route erreichbar.
KM_EMBED: ${KM_EMBED:-0}
KM_OLLAMA_URL: ${KM_OLLAMA_URL:-http://10.18.5.30:11434}
KM_PORT: "8390"
volumes:
- /srv/km/data:/data
silverbullet:
image: ghcr.io/silverbulletmd/silverbullet:v2
container_name: km-ui
restart: unless-stopped
network_mode: host
environment:
SB_FOLDER: /space
SB_PORT: "3000"
# hive.home teilt den Pfadraum an der Wurzel (hive/core#61); die
# Oberflaeche liegt deshalb unter /km, die API unter /km/api.
SB_URL_PREFIX: /km
SB_USER: ${SB_USER}
# die Dateien gehoeren dem km-Container (root); ohne PUID rät
# SilverBullet die UID aus dem Ordner -- das ist dann dieselbe
PUID: "0"
volumes:
- /srv/km/data/ablage:/space