Перейти к основному содержимому

Установка через 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

После запуска подключите ассистента. Другие параметры — в настройке.