100 lines
3.6 KiB
XML
100 lines
3.6 KiB
XML
|
|
<?xml version="1.0"?>
|
||
|
|
<Container version="2">
|
||
|
|
<Name>MemPalace</Name>
|
||
|
|
<Repository>mempalace-server:latest</Repository>
|
||
|
|
<Registry>https://github.com/MemPalace/mempalace</Registry>
|
||
|
|
<Network>bridge</Network>
|
||
|
|
<MyIP/>
|
||
|
|
<Shell>sh</Shell>
|
||
|
|
<Privileged>false</Privileged>
|
||
|
|
<Support>https://github.com/MemPalace/mempalace/issues</Support>
|
||
|
|
<Project>https://github.com/MemPalace/mempalace</Project>
|
||
|
|
<Overview>
|
||
|
|
Local-first AI memory server. Stores conversations and project content
|
||
|
|
verbatim in a searchable palace, exposed to MCP-compatible AI tools
|
||
|
|
(Claude Code, Codex, Antigravity, etc.) over Server-Sent Events on
|
||
|
|
port 8765.
|
||
|
|
|
||
|
|
The image is built locally — see Dockerfile in the repo root. From the
|
||
|
|
Unraid CLI:
|
||
|
|
|
||
|
|
cd /mnt/user/<path>/mempalace
|
||
|
|
docker build -t mempalace-server:latest .
|
||
|
|
|
||
|
|
Then add this template via Add Container -- Template.
|
||
|
|
|
||
|
|
Mount /mnt/user/appdata/mempalace to /data for persistent storage of
|
||
|
|
the ChromaDB index, SQLite knowledge graph, and embedding-model cache.
|
||
|
|
|
||
|
|
SECURITY: this container exposes the MCP endpoint without authentication.
|
||
|
|
Bind it to a trusted network (LAN-only or Tailscale) or place it behind
|
||
|
|
SWAG / Nginx Proxy Manager with bearer-token or basic auth.
|
||
|
|
|
||
|
|
Endpoint: http://[UNRAID-IP]:8765/sse
|
||
|
|
</Overview>
|
||
|
|
<Category>Productivity: Tools: Other:</Category>
|
||
|
|
<WebUI/>
|
||
|
|
<TemplateURL/>
|
||
|
|
<Icon>https://raw.githubusercontent.com/MemPalace/mempalace/develop/assets/mempalace_logo.png</Icon>
|
||
|
|
<ExtraParams>--user 99:100</ExtraParams>
|
||
|
|
<PostArgs/>
|
||
|
|
<CPUset/>
|
||
|
|
<DateInstalled/>
|
||
|
|
<DonateText/>
|
||
|
|
<DonateLink/>
|
||
|
|
<Description>
|
||
|
|
Persistent AI memory across machines. Connect Claude Code, Codex,
|
||
|
|
Antigravity, or any MCP-compatible client to a single shared palace.
|
||
|
|
</Description>
|
||
|
|
|
||
|
|
<Config Name="MCP SSE port"
|
||
|
|
Target="8765"
|
||
|
|
Default="8765"
|
||
|
|
Mode="tcp"
|
||
|
|
Description="Port the MCP-over-SSE endpoint listens on. Clients connect to http://[UNRAID-IP]:[PORT]/sse."
|
||
|
|
Type="Port"
|
||
|
|
Display="always"
|
||
|
|
Required="true"
|
||
|
|
Mask="false">8765</Config>
|
||
|
|
|
||
|
|
<Config Name="Appdata"
|
||
|
|
Target="/data"
|
||
|
|
Default="/mnt/user/appdata/mempalace"
|
||
|
|
Mode="rw"
|
||
|
|
Description="Persistent storage for the palace (ChromaDB), knowledge graph (SQLite), embedding-model cache, and config."
|
||
|
|
Type="Path"
|
||
|
|
Display="always"
|
||
|
|
Required="true"
|
||
|
|
Mask="false">/mnt/user/appdata/mempalace</Config>
|
||
|
|
|
||
|
|
<Config Name="Palace path (inside container)"
|
||
|
|
Target="MEMPALACE_PALACE_PATH"
|
||
|
|
Default="/data/palace"
|
||
|
|
Mode=""
|
||
|
|
Description="Subdirectory inside /data where ChromaDB files live. Change only if migrating from a different layout."
|
||
|
|
Type="Variable"
|
||
|
|
Display="advanced"
|
||
|
|
Required="false"
|
||
|
|
Mask="false">/data/palace</Config>
|
||
|
|
|
||
|
|
<Config Name="Embedding device"
|
||
|
|
Target="MEMPALACE_EMBEDDING_DEVICE"
|
||
|
|
Default=""
|
||
|
|
Mode=""
|
||
|
|
Description="ONNX execution provider: cpu | cuda | dml | coreml. Leave blank for auto. CUDA requires the NVIDIA Driver plugin and GPU passthrough; the image must be rebuilt with the [gpu] extra installed."
|
||
|
|
Type="Variable"
|
||
|
|
Display="advanced"
|
||
|
|
Required="false"
|
||
|
|
Mask="false"></Config>
|
||
|
|
|
||
|
|
<Config Name="Entity-detection languages"
|
||
|
|
Target="MEMPALACE_ENTITY_LANGUAGES"
|
||
|
|
Default="en"
|
||
|
|
Mode=""
|
||
|
|
Description="Comma-separated language codes for entity detection (e.g. en,es,de)."
|
||
|
|
Type="Variable"
|
||
|
|
Display="advanced"
|
||
|
|
Required="false"
|
||
|
|
Mask="false">en</Config>
|
||
|
|
</Container>
|