Эталонная установка EspoCRM в Docker Compose
Установка CRM прямо на хост (без контейнеров) - это плохая практика, которая усложняет обновления и приводит к конфликтам версий PHP. Мы разберем эталонную архитектуру на базе Docker, при которой CRM работает в полной изоляции.
Архитектура решения
Наша связка docker-compose.yml будет состоять из трех сервисов:
- espocrm: Основной контейнер с веб-сервером Apache и PHP 8.2 (официальный образ).
- espocrm-daemon: Служебный контейнер (Cron), который выполняет фоновые задачи (отправка писем, расчет формул).
- mariadb: База данных, оптимизированная для высоких нагрузок.
Пример docker-compose.yml
version: '3.8'
services:
mariadb:
image: mariadb:10.11
environment:
MARIADB_ROOT_PASSWORD: secure_root_password
MARIADB_DATABASE: espocrm
MARIADB_USER: espo_user
MARIADB_PASSWORD: secure_db_password
volumes:
- mariadb_data:/var/lib/mysql
restart: always
espocrm:
image: espocrm/espocrm:latest
environment:
ESPOCRM_DATABASE_HOST: mariadb
ESPOCRM_DATABASE_NAME: espocrm
ESPOCRM_DATABASE_USER: espo_user
ESPOCRM_DATABASE_PASSWORD: secure_db_password
ESPOCRM_SITE_URL: https://crm.yourdomain.com
ports:
- "8080:80"
volumes:
- espo_data:/var/www/html
restart: always
depends_on:
- mariadb
espocrm-daemon:
image: espocrm/espocrm:latest
environment:
ESPOCRM_DATABASE_HOST: mariadb
ESPOCRM_DATABASE_NAME: espocrm
ESPOCRM_DATABASE_USER: espo_user
ESPOCRM_DATABASE_PASSWORD: secure_db_password
volumes:
- espo_data:/var/www/html
entrypoint: docker-daemon.sh
restart: always
depends_on:
- mariadb
volumes:
mariadb_data:
espo_data:
Важные нюансы настройки
- Cron-демон: Контейнер
espocrm-daemonиспользует тот же образ и общую папкуespo_data, но запускает скриптdocker-daemon.sh. Без него CRM не сможет отправлять запланированные Email и выполнять автопроцессы. - Обратный прокси: Контейнер публикует порт 8080. Вам нужно настроить Nginx на хост-машине (или использовать Traefik), чтобы он принимал запросы по порту 443 (HTTPS) и проксировал их на `localhost:8080`.
- Права на файлы: Папка
/var/www/htmlвнутри контейнера должна принадлежать пользователю `www-data`. Официальный образ сам корректирует права при старте, но при переносе данных вручную об этом важно помнить.
Системные требования VPS
Для комфортной работы без зависаний MariaDB:
- CPU: От 2 ядер (vCPU)
- RAM: Строго от 2 ГБ оперативной памяти (иначе СУБД будет падать от нехватки памяти OOM)
- Диск: SSD или NVMe от 20 ГБ
Не хотите разбираться с Linux и Docker?
Я проведу полную установку EspoCRM с базой MariaDB, настрою SSL-сертификаты, почту и автоматическое резервное копирование на вашем сервере.
Заказать настройку под ключ