mem0-aio
Docker 应用程序 from JSONbored's Repository
概述
Mem0 OpenMemory gives LLM apps a persistent memory layer with a web UI, MCP/API server, and pluggable vector backends.
All-In-One Unraid Editionmem0-aio packages the OpenMemory UI, API, and embedded Qdrant into one Unraid-first container so beginners can get a working first boot without wiring a separate vector database.
Quick Install (Beginners)
- Install the template and leave the default appdata path in place.
- For the fastest hosted path, set [code]OPENAI_API_KEY[/code].
- For the normal local-LLM homelab path, set [code]OLLAMA_BASE_URL[/code] to your external Ollama root URL and set the Ollama chat/embed models you actually have pulled.
- Start the container and open the Web UI. The wrapper will auto-default to Ollama when [code]OLLAMA_BASE_URL[/code] is set and no explicit provider overrides are supplied.
- Leave the direct API/MCP port unpublished unless you intentionally need external MCP/API clients behind your own access controls. If you publish it, set [code]MEM0_API_HOST=0.0.0.0[/code] and protect that endpoint yourself.
Advanced View
- Leave storage defaults in place for the bundled SQLite + Qdrant path.
- If you use external vector storage, configure exactly one backend. The wrapper rejects competing selectors such as Redis plus PGVector plus external Qdrant because OpenMemory can only initialize one vector store at a time.
- Provider overrides are available for native Ollama, OpenAI-compatible endpoints, hosted model providers, and supported external vector stores, but only set the fields your chosen path needs.
Important Notes
- This wrapper is meant to simplify first boot on Unraid, not remove the real complexity of model/provider credentials and external-service tuning.
- Actual memory generation still requires a valid LLM/embedder configuration. Leaving [code]OPENAI_API_KEY[/code] blank is fine if you are using Ollama, but you still need to provide a reachable Ollama endpoint and valid model names.
- Native Ollama uses the root API URL such as [code]http://host.docker.internal:11434[/code], not an OpenAI-compatible [code]/v1[/code] path. If your reverse proxy adds auth and only exposes an OpenAI-style [code]/v1[/code] endpoint, use the advanced OpenAI-compatible base URL fields instead of the native Ollama provider path.
- The embedded Qdrant service is intentionally bundled for the beginner AIO path; it is skipped only when one valid external vector backend is configured.
要求
运行时参数
- 网络用户界面
http://[IP]:[PORT:3000]- 网络
bridge- 外壳
sh- 特权
- false
模板配置
Main OpenMemory web interface port.
- 目标
- 3000
- 默认值
- 3000
- 价值
- 3000
Optional direct API and MCP host port. Leave blank for normal UI-only access. If you publish this port, also set [Security] API Bind Address (MEM0_API_HOST) to 0.0.0.0 and protect access at your network or reverse proxy.
- 目标
- 8765
Persistent storage for the SQLite database, embedded Qdrant data, and AIO state.
- 目标
- /mem0/storage
- 默认值
- /mnt/user/appdata/mem0-aio/storage
- 价值
- /mnt/user/appdata/mem0-aio/storage
Optional hosted-provider quick start. Leave blank if you plan to use Ollama instead.
- 目标
- OPENAI_API_KEY
Default user namespace used by the API and MCP server.
- 目标
- USER
- 默认值
- default_user
- 价值
- default_user
Native external Ollama root URL. Example: http://host.docker.internal:11434 or http://192.168.1.10:11434. When set, the wrapper auto-defaults to Ollama if no explicit provider override is supplied.
- 目标
- OLLAMA_BASE_URL
Optional Ollama chat model override. Set this to a model you already have pulled on your Ollama server. Example: llama3.1:latest or mistral:7b
- 目标
- LLM_MODEL
Optional Ollama embedding model override. Set this to a model you already have pulled on your Ollama server. Example: nomic-embed-text
- 目标
- EMBEDDER_MODEL
Bind address for the internal API/MCP server. Keep 127.0.0.1 for UI-only access; use 0.0.0.0 only when deliberately publishing the API/MCP port behind your own LAN, VPN, firewall, or reverse-proxy controls.
- 目标
- MEM0_API_HOST
- 默认值
- 127.0.0.1
- 价值
- 127.0.0.1
Default same-origin proxy path for the web UI. Leave this alone unless you intentionally want the browser to call a different API URL directly.
- 目标
- NEXT_PUBLIC_API_URL
- 默认值
- /openmemory-api
- 价值
- /openmemory-api
Default user ID shown in the browser client. Usually keep this aligned with USER.
- 目标
- NEXT_PUBLIC_USER_ID
- 默认值
- default_user
- 价值
- default_user
Advanced provider override. Leave this on auto for the normal wrapper behavior: OpenAI when no Ollama URL is set, or Ollama when OLLAMA_BASE_URL is set.
- 目标
- LLM_PROVIDER
- 默认值
- auto|openai|anthropic|azure_openai|ollama|together|groq|litellm|mistralai|google_ai|aws_bedrock|gemini|deepseek|xai|lmstudio|langchain
- 价值
- auto
Optional provider-specific API key if you are not using OPENAI_API_KEY or if you want the LLM to use a different secret.
- 目标
- LLM_API_KEY
Optional custom LLM API base URL for OpenAI-compatible or provider-specific endpoints. Use this for auth-protected OpenAI-style proxies, usually ending in /v1.
- 目标
- LLM_BASE_URL
Optional host override used by upstream Docker Ollama auto-detection. Example: host.docker.internal
- 目标
- OLLAMA_HOST
Advanced embedder provider override. Leave this on auto for the normal wrapper behavior so the embedder follows the matching OpenAI or Ollama path.
- 目标
- EMBEDDER_PROVIDER
- 默认值
- auto|openai|azure_openai|ollama|huggingface|vertexai|gemini|lmstudio|together|langchain|aws_bedrock
- 价值
- auto
Optional provider-specific embedder API key.
- 目标
- EMBEDDER_API_KEY
Optional custom embedder API base URL. Use this for OpenAI-compatible or separate embedding endpoints, including auth-protected proxies that expose /v1.
- 目标
- EMBEDDER_BASE_URL
Optional explicit embedding dimension override for vector-store setup. Usually leave blank and let the wrapper auto-detect it, but set this if your embedder is custom or auto-detection cannot determine the correct size.
- 目标
- EMBEDDER_DIMENSIONS
Advanced override for the API database connection. Leave the default SQLite path for normal AIO usage.
- 目标
- DATABASE_URL
- 默认值
- sqlite:////mem0/storage/openmemory.db
- 价值
- sqlite:////mem0/storage/openmemory.db
Legacy upstream alias used by older OpenMemory examples that referenced env:API_KEY. Leave blank unless you intentionally depend on that older pattern.
- 目标
- API_KEY
External Qdrant URL, for example http://qdrant:6333 or https://qdrant.example.com. Use this instead of external QDRANT_HOST when auth or HTTPS is involved. Do not combine with Redis, PGVector, or other vector backends.
- 目标
- QDRANT_URL
Bundled Qdrant host by default. Leave as 127.0.0.1 for the AIO path; set to an external host only when Qdrant is the one external vector backend you want.
- 目标
- QDRANT_HOST
- 默认值
- 127.0.0.1
- 价值
- 127.0.0.1
Qdrant port for the bundled or selected external Qdrant backend.
- 目标
- QDRANT_PORT
- 默认值
- 6333
- 价值
- 6333
API key for authenticated external Qdrant. Requires QDRANT_URL or an external QDRANT_HOST; the bundled Qdrant service is not started with API-key auth.
- 目标
- QDRANT_API_KEY
Controls Qdrant usage-statistics reporting for the bundled embedded vector store. Default is true so the AIO image stays privacy-first by default.
- 目标
- QDRANT__TELEMETRY_DISABLED
- 默认值
- true|false
- 价值
- true
External Chroma host. Requires CHROMA_PORT and must be the only external vector backend configured.
- 目标
- CHROMA_HOST
External Chroma port. Requires CHROMA_HOST.
- 目标
- CHROMA_PORT
External Weaviate cluster URL. Use this or WEAVIATE_HOST/WEAVIATE_PORT, and do not combine with another vector backend.
- 目标
- WEAVIATE_CLUSTER_URL
External Weaviate host. Requires WEAVIATE_PORT unless WEAVIATE_CLUSTER_URL is set.
- 目标
- WEAVIATE_HOST
External Weaviate port. Requires WEAVIATE_HOST unless WEAVIATE_CLUSTER_URL is set.
- 目标
- WEAVIATE_PORT
Redis-backed vector-store URL. Example: redis://:password@host:6379/0. This selects Redis as the vector backend; do not combine with PGVector or Qdrant.
- 目标
- REDIS_URL
External PostgreSQL/pgvector host. Requires PG_PORT and must be the only external vector backend configured.
- 目标
- PG_HOST
External PostgreSQL/pgvector port. Required when any PG_* vector-store setting is used.
- 目标
- PG_PORT
External PostgreSQL database name for pgvector. Defaults to mem0 when PGVector is selected and this is blank.
- 目标
- PG_DB
External PostgreSQL username for pgvector. Defaults to mem0 when PGVector is selected and this is blank.
- 目标
- PG_USER
External PostgreSQL password for pgvector. Defaults to mem0 when PGVector is selected and this is blank.
- 目标
- PG_PASSWORD
Optional external Milvus host.
- 目标
- MILVUS_HOST
Optional external Milvus port.
- 目标
- MILVUS_PORT
Optional Milvus token for authenticated deployments.
- 目标
- MILVUS_TOKEN
Optional Milvus database name.
- 目标
- MILVUS_DB_NAME
Optional external Elasticsearch host.
- 目标
- ELASTICSEARCH_HOST
Optional external Elasticsearch port.
- 目标
- ELASTICSEARCH_PORT
Optional Elasticsearch username.
- 目标
- ELASTICSEARCH_USER
Optional Elasticsearch password.
- 目标
- ELASTICSEARCH_PASSWORD
Whether the Elasticsearch HTTP endpoint uses HTTPS. Default is true because modern Elasticsearch containers usually expose HTTPS.
- 目标
- ELASTICSEARCH_USE_SSL
- 默认值
- true|false
- 价值
- true
Whether to verify Elasticsearch TLS certificates. Keep true for external HTTPS backends; set false only for a trusted self-signed endpoint on a private network.
- 目标
- ELASTICSEARCH_VERIFY_CERTS
- 默认值
- true|false
- 价值
- true
Optional external OpenSearch host.
- 目标
- OPENSEARCH_HOST
Optional external OpenSearch port.
- 目标
- OPENSEARCH_PORT
Optional OpenSearch username.
- 目标
- OPENSEARCH_USER
Optional OpenSearch password.
- 目标
- OPENSEARCH_PASSWORD
Whether the OpenSearch HTTP endpoint uses HTTPS. Default is true because modern OpenSearch containers usually expose HTTPS.
- 目标
- OPENSEARCH_USE_SSL
- 默认值
- true|false
- 价值
- true
Whether to verify OpenSearch TLS certificates. Keep true for external HTTPS backends; set false only for a trusted self-signed endpoint on a private network.
- 目标
- OPENSEARCH_VERIFY_CERTS
- 默认值
- true|false
- 价值
- true
Optional FAISS storage path inside the container or a mounted host path.
- 目标
- FAISS_PATH
Optional one-shot filter for the bundled upstream export helper script. Only set this if you intentionally run the export tooling inside the container.
- 目标
- EXPORT_USER_ID
Optional one-shot filter for the bundled upstream export helper script.
- 目标
- EXPORT_APP_ID
Optional one-shot export filter. Epoch timestamp in seconds.
- 目标
- EXPORT_FROM_DATE
Optional one-shot export filter. Epoch timestamp in seconds.
- 目标
- EXPORT_TO_DATE
下载统计数据
详细信息
jsonbored/mem0-aio:latest在Unraid 上运行 mem0-aio 。
mem0-aio 已被列入Unraid OS 的社区应用程序。探索Unraid ,构建灵活的家庭服务器、NAS 或家庭实验室。