Verlasse dich nicht auf compose-Defaults
podman-compose auf Debian 13 reicht ${VAR:-x} wörtlich durch; km bekam
den Platzhalter als Repo-Namen. Jede Variable steht jetzt in der .env
(Vorlage deploy/env.example), und die Konfiguration verwirft Werte, die
wie ein unersetzter Platzhalter aussehen.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
+13
-11
@@ -10,7 +10,9 @@
|
||||
# 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:
|
||||
# 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
|
||||
@@ -26,24 +28,24 @@ services:
|
||||
restart: unless-stopped
|
||||
network_mode: host
|
||||
environment:
|
||||
KM_NAMESPACE: ${KM_NAMESPACE:-familie}
|
||||
KM_CLASSIFICATION: ${KM_CLASSIFICATION:-home}
|
||||
KM_NAMESPACE: ${KM_NAMESPACE}
|
||||
KM_CLASSIFICATION: ${KM_CLASSIFICATION}
|
||||
KM_GIT_REMOTE: ${KM_GIT_REMOTE}
|
||||
KM_GIT_BRANCH: ${KM_GIT_BRANCH:-main}
|
||||
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}
|
||||
KM_GIT_EMAIL: ${KM_GIT_EMAIL:-km@localhost}
|
||||
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:-}
|
||||
KM_INTERVAL: ${KM_INTERVAL:-300}
|
||||
KM_GITEA_ORGS: ${KM_GITEA_ORGS}
|
||||
KM_GITEA_REPOS: ${KM_GITEA_REPOS}
|
||||
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:-0}
|
||||
KM_OLLAMA_URL: ${KM_OLLAMA_URL:-http://10.18.5.30:11434}
|
||||
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
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
# Vorlage fuer /srv/km/.env (root-only, 0600). Jede Variable muss stehen --
|
||||
# podman-compose kennt keine Defaults in der compose-Datei.
|
||||
KM_NAMESPACE=familie
|
||||
KM_CLASSIFICATION=home
|
||||
KM_GIT_REMOTE=https://git.home/ahmann/km.git
|
||||
KM_GIT_BRANCH=main
|
||||
KM_GIT_USER=agent
|
||||
KM_GIT_PASSWORD=aus-openbao
|
||||
KM_GIT_NAME=42i Agent
|
||||
KM_GIT_EMAIL=info@ahmann.org
|
||||
KM_GITEA_URL=https://git.home
|
||||
KM_GITEA_USER=agent
|
||||
KM_GITEA_PASSWORD=aus-openbao
|
||||
KM_GITEA_ORGS=ahmann
|
||||
KM_GITEA_REPOS=
|
||||
KM_INTERVAL=300
|
||||
KM_EMBED=0
|
||||
KM_OLLAMA_URL=http://10.18.5.30:11434
|
||||
SB_USER=andreas:aus-openbao
|
||||
+10
-2
@@ -13,8 +13,16 @@ from dataclasses import dataclass, field
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
def _clean(v: str | None) -> str:
|
||||
"""podman-compose (Debian 13) ersetzt `${VAR:-x}` nicht, sondern reicht
|
||||
den Platzhalter woertlich durch -- gesehen auf hive.home am 04.09. Ein
|
||||
Wert, der so aussieht, ist keiner."""
|
||||
v = (v or "").strip()
|
||||
return "" if v.startswith("${") else v
|
||||
|
||||
|
||||
def _list(v: str) -> list[str]:
|
||||
return [x.strip() for x in v.replace(";", ",").split(",") if x.strip()]
|
||||
return [x.strip() for x in _clean(v).replace(";", ",").split(",") if x.strip()]
|
||||
|
||||
|
||||
@dataclass
|
||||
@@ -50,7 +58,7 @@ class Config:
|
||||
|
||||
@classmethod
|
||||
def from_env(cls) -> "Config":
|
||||
e = os.environ.get
|
||||
e = lambda k, d="": _clean(os.environ.get(k)) or d # noqa: E731
|
||||
cfg = cls(
|
||||
ablage=Path(e("KM_ABLAGE", "/data/ablage")),
|
||||
namespace=e("KM_NAMESPACE", ""),
|
||||
|
||||
Reference in New Issue
Block a user