Mache km zum Dienst: HTTP-API, Takt, Git-Ablage, Image und compose
Ein Prozess (image/km/main.py) mit API (read, search, summary, health, refresh) auf Standardbibliothek und einem Takt, der die Ablage zieht, Gitea einliest, indexiert und alles Geänderte committet und pusht — auch Änderungen aus SilverBullet. Die Ablage ist ein Git-Checkout auf dem Volume, der Index eine SQLite-Datei daneben; ein Start ohne nötige Umgebung hält mit einer Liste an. deploy/compose.yml: km plus SilverBullet auf demselben Volume, für den oci-Betrieb in hive.home unter /km (SB_URL_PREFIX). deploy/health für 42i-hc. Lokal gegen ein Bare-Remote und spine/core durchgespielt: Ingest, Index, Commit, Push, Suche, Read mit Kanten in beide Richtungen, und eine von Hand angelegte Seite landet im nächsten Takt im Remote. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# km -- der Wissensdienst (spine/core#8). Benannt nach der Faehigkeit.
|
||||
#
|
||||
# Ein Prozess: HTTP-API + Takt (ziehen, einlesen, indexieren, einliefern).
|
||||
# Die Ablage ist ein Git-Checkout auf dem Volume /data/ablage, der Index eine
|
||||
# SQLite-Datei daneben. SilverBullet als Oberflaeche ist ein eigener Container
|
||||
# auf demselben Volume (deploy/compose.yml), nicht Teil dieses Images.
|
||||
FROM docker.io/library/python:3.13-slim
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends git ca-certificates curl \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
WORKDIR /app
|
||||
COPY requirements.txt /app/
|
||||
RUN pip install --no-cache-dir -r requirements.txt
|
||||
|
||||
COPY km/ /app/km/
|
||||
COPY entrypoint.sh /app/entrypoint.sh
|
||||
RUN chmod +x /app/entrypoint.sh /app/km/*.py
|
||||
|
||||
ENV KM_ABLAGE=/data/ablage \
|
||||
KM_PORT=8390 \
|
||||
PYTHONUNBUFFERED=1
|
||||
|
||||
VOLUME ["/data"]
|
||||
EXPOSE 8390
|
||||
|
||||
HEALTHCHECK --interval=60s --timeout=5s --start-period=30s \
|
||||
CMD curl -fsS http://127.0.0.1:8390/health >/dev/null || exit 1
|
||||
|
||||
ENTRYPOINT ["/app/entrypoint.sh"]
|
||||
Reference in New Issue
Block a user