Гид по технологиям

Установка Monica CRM на Debian 11 — руководство по LEMP, Composer, Node.js и Yarn

• 7 min read • DevOps • Обновлено 20 Nov 2025
Установка Monica CRM на Debian 11
Установка Monica CRM на Debian 11

TL;DR

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

Важное: на продакшне используйте защищённый доступ к базе, резервное копирование, и настройте брандмауэр.

Скриншот логотипа Monica CRM или интерфейса

О чём это руководство

Это подробный поэтапный гайд по установке Monica CRM на сервер с Debian 11. В нём описаны все шаги от установки веб-сервера до запуска и первых действий в интерфейсе. Подробно показаны команды, конфигурации и проверочные шаги, а также рекомендации по безопасности, отладке и альтернативные подходы для разного уровня окружений.

Кому пригодится это руководство

  • Системным администраторам, которые разворачивают приложение на VPS или выделенном сервере.
  • Разработчикам, которые готовят окружение для клиента или тестирования.
  • Тем, кто предпочитает управлять данными локально и хочет иметь открытый исходный код для кастомизации.

Предварительные требования

  • Сервер с Debian 11 (root или непользователь с sudo-привилегиями).
  • Домен, указывающий на IP сервера (для HTTPS в продакшне).
  • Рекомендуется включённый брандмауэр (например, ufw) и регулярное резервное копирование.

Примечание: на тестовой среде можно обойтись без домена и HTTPS, но в продакшне шифрование обязательно.

Основные этапы установки

  1. Установка Nginx
  2. Установка MariaDB и базовая защита
  3. Установка PHP-FPM 8.1 и настройка php.ini
  4. Создание базы данных и пользователя
  5. Установка Composer
  6. Установка Node.js 16 и Yarn
  7. Скачивание Monica, установка зависимостей и сборка статических файлов
  8. Генерация ключа приложения, миграция БД и настройка cron
  9. Конфигурация Nginx для домена и HTTPS

Установка Nginx

Monica — PHP-приложение, поэтому потребуется веб-сервер. В этом руководстве используется Nginx.

Перед установкой обновите индекс пакетов:

sudo apt update

Установите Nginx:

sudo apt install nginx

Установка Nginx и состояние сервиса

Проверьте состояние сервиса:

sudo systemctl is-enabled nginx
sudo systemctl status nginx

Ожидаемый результат: сервис включён и запущен.

Проверка статуса Nginx

Установка MariaDB

Monica поддерживает MySQL/MariaDB. Установите MariaDB сервер:

sudo apt install mariadb-server

Установка MariaDB

Проверьте сервис:

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

Защитите установку MariaDB:

sudo mysql_secure_installation

Во время работы скрипта рекомендуется: сменить пароль root, отключить удалённый root-доступ, удалить анонимных пользователей и тестовую базу, затем перезагрузить привилегии.

Проверка MariaDB

Совет: если планируете внешний доступ к БД, настройте привязку 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

Установите необходимые пакеты 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

Установка PHP

Отредактируйте /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

Добавление репозитория Node.js Установка Node.js и Yarn

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

Установка PHP-зависимостей Composer

Установите JS-зависимости и соберите для продакшна:

sudo -u www-data yarn install
sudo -u www-data yarn run production

Установка JS-зависимостей Сборка статических файлов

Сгенерируйте ключ приложения и выполните начальную настройку и миграции:

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.

Экран регистрации пользователя Панель пользователя Monica CRM

Критерии приёмки

  • Веб-интерфейс доступен по 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 минут)

  1. Обновите систему
  2. Установите Nginx, MariaDB, PHP
  3. Настройте MariaDB и создайте БД
  4. Установите Composer, Node и Yarn
  5. Склонируйте Monica, настройте .env
  6. composer install и yarn build
  7. php artisan setup:production
  8. Настройте Nginx и SSL
  9. Настройте cron
  10. Тестируйте и мониторьте

Краткий глоссарий

  • 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.

Пример сценариев при инциденте

  1. Приложение упало после обновления сборки.
    • Откатите релиз: восстановите базу и файлы из последнего бэкапа.
    • Перезапустите php-fpm и nginx.
  2. Утечка данных или компрометация ключей.
    • Отключите публичный доступ, смените секреты и пароли, проверьте логи доступа.
    • Проинформируйте пользователей при необходимости и следуйте регламенту GDPR, если данные EU.

Заключение

Вы успешно установили Monica CRM на Debian 11, настроили LEMP стек, Composer, Node.js и Yarn, собрали статические файлы, выполнили миграции и настроили cron и Nginx. На этом этапе система готова к использованию. Рекомендуется настроить резервное копирование, мониторинг и регулярные обновления.

Ключевые шаги на будущее: тестирование обновлений на стейджинге, автоматизация бэкапов и мониторинга, регулярный аудит безопасности.

Короткое резюме

Monica CRM — лёгкий путь для управления личными контактами и взаимоотношениями с открытым исходным кодом. Развёртывание на Debian 11 даёт полный контроль над данными и конфигурацией, но требует базовых навыков системного администрирования и обеспечения безопасности.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро