Relaticle
Open-source CRM, в которую ИИ-агент заходит через встроенный MCP-сервер: Claude или Claude Code читают воронку и заводят сделки, ассистент внутри работает по вашему ключу или через свой шлюз. Запустили v3.5.8 на Fatmetal Cloud Server и замерили пять контейнеров стека.
Вердикт
- командам 3-20 человек, которым нужна легкая CRM (компании, люди, сделки, задачи) без платы за место
- тем, кто строит ИИ-агентов вокруг продаж: MCP-сервер на 37 инструментов и REST API из коробки
- PHP-командам, которым нужно CRM-ядро под доработку на Laravel и Filament
- кому нужен русский интерфейс: локаль только английская
- кому нужны почта, секвенции, телефония, отчеты - этого в продукте нет
- кто планирует прод на годы без готовности к форку: у апстрима один разработчик
Что это и какую задачу решает
Relaticle - self-hosted CRM с классическим ядром: компании, люди, сделки с воронкой стадий, задачи с канбаном, заметки. Есть импорт и экспорт CSV, история изменений записи, корзина удаленного и несколько workspace на одной инсталляции.
От соседей по каталогу продукт отличает то, что ИИ-слой здесь не надстройка, а ядро. Одни и те же данные доступны тремя путями: встроенный MCP-сервер, REST API с полным CRUD и чат-ассистент Rela внутри интерфейса.
Модель выбираете сами: ключ Anthropic или OpenAI, локальный Ollama или любой OpenAI-совместимый endpoint. Без ключа CRM работает полностью, ассистент просто сообщает, что ответить не может.
Интерфейс только английский. Продукт готов к переводу, но локаль в апстриме одна; русская - своими силами в форке через каталог lang.
ИИ-агент для продаж живет в CRM: как Claude читает воронку через MCP
Не бот, который сам пишет лидам, а CRM, в которой агент работает с данными.
MCP (Model Context Protocol) - открытый протокол, по которому Claude, Claude Code, Cursor и другие клиенты подключают внешние инструменты. Relaticle отдает через него 37 инструментов: поиск, создание и обновление записей, схема полей, история активности, анализ воронки.
На практике агент получает вопрос «какие сделки зависли на стадии Proposal дольше двух недель», сам вызывает поиск по opportunities и возвращает список. Или заводит компанию и контакт из письма - без ручного копирования в форму.
Тот же набор инструментов использует ассистент Rela в интерфейсе. Принцип апстрима: любая запись, которую предлагает модель, требует явного подтверждения человеком до сохранения. Агент в базу молча не пишет.
Главное. MCP-сервер и REST API снаружи не тратят ИИ-кредиты - счетчик касается только чата внутри CRM. Для сценария «агент работает с CRM» self-host дает полный объем без лимита.
Если вы искали MCP-сервер для Битрикс24 или amoCRM: в Relaticle он встроен, но это другая CRM, а не мост к вашей. Данные придется перенести через импорт CSV.
На стенде MCP-клиент к серверу не подключали: ключ модели и переменная MCP_ALLOWED_ORIGINS в этот прогон не входили. Цифры ниже - про сам CRM-стек.
Чем отличается от Attio и облака вендора
Только то, что влияет на выбор. Цены сняты 15 сентября 2026 со страниц вендоров.
| Параметр | Relaticle self-host | Relaticle Cloud | Attio |
|---|---|---|---|
| Модель цены | VM CPU2-RAM4-DISK50 за 500 ₽/мес на всех | $19/мес за workspace (годовая), $24 помесячно | Plus €39 за место/мес (€31 годовая), Pro €93; Free до 3 мест |
| 10 человек, месяц | 500 ₽ | $19 | €310 на Plus |
| Где данные | на вашем сервере | у вендора | у вендора |
| ИИ-кредиты в месяц | 300 по умолчанию, до 10 000 правкой плана | 2000 | по тарифу |
| Модель для ассистента | свой ключ, Ollama или любой OpenAI-совместимый endpoint | ключ вендора | ключ вендора |
| Код и схема БД | AGPL-3.0, те же, что в облаке | те же | закрыты |
Против облака самого вендора self-host почти не экономит: $228 в год против 6000 ₽ за VM - порядок один. Экономия начинается против per-seat SaaS: уже на 3-5 людях подписка обгоняет VM в разы.
Мотив для команды из РФ другой. Данные клиентов под 152-ФЗ остаются на своем сервере, оплата в рублях, а модель для ассистента подключается через свой endpoint, а не через ключ вендора.
Тех-стек: CRM на Laravel 13 и Filament 5
Ядро - Laravel 13, интерфейс собран на Filament 5 и Livewire 4, PHP 8.5. Базовый образ serversideup/php:8.5-fpm-nginx: nginx и PHP-FPM живут в одном контейнере и слушают 8080.
В compose пять контейнеров: app (веб, при старте сам гоняет миграции), horizon (очередь Laravel Horizon), scheduler (периодические задачи), postgres:17-alpine и redis:7-alpine с AOF. Первые три - один образ.
Томов три: postgres, redis и storage под загруженные файлы. Наружу торчит только app на порту APP_PORT; TLS - своим reverse proxy, заголовки X-Forwarded принимаются с RFC1918 и loopback без настройки.
Для доработки под клиента стек удобный: 22 типа кастомных полей добавляются из интерфейса без миграций, включая связи между сущностями, условную видимость и шифрование отдельных полей. Несколько workspace изолируют данные на одной инсталляции.
Минимальная конфигурация
Требования апстрима против того, что показал стенд.
| Официальный минимум | 1 core / 2 GB / 10 GB |
| Рекомендация апстрима | 2 cores / 4 GB / 20 GB+ |
| Реально в простое, 5 контейнеров | ~1.5 ГБ |
| Занято на хосте | 2.1 из 3.8 ГБ |
| Диск после установки | 4.4 ГБ, из них образы ~1.9 ГБ |
| Тариф Fatmetal | CPU2-RAM4-DISK50 - 500 ₽/мес |
Важно: 4 ГБ - впритык, не с запасом. Horizon один держит ~1.26 ГБ и сразу после старта, и через 4 часа. Для нескольких workspace с живыми очередями и чатом смотрите на CPU4-RAM8-DISK100 за 1100 ₽/мес.
Локальный Ollama на той же VM в этот тариф не помещается: апстрим советует модели класса qwen3:14b и llama3.1:70b и режет ответ по таймауту 120 с. Модель живет снаружи, CRM - на 2 vCPU.
В маркетплейсе Fatmetal
Не хотите ставить руками?
Relaticle есть в маркетплейсе Fatmetal - можно не повторять установку из этого разбора вручную. Заказываете сервер, за пару минут получаете рабочую CRM на своем домене, валидный TLS и файл с доступами.
Рекомендуемая конфигурация: CPU2-RAM4-DISK50
Развертывание на Fatmetal
Fatmetal Cloud Server + Ubuntu 24.04 + Docker. Путь апстрима плюс пин тега и Caddy.
Создать VM
Тариф CPU2-RAM4-DISK50, Ubuntu 24.04, приложение Docker. На чистом образе Docker Engine и compose-plugin ставятся из официального apt-репозитория за ~105 секунд.
Взять compose на теге релиза и запинить образ
git clone --depth 1 --branch v3.5.8 https://github.com/relaticle/relaticle.git mkdir ~/relaticle-deploy && cp relaticle/compose.yml ~/relaticle-deploy/ && cd ~/relaticle-deploy sed -i "s#relaticle:latest#relaticle:3.5.8#g" compose.ymlТег в compose апстрима зашит как
latest, поэтому sed. Docker-теги идут без префикса:3.5.8, неv3.5.8.Секреты и .env
cat > .env <<EOF APP_ENV=production APP_KEY=base64:$(openssl rand -base64 32) APP_URL=https://ваш-домен APP_PORT=127.0.0.1:8090 DB_DATABASE=relaticle DB_USERNAME=relaticle DB_PASSWORD=$(openssl rand -hex 20) PASSKEYS_USER_HANDLE_SECRET=$(openssl rand -base64 32) REQUIRE_EMAIL_VERIFICATION=true RELATICLE_FEATURE_ONBOARD_SEED=false EOF chmod 600 .envAPP_PORTв форме ip:port дает в compose строку127.0.0.1:8090:8080- продукт не торчит наружу голым портом.APP_URLтолько с https, иначе ломаются ссылки и passkeys. ДобавьтеMAIL_*своего SMTP: без него приглашения коллегам не дойдут.Поднять стек
docker compose pull && docker compose up -d docker compose ps curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:8090/upДо
healthyу всех пяти контейнеров - ~45 секунд, миграции app гоняет сам. Проверка должна вернуть 200.Валидный TLS
ваш-домен { reverse_proxy 127.0.0.1:8090 }Caddy с таким Caddyfile берет сертификат Let's Encrypt за ~15 секунд. Внутри compose ничего менять не нужно: прокси с loopback продукт принимает как доверенный.
Создать администратора
docker compose exec app php artisan make:filament-user \ --name "Admin" --email admin@example.com --password "$(openssl rand -base64 18)" --panel=app -nВеб-мастера установки нет, админ создается из консоли. Вход по
/app/loginдвухшаговый: email, затем пароль. Дальше мастер онбординга: имя workspace и сценарий.Ключ модели и прокси
Ассистент и MCP-агент ходят к модели по ключу из .env:
ANTHROPIC_API_KEY,OPENAI_API_KEY, переменные Ollama илиSELF_HOSTED_AI_URLс ключом и именем модели. Из России к API Anthropic и OpenAI напрямую не достучаться.На Fatmetal Cloud Server это уже решено: в сервер входит API-прокси для ИИ-моделей, отдельно не заказывается. Достаточно трех переменных окружения у контейнеров app и horizon, код не меняется:
HTTPS_PROXY=http://api-proxy.fatmetal.net:8080 HTTP_PROXY=http://api-proxy.fatmetal.net:8080 NO_PROXY=localhost,127.0.0.1,10.0.0.0/8На стенде ключ модели не настраивали, связку ассистента с прокси не прогоняли. Альтернатива -
SELF_HOSTED_AI_URLна Ollama или vLLM на своей GPU-машине.
Что измерили после запуска
Стенд: CPU2-RAM4-DISK50, Ubuntu 24.04.4, Docker 29.8.0 и Compose v5.5.1, Relaticle v3.5.8, 15 сентября 2026. Без нагрузки, без ключа модели.
| Образы на диске | ~1.9 ГБ: relaticle 1.41 ГБ, postgres 424 МБ, redis 58 МБ |
| compose up до healthy всех пяти | ~45 с |
| Сертификат Let's Encrypt через Caddy | ~15 с |
| От чистой VM до подтвержденного входа | ~9 мин, из них ~2 - повторы скачивания с Docker Hub |
| RAM в простое, 5 контейнеров | 1523 МиБ, через 4 часа то же |
| CPU в простое | менее 2% суммарно |
| Диск после установки | 4.4 из 48 ГБ |
| Отклик /up: изнутри / снаружи по HTTPS | 103 мс / 158 мс |
| Страница входа: изнутри / снаружи | 151 мс / 190 мс |
| Контейнер | RAM в простое | Роль |
|---|---|---|
| horizon | 1293 МиБ | очередь, пул PHP-воркеров |
| scheduler | 105 МиБ | периодические задачи |
| app | 88 МиБ | nginx + PHP-FPM |
| postgres | 62 МиБ | БД |
| redis | 4 МиБ | кэш, сессии, очередь |
Главное: 85% памяти стека - это Horizon. Он держит прогретый пул PHP постоянно, и это не всплеск после старта: через 4 часа цифра та же. Для сравнения соседи по каталогу: EspoCRM ~207 МиБ на 4 контейнерах, Twenty CRM ~1.5 ГБ.
Проверено на Relaticle v3.5.8, сентябрь 2026. На новых версиях результаты могут отличаться.
Где может сломаться
Грабли со стенда и из документации, которые читатель self-host не ждет.
300 ИИ-кредитов в месяц на своем же сервере. Инсталляция по умолчанию на плане free, счетчик работает и на self-host. Поднимается правкой поля plan у workspace в базе до 10 000; безлимитного плана в коде нет. Схема - в docs/billing.md репозитория.
Регистрация публична. Страница signup открыта всем, выключателя кроме Turnstile-капчи (RELATICLE_FEATURE_SIGNUP_CHALLENGE) не нашли. С верификацией и MAIL_MAILER=log приглашенные не получат письмо; без верификации любой прохожий заведет рабочий аккаунт. SMTP для прода обязателен.
latest зашит в compose. Три сервиса на одном образе без переменной для тега, релизы выходят каждые 3-6 дней. Без пина docker compose pull притащит новую версию с миграциями в случайный момент.
Тег с префиксом v не существует. Git-тег релиза v3.5.8, Docker-тег на ghcr.io - 3.5.8. Pull по имени git-тега падает с not found. Образ только на ghcr.io, на Docker Hub его нет.
Секрет passkeys до первого passkey. Если PASSKEYS_USER_HANDLE_SECRET не задан заранее, ротация APP_KEY сломает WebAuthn-входы всем пользователям.
Причина. docker compose up -d дважды обрывался на последнем чтении слоя postgres:17-alpine (~112 МБ) с registry-1.docker.io. К конфигурации продукта не относится: параллельные пуллы compose упирались в затор Docker Hub.
Решение. Скачать образ отдельно: docker pull postgres:17-alpine прошел с первого раза за ~15 секунд, дальше compose взял его из кэша.
Безопасность и обновления
Релизы - на GitHub проекта, пять патчей за 15 дней перед разбором. Миграции гоняет app при старте, поэтому обновляется весь compose разом: сменить тег в файле, затем
sed -i "s#relaticle:3.5.8#relaticle:3.5.9#g" compose.yml
docker compose pull && docker compose up -d
Бэкап - дамп базы плюс том storage с загруженными файлами и сам .env с секретами:
docker compose exec postgres pg_dump -U relaticle relaticle > backup.sql
Что закрыть перед продом:
- Порты - продукт только на 127.0.0.1, наружу Caddy с TLS.
- Регистрация - SMTP и верификация включены, Turnstile на форме signup.
- Секреты - APP_KEY, DB_PASSWORD и секрет passkeys из openssl, не из примера документации; .env с правами 600.
- Демо-данные -
RELATICLE_FEATURE_ONBOARD_SEED=false, иначе каждый новый workspace получает Apple и Notion в компаниях. - 152-ФЗ и модель - ассистент отправляет данные клиентов в модель. Для внешнего провайдера это трансграничная передача; endpoint выбирайте осознанно, Ollama на своей машине вопрос снимает.
Связь с другими стеками
- Обратный прокси - Caddy на том же хосте, продукту хватает доверия к loopback.
- EspoCRM - полная CRM с почтой, кампаниями и русской локалью, когда ядра мало.
- Twenty CRM - Notion-like таблицы на NestJS, соседний разбор в каталоге.
- Ollama / vLLM - на отдельной GPU-машине как
SELF_HOSTED_AI_URL, если модель должна остаться в контуре. - Бэкапы - pg_dump по cron и выгрузка в S3 вместе с томом storage.
- Мониторинг - Uptime Kuma по эндпоинту
/up, он отдает 200 без авторизации.
Когда это НЕ ваш выбор
Нужен русский интерфейс
Локаль одна, английская. Перевод - только форк с каталогом lang и его поддержка при релизах каждые 3-6 дней. Для отдела продаж без английского берите EspoCRM.
Нужны почта, секвенции, телефония, отчеты
Relaticle - ядро CRM: сущности, воронка, задачи, ИИ-слой. Синхронизации почты, рассылок и отчетности уровня Битрикс24 в документации нет; это территория Espo или SaaS.
Прод на годы без готовности к форку
98% коммитов у одного автора, CLA нет - лицензию можно сменить одним коммитом. Счетчик кредитов уже в коде; лицензионный ключ для планов сделает сегодняшний обход недействительным.
Хотите «ИИ в комплекте»
Без ключа модели это аккуратная CRM без чата. Локальная модель на CPU-тарифе в 120 секунд не укладывается, значит нужен внешний endpoint и расходы на токены.
Частые вопросы
Можно поставить без Docker?
Документация апстрима описывает один путь - Docker Compose из корня репозитория. Инструкции для установки на голую ОС нет.
Хватит ли 2 ГБ RAM?
Нет: в простое стек держит ~1.5 ГБ, из них 1.26 - Horizon. CPU2-RAM4-DISK50 закрывает простой, под несколько workspace смотрите на 8 ГБ.
Как поднять лимит 300 кредитов?
Правкой поля plan у workspace в базе, максимум 10 000 в месяц. MCP и REST API снаружи кредиты не тратят.
Работает ли ключ OpenAI или Anthropic из России?
Напрямую нет. На Fatmetal Cloud Server запросы идут через встроенный API-прокси; альтернатива - свой OpenAI-совместимый endpoint через SELF_HOSTED_AI_URL.
Как обновлять?
Сменить тег в compose.yml, затем docker compose pull && docker compose up -d. Миграции прогонит app при старте.
Что бэкапить?
Базу PostgreSQL через pg_dump, том storage с файлами и .env - без APP_KEY зашифрованные поля не прочитать.
Какие ограничения лицензии?
AGPL-3.0 на весь код, включая биллинг. Коммерческое использование свободно; если дорабатываете и даете доступ по сети - изменения надо открыть.
Итог
Relaticle - легкая CRM с MCP-сервером на 37 инструментов и ассистентом внутри, единственная в нашем каталоге под сценарий «агент читает воронку и заводит сделки». Пять контейнеров стартуют за ~45 секунд и держат ~1.5 ГБ в простое, CPU2-RAM4-DISK50 за 500 ₽/мес хватает впритык. Перед продом: SMTP, пин тега, ключ модели через прокси и лимит в 300 кредитов.
Этот стек у нас запущен на тарифе CPU2-RAM4-DISK50. Нашли баг в гайде - напишите, поправим в течение дня.