cleanup and remote only

This commit is contained in:
2026-05-09 10:52:25 -05:00
parent 2fc47a52fc
commit 40e5e5e3cc
136 changed files with 1502 additions and 349529 deletions
+41
View File
@@ -0,0 +1,41 @@
# syntax=docker/dockerfile:1.7
FROM python:3.13-slim
ENV DEBIAN_FRONTEND=noninteractive \
PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1 \
PIP_NO_CACHE_DIR=1 \
HOME=/data \
MEMPALACE_PALACE_PATH=/data/palace
# libgomp1: required at runtime by onnxruntime (used by chromadb's default
# embedding function — all-MiniLM-L6-v2 ONNX).
RUN apt-get update \
&& apt-get install -y --no-install-recommends ca-certificates libgomp1 \
&& rm -rf /var/lib/apt/lists/*
# Unraid convention: appdata is owned by nobody:users (99:100). Run as that
# UID/GID so files written to /data inherit the right ownership on the host.
RUN groupadd -g 100 users \
&& useradd -u 99 -g 100 -m -d /data -s /usr/sbin/nologin mempalace
WORKDIR /build
COPY pyproject.toml README.md ./
COPY mempalace ./mempalace
RUN pip install --no-cache-dir . mcp-proxy \
&& rm -rf /build
WORKDIR /data
RUN chown -R 99:100 /data
USER 99:100
# 8765 — MCP over SSE (mcp-proxy)
# 8766 — HTTP ingest (in-process thread, started when MEMPALACE_INGEST_PORT set)
EXPOSE 8765 8766
HEALTHCHECK --interval=30s --timeout=5s --start-period=30s --retries=3 \
CMD python -c "import socket,sys;s=socket.socket();s.settimeout(2);sys.exit(0 if s.connect_ex(('127.0.0.1',8765))==0 else 1)"
# mcp-proxy wraps the stdio MCP server and exposes it as SSE on :8765.
# --pass-environment forwards MEMPALACE_* vars to the spawned child.
CMD ["mcp-proxy","--sse-host","0.0.0.0","--sse-port","8765","--pass-environment","--","mempalace-mcp"]