Установка через Docker Compose
Установите mnemos на свой сервер с помощью Docker Compose.
В примере используются PostgreSQL, Ollama, MCP-сервер и HTTP API.
Если вы подключаете только ИИ-ассистента по MCP, сервис api можно убрать.
Что понадобится
- Docker с плагином Compose;
- 4 ГБ оперативной памяти: около 2 ГБ занимает модель эмбеддингов;
- обратный прокси с TLS, если сервер будет доступен снаружи. Контейнеры слушают
только
127.0.0.1.
1. Создайте docker-compose.yml
name: mnemos
services:
postgres:
image: pgvector/pgvector:pg17
environment:
POSTGRES_USER: mnemos
POSTGRES_PASSWORD: ${MNEMOS_DATABASE_PASSWORD}
POSTGRES_DB: mnemos
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U mnemos"]
interval: 5s
retries: 20
# Локальная модель для поиска по смыслу.
ollama:
image: ollama/ollama:latest
volumes:
- ollama:/root/.ollama
entrypoint: ["/bin/sh", "-c"]
command: >
"ollama serve &
until ollama list >/dev/null 2>&1; do sleep 1; done;
ollama pull bge-m3;
wait"
healthcheck:
test: ["CMD-SHELL", "ollama list | grep -q bge-m3"]
interval: 10s
retries: 60
start_period: 30s
restart: unless-stopped
mnemos:
image: cr.yandex/crpo20ag926fr5ijfri7/mnemos-mcp:latest
env_file: .env
depends_on:
postgres:
condition: service_healthy
ollama:
condition: service_healthy
ports:
- "127.0.0.1:8090:8090"
restart: unless-stopped
# API для приложений и скриптов.
api:
image: cr.yandex/crpo20ag926fr5ijfri7/mnemos-api:latest
env_file: .env
depends_on:
mnemos:
condition: service_started
ports:
- "127.0.0.1:8091:8090"
restart: unless-stopped
volumes:
pgdata:
ollama:
2. Создайте .env
Сохраните файл рядом с docker-compose.yml. Укажите свой пароль базы данных
и адреса для авторизации.
# База
MNEMOS_DATABASE_HOST=postgres
MNEMOS_DATABASE_USER=mnemos
MNEMOS_DATABASE_PASSWORD=смените-это
MNEMOS_DATABASE_NAME=mnemos
MNEMOS_DATABASE_SSLMODE=disable
# Эмбеддинги
MNEMOS_EMBEDDINGS_BASE_URL=http://ollama:11434/v1
MNEMOS_EMBEDDINGS_MODEL=bge-m3
MNEMOS_EMBEDDINGS_DIMENSIONS=1024
# Авторизация
MNEMOS_AUTH_ISSUER_URL=https://auth.example.com
MNEMOS_AUTH_PUBLIC_URL=https://mnemos.example.com
3. Запустите mnemos
docker compose up -d
При первом запуске дождитесь загрузки модели — около 2 ГБ.
Проверьте состояние сервера:
curl -s http://127.0.0.1:8090/healthz
docker compose logs --tail 20 mnemos
Эмбеддинги: локально или внешним сервисом
Локально (по умолчанию)
В примере используется Ollama с моделью bge-m3. Для неё нужно около 2 ГБ
памяти. Текст для поиска обрабатывается на вашем сервере.
MNEMOS_EMBEDDINGS_BASE_URL=http://ollama:11434/v1
MNEMOS_EMBEDDINGS_MODEL=bge-m3
MNEMOS_EMBEDDINGS_DIMENSIONS=1024
Внешним сервисом
Для внешнего сервиса с API /v1/embeddings укажите адрес, ключ и модель.
Пример для OpenAI:
MNEMOS_EMBEDDINGS_BASE_URL=https://api.openai.com/v1
MNEMOS_EMBEDDINGS_API_KEY=sk-...
MNEMOS_EMBEDDINGS_MODEL=text-embedding-3-large
MNEMOS_EMBEDDINGS_DIMENSIONS=1024
MNEMOS_EMBEDDINGS_REQUEST_DIMENSIONS=true
Используйте размерность 1024. Для этого примера оставьте
MNEMOS_EMBEDDINGS_REQUEST_DIMENSIONS=true; для Ollama этот параметр не нужен.
Авторизация
Задайте два адреса:
MNEMOS_AUTH_ISSUER_URL— адрес вашего OAuth-сервера.MNEMOS_AUTH_PUBLIC_URL— публичный адрес mnemos, напримерhttps://mnemos.example.com.
Без них сервер не запустится: режима без авторизации нет.
Обновление
docker compose pull
docker compose up -d
После запуска подключите ассистента. Другие параметры — в настройке.