Установка Monica CRM на Debian 11 — руководство по LEMP, Composer, Node.js и Yarn
TL;DR
Monica CRM — бесплатная CRM на PHP для управления личными контактами и отношениями. Руководство показывает установку на Debian 11: настройка LEMP (Nginx, MariaDB, PHP-FPM 8.1), создание базы данных, установка зависимостей через Composer, сборка фронтенда через Node.js и Yarn, а также настройка Nginx и cron. Подходит для продакшн-развёртывания при наличии домена и SSL.
Важное: на продакшне используйте защищённый доступ к базе, резервное копирование, и настройте брандмауэр.

О чём это руководство
Это подробный поэтапный гайд по установке Monica CRM на сервер с Debian 11. В нём описаны все шаги от установки веб-сервера до запуска и первых действий в интерфейсе. Подробно показаны команды, конфигурации и проверочные шаги, а также рекомендации по безопасности, отладке и альтернативные подходы для разного уровня окружений.
Кому пригодится это руководство
- Системным администраторам, которые разворачивают приложение на VPS или выделенном сервере.
- Разработчикам, которые готовят окружение для клиента или тестирования.
- Тем, кто предпочитает управлять данными локально и хочет иметь открытый исходный код для кастомизации.
Предварительные требования
- Сервер с Debian 11 (root или непользователь с sudo-привилегиями).
- Домен, указывающий на IP сервера (для HTTPS в продакшне).
- Рекомендуется включённый брандмауэр (например, ufw) и регулярное резервное копирование.
Примечание: на тестовой среде можно обойтись без домена и HTTPS, но в продакшне шифрование обязательно.
Основные этапы установки
- Установка Nginx
- Установка MariaDB и базовая защита
- Установка PHP-FPM 8.1 и настройка php.ini
- Создание базы данных и пользователя
- Установка Composer
- Установка Node.js 16 и Yarn
- Скачивание Monica, установка зависимостей и сборка статических файлов
- Генерация ключа приложения, миграция БД и настройка cron
- Конфигурация Nginx для домена и HTTPS
Установка Nginx
Monica — PHP-приложение, поэтому потребуется веб-сервер. В этом руководстве используется Nginx.
Перед установкой обновите индекс пакетов:
sudo apt updateУстановите Nginx:
sudo apt install nginx
Проверьте состояние сервиса:
sudo systemctl is-enabled nginx
sudo systemctl status nginxОжидаемый результат: сервис включён и запущен.

Установка MariaDB
Monica поддерживает MySQL/MariaDB. Установите MariaDB сервер:
sudo apt install mariadb-server
Проверьте сервис:
sudo systemctl is-enabled mariadb
sudo systemctl status mariadbЗащитите установку MariaDB:
sudo mysql_secure_installationВо время работы скрипта рекомендуется: сменить пароль root, отключить удалённый root-доступ, удалить анонимных пользователей и тестовую базу, затем перезагрузить привилегии.

Совет: если планируете внешний доступ к БД, настройте привязку bind-address в /etc/mysql/my.cnf и включите TLS для соединений.
Установка и настройка PHP-FPM 8.1
Monica требует минимум PHP 8.1. Для Debian 11 используем репозиторий sury.org:
curl -sSL https://packages.sury.org/php/README.txt | sudo bash -x
Установите необходимые пакеты PHP:
sudo apt install php8.1 php8.1-cli php8.1-fpm php8.1-common php8.1-mbstring php8.1-xml php8.1-mysql php8.1-curl php8.1-zip php8.1-intl php8.1-bcmath php8.1-gd php8.1-gmp php8.1-redis
Отредактируйте /etc/php/8.1/fpm/php.ini и установите рекомендуемые значения:
date.timezone = Europe/Paris
max_execution_time = 130
memory_limit = 256M
post_max_size = 128M
upload_max_filesize = 128MЗамените timezone на ваш часовой пояс, например Europe/Moscow.
Перезапустите службу:
sudo systemctl restart php8.1-fpmПроверьте статус:
sudo systemctl is-enabled php8.1-fpm
sudo systemctl status php8.1-fpmПосле этого LEMP стек готов.
Создание базы данных и пользователя MariaDB для Monica
Подключитесь к MariaDB:
sudo mysql -u root -pСоздайте базу и пользователя (замените password на надёжный пароль):
CREATE DATABASE monicacrm_db;
CREATE USER 'monica'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON monicacrm_db.* TO 'monica'@'localhost';
FLUSH PRIVILEGES;Проверьте привилегии:
SHOW GRANTS FOR 'monica'@'localhost';
quit
Важно: используйте уникальные имена базы и пользователя и сложные пароли. Для продакшна храните пароль в безопасном хранилище.
Установка Composer
Composer нужен для установки PHP-зависимостей.
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composerПроверьте версию как пользователь www-data:
sudo -u www-data composer -vУстановка Node.js 16 и Yarn
Node.js и Yarn нужны для сборки фронтенда. По умолчанию Debian 11 содержит Node.js 12, поэтому используем Nodesource для Node 16:
curl -fsSL https://deb.nodesource.com/setup_16.x | bash -Добавьте репозиторий Yarn и ключ:
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.listОбновите индекс и установите:
sudo apt update
sudo apt install nodejs yarnПроверьте пути и версии:
which node
which yarn
node --version
yarn --version

Установка Monica CRM из исходников
Убедитесь, что git установлен:
sudo apt install git -yСкачайте исходники и переключитесь на релизную версию (пример v3.7.0):
cd /var/www/
git clone https://github.com/monicahq/monica.git
cd /var/www/monica
git checkout tags/v3.7.0Скопируйте конфигурацию окружения и настройте права:
cp /var/www/monica/.env.example /var/www/monica/.env
sudo chown www-data:www-data /var/www/monica/.envОткройте .env и задайте параметры:
APP_ENV=production
APP_URL=https://your-domain.example
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=monicacrm_db
DB_USERNAME=monica
DB_PASSWORD=your_db_passwordЗатем установите права на весь сайт и создайте кэши для yarn:
sudo chown -R www-data:www-data /var/www/monica
sudo mkdir -p /var/www/.cache
sudo chown -R www-data:www-data /var/www/.cache
sudo mkdir -p /var/www/.yarn
sudo chown -R www-data:www-data /var/www/.yarnУстановите PHP-зависимости под пользователем www-data:
sudo -u www-data composer install --no-interaction --no-dev
Установите JS-зависимости и соберите для продакшна:
sudo -u www-data yarn install
sudo -u www-data yarn run production

Сгенерируйте ключ приложения и выполните начальную настройку и миграции:
sudo -u www-data php artisan key:generate
sudo -u www-data php artisan setup:production -vКогда система запросит подтверждение миграции, введите yes.

После успешной миграции вы увидите сообщения об успешном завершении.

Настройка cron для задач по расписанию
Создайте crontab для пользователя www-data:
crontab -u www-data -eДобавьте строку:
* * * * * /usr/bin/php /var/www/monica/artisan schedule:run >> /dev/null 2>&1Сохраните. Убедитесь, что владелец и права на папки корректны:
sudo chown -R www-data:www-data /var/www/monica
sudo chmod -R 775 /var/www/monica/storageКонфигурация Nginx для Monica
Создайте файл /etc/nginx/sites-available/monicacrm и вставьте конфигурацию (замените howtoforge.local и пути к SSL):
server {
listen 80;
server_name howtoforge.local;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
ssl_certificate /etc/letsencrypt/live/howtoforge.local/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/howtoforge.local/private.key;
server_name howtoforge.local;
root /var/www/monica/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
}Активируйте сайт и проверьте конфигурацию:
sudo ln -s /etc/nginx/sites-available/monicacrm /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginxПосле успешной проверки сайт будет доступен по домену через HTTPS.
Первичная настройка через веб-интерфейс
Откройте браузер и перейдите по адресу, указанному в APP_URL (например https://howtoforge.local/). Зарегистрируйте администратора, задайте пароль и e-mail. После регистрации вы попадёте в панель управления Monica.

Критерии приёмки
- Веб-интерфейс доступен по HTTPS на указанном домене.
- Страницы загружаются без ошибок 500 и без ошибок JS в консоли.
- Миграции прошли успешно, таблицы созданы в monicacrm_db.
- Cron выполняется ежеминутно (проверка по логам или функционалу напоминаний).
- Права на storage и cache настроены и запись доступна пользователю www-data.
Рекомендации по безопасности
- Отключите удалённый доступ root к MariaDB.
- Включите UFW и откройте только нужные порты (22, 80, 443). Пример:
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable- Настройте регулярное резервное копирование базы и папки /var/www/monica.
- Рассмотрите использование fail2ban для защиты SSH и веб-форм.
- Храните SECRET_KEY и пароли в защищённом хранилище, не в репозитории.
Резервный план и откат
- Перед обновлением делайте бекап базы данных и файлов: mysqldump и rsync/tar.
- Шаги отката: восстановить базу из дампа, вернуть папку public и vendor, перезапустить службы.
Пример бэкапа БД:
mysqldump -u root -p monicacrm_db > monicacrm_db_$(date +%F).sqlВосстановление:
mysql -u root -p monicacrm_db < monicacrm_db_2025-11-01.sqlОтладка и частые ошибки
- 502 Bad Gateway: проверьте socket php-fpm и что сервис php8.1-fpm запущен.
- Ошибки 500 в логах Nginx: проверьте /var/log/nginx/error.log и storage/logs/laravel.log.
- Ошибки при composer install: убедитесь в правах на /var/www/monica и что Composer запускается от www-data.
- Проблемы с yarn build: проверьте версии node и yarn, очистите кеш yarn cache clean.
Полезные команды для диагностики:
sudo journalctl -u php8.1-fpm -n 200
sudo tail -n 200 /var/log/nginx/error.log
sudo tail -n 200 /var/www/monica/storage/logs/laravel.logКогда этот подход не подходит
- Вам нужен быстрый развёртываемый инстанс для тестов — лучше использовать Docker-контейнеры.
- Вы предпочитаете автоматическое масштабирование и управляемые БД — рассмотрите облачные платформы (PaaS) вроде Heroku, Render или managed MariaDB.
- Если вы не администрируете сервер — выбирайте SaaS или хостинг с установкой в один клик.
Альтернативные подходы
- Docker Compose: подойдёт для локальной разработки и лёгкого разворачивания.
- Kubernetes: для сложных продакшн-сред с автоскейлингом и высокой доступностью.
- Веб-серверы: Caddy для автоматического HTTPS, Apache при специфических требованиях модулей.
Роли и контрольный список для запуска в продакшн
- Системный администратор:
- Установить LEMP, создать пользователя, настроить брандмауэр, включить резервное копирование.
- Настроить мониторинг служб и журналов.
- Разработчик:
- Проверить .env, выполнить composer и yarn, протестировать сборку.
- Проверить миграции и seed-скрипты.
- Оператор/менеджер проекта:
- Подготовить домен, SSL, политку бэкапов и SLA.
Контрольный список перед открытием пользователям:
- HTTPS настроен
- Регулярные бэкапы настроены
- Cron работает
- Права на файлы корректны
- Логи мониторятся
Мини-методология развёртывания (шаги 10 минут)
- Обновите систему
- Установите Nginx, MariaDB, PHP
- Настройте MariaDB и создайте БД
- Установите Composer, Node и Yarn
- Склонируйте Monica, настройте .env
- composer install и yarn build
- php artisan setup:production
- Настройте Nginx и SSL
- Настройте cron
- Тестируйте и мониторьте
Краткий глоссарий
- LEMP: Linux, Nginx, MariaDB/MySQL, PHP-FPM
- Composer: менеджер зависимостей PHP
- Yarn: менеджер пакетов JavaScript
- Artisan: CLI-инструмент Laravel для миграций и задач
Советы по обновлениям и миграции версий
- Перед обновлением Moncia делайте бэкап базы и папки vendor/public.
- Проверяйте changelog релиза в GitHub и тестируйте обновление на стейджинг-сервере.
- Для обновления: git pull, composer update, yarn install && yarn run production, php artisan migrate.
Пример сценариев при инциденте
- Приложение упало после обновления сборки.
- Откатите релиз: восстановите базу и файлы из последнего бэкапа.
- Перезапустите php-fpm и nginx.
- Утечка данных или компрометация ключей.
- Отключите публичный доступ, смените секреты и пароли, проверьте логи доступа.
- Проинформируйте пользователей при необходимости и следуйте регламенту GDPR, если данные EU.
Заключение
Вы успешно установили Monica CRM на Debian 11, настроили LEMP стек, Composer, Node.js и Yarn, собрали статические файлы, выполнили миграции и настроили cron и Nginx. На этом этапе система готова к использованию. Рекомендуется настроить резервное копирование, мониторинг и регулярные обновления.
Ключевые шаги на будущее: тестирование обновлений на стейджинге, автоматизация бэкапов и мониторинга, регулярный аудит безопасности.
Короткое резюме
Monica CRM — лёгкий путь для управления личными контактами и взаимоотношениями с открытым исходным кодом. Развёртывание на Debian 11 даёт полный контроль над данными и конфигурацией, но требует базовых навыков системного администрирования и обеспечения безопасности.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента