# 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 Geänderte ein # silverbullet Oberfläche auf demselben Verzeichnis -- lesen und ändern; # km committet und pusht die Änderungen im nächsten 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). # # Alle ${…} kommen aus `.env` daneben (root-only) -- podman-compose kennt # keine Defaults in der Form ${VAR:-x}, also steht dort jede Variable. # Secrets NUR dort, nie 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 für die Oberfläche # # Betrieb über `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} KM_CLASSIFICATION: ${KM_CLASSIFICATION} KM_GIT_REMOTE: ${KM_GIT_REMOTE} KM_GIT_BRANCH: ${KM_GIT_BRANCH} KM_GIT_USER: ${KM_GIT_USER} KM_GIT_PASSWORD: ${KM_GIT_PASSWORD} KM_GIT_NAME: ${KM_GIT_NAME} KM_GIT_EMAIL: ${KM_GIT_EMAIL} 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} # weitere Git-Quellen als Checkout unter /doku/ (docs/quellen.md) KM_SOURCES: ${KM_SOURCES} KM_INTERVAL: ${KM_INTERVAL} # 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} KM_OLLAMA_URL: ${KM_OLLAMA_URL} KM_PORT: "8390" # requests bringt ein eigenes CA-Bündel mit (certifi) und kennt die # interne CA (acme.lan) nicht -- ohne diese Zeile scheitert jeder # Aufruf an git.home mit CERTIFICATE_VERIFY_FAILED (hive.home, 04.09.). REQUESTS_CA_BUNDLE: /etc/ssl/certs/ca-certificates.crt volumes: - /srv/km/data:/data # CA-Bündel des Wirts, inklusive interner Root-CA -- wie bei caddy - /etc/ssl/certs/ca-certificates.crt:/etc/ssl/certs/ca-certificates.crt:ro 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 # Oberfläche liegt deshalb unter /km, die API unter /km/api. SB_URL_PREFIX: /km SB_USER: ${SB_USER} # die Dateien gehören 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