Установка Monica PRM на Ubuntu 18.04

Monica — бесплатное open source веб-приложение для управления личными связями, написанное на Laravel. Оно помогает хранить важные данные о друзьях и семье: контакты, отношения между ними, напоминания о днях рождения и историю переписок. Monica позволяет настраивать видимые разделы в карточке контакта и интегрировать данные из сторонних каналов.
Ниже — детальная инструкция по установке Monica на Ubuntu 18.04 с пояснениями, проверками и рекомендациями по безопасности.
Требования
- Сервер с Ubuntu 18.04.
- Доступ root или пользователь с sudo.
- Доменное имя для Nginx (рекомендуется) или доступ по IP.
Быстрый план действий
- Обновить систему. 2. Установить Nginx, MariaDB, PHP 7.2 и зависимости. 3. Защитить MariaDB и создать базу/пользователя. 4. Установить Composer и Node.js. 5. Скачать Monica, настроить .env, собрать фронтенд, выполнить миграции. 6. Настроить виртуальный хост Nginx и права. 7. Проверить доступ и завершить настройку через веб-интерфейс.
Обновление системы
Сначала обновите пакеты и примените доступные обновления:
apt-get update -y
apt-get upgrade -yПосле обновления перезагрузите систему, если это необходимо.
Установка Nginx, MariaDB и PHP
Установим веб-сервер, СУБД, PHP 7.2 и нужные модули:
apt-get install nginx mariadb-server php7.2 php7.2-cli php7.2-fpm php7.2-common php7.2-mbstring php7.2-xml php7.2-mysql php7.2-curl php7.2-zip php7.2-intl git wget unzip -yКогда установка завершится, переходим к настройке MariaDB.
Настройка MariaDB
По умолчанию MariaDB нужно защитить. Выполните скрипт настройки безопасности:
mysql_secure_installationВ типичном диалоге ответьте так, как указано ниже (пример):
Enter current password for root (enter for none):
Set root password? [Y/n]: N
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: YВойдите в консоль MariaDB и создайте базу и пользователя для Monica:
mysql -u root -pВнутри MariaDB выполните:
MariaDB [(none)]> create database monica;
MariaDB [(none)]> create user monica@localhost identified by 'password';
MariaDB [(none)]> GRANT ALL ON monica.* TO 'monica'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;Важно: замените ‘password’ на сложный надёжный пароль.
Установка Composer и Node.js
Composer — менеджер пакетов для PHP, он нужен для установки зависимостей Laravel.
Скачиваем инсталлятор Composer:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"Проверяем контрольную сумму и устанавливаем:
HASH="$(wget -q -O - https://composer.github.io/installer.sig)"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"Ожидаемый вывод:
Installer verifiedУстанавливаем Composer глобально:
php composer-setup.php --install-dir=/usr/local/bin --filename=composerПример вывода:
All settings correct for using Composer
Downloading...
Composer (version 1.8.4) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composerУстанавливаем Node.js (версия 10 в исходном руководстве):
curl -sL https://deb.nodesource.com/setup_10.x | bash -
apt-get install -y nodejsNode.js нужен для сборки фронтенд-ассетов приложения (JS/CSS).
Установка и конфигурация Monica
Создаём директорию приложения и загружаем код Monica (в примере используется v2.1.1):
mkdir -p /var/www/monica
cd /var/www/monica
git clone https://github.com/monicahq/monica.git .
git checkout tags/v2.1.1Примерный вывод git при переключении на тег:
Note: checking out 'tags/v2.1.1'.
You are in 'detached HEAD' state. ...
HEAD is now at dcfd15fa Update translations (#1324)Переименуйте файл примера переменных окружения и отредактируйте .env:
mv .env.example .env
nano .envВ .env задайте данные для подключения к базе:
# Database information
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
#DB_UNIX_SOCKET=/var/run/mysqld/mysqld.sock
DB_DATABASE=monica
DB_USERNAME=monica
DB_PASSWORD=passwordЗатем установите PHP-зависимости Composer’ом:
composer install --no-interaction --no-suggest --no-dev --ignore-platform-reqsУстановите фронтенд-зависимости и соберите файлы:
npm install
npm run productionСгенерируйте application key и выполните первичную настройку и миграции:
php artisan key:generate
php artisan setup:productionВ процессе setup:production появится подтверждение, выберите yes. Ожидаемый финальный фрагмент:
-----------------------------
|
| Welcome to Monica v2.1.1
|
-----------------------------
| You can now register to the first account by opening the application:
| URL: http://localhost
-----------------------------
Setup is done. Have fun.Назначьте корректные права владельца для веб-сервера:
chown -R www-data:www-data /var/www/monicaНастройка Nginx для Monica
Создайте виртуальный хост:
nano /etc/nginx/sites-available/monica.confДобавьте конфигурацию (отредактируйте server_name на свой домен):
server {
listen 80;
listen [::]:80;
server_name example.com;
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/php7.2-fpm.sock;
}
}Включите сайт (symlink в sites-enabled), перезапустите Nginx и проверьте статус:
systemctl restart nginx
systemctl status nginxПример вывода статуса показывает работу сервиса и возможные предупреждения. Если Nginx не стартует, проверьте лог /var/log/nginx/error.log и корректность fastcgi_pass (сокет PHP-FPM).
Доступ к Monica
Откройте в браузере http://example.com (замените на ваш домен или IP). Вы увидите страницу установки Monica.

Заполните email, имя и пароль, нажмите Register. После регистрации появится панель управления Monica:

Поздравляю — Monica установлена и доступна.
Устранение распространённых проблем
- Nginx не стартует: проверьте синтаксис конфигурации nginx -t, права на /var/www/monica/public и путь к PHP-FPM (fastcgi_pass).
- Ошибки миграции: проверьте подключение к БД и корректность параметров в .env.
- npm run production падает: убедитесь, что Node.js и npm установлены корректно и у вас достаточно памяти; при проблемах попробуйте npm ci.
Важно: логи — ваш первый источник правды. Просматривайте /var/log/nginx/error.log и storage/logs/laravel.log.
Рекомендации по безопасности
- Используйте TLS: настройте сертификат от Let’s Encrypt и перенаправление HTTP → HTTPS.
- Смените пароли БД на уникальные и сложные.
- Отключите публичный доступ к phpMyAdmin (если установлен) или ограничьте по IP.
- Запустите брандмауэр: UFW с правилами для SSH, HTTP, HTTPS. Пример: ufw allow OpenSSH; ufw allow ‘Nginx Full’; ufw enable.
- Регулярно обновляйте систему и зависимости Composer.
Альтернативные подходы
- Docker (рекомендуется для изоляции): используйте официальный Docker-образ или docker-compose для запуска всех сервисов (web, db, queue). Преимущество — воспроизводимость среды и простая миграция.
- Snap/packaged решения: некоторые дистрибутивы предоставляют пакеты, но для Monica чаще используют git + composer или Docker.
- Управляемый хостинг PHP: если вы не хотите администрировать сервер, размещение на PaaS с поддержкой PHP/Laravel (например, платные платформы) упростит сопровождение.
План действий для разных ролей
Для администратора сервера:
- Проверить системные требования, настроить бэкапы, выделить домен и SSL.
- Настроить брандмауэр, мониторинг и обновления безопасности.
Для разработчика/интегратора:
- Настроить окружение разработки (Docker), подключить VCS, обеспечить CI для сборки фронтенда и миграций.
- Проверить интеграции с почтой и внешними API.
Для владельца продукта/пользователя:
- Настроить первые аккаунты, политики доступа и резервное копирование данных.
Мини‑чеклист развёртывания (SOP)
- Обновить сервер и установить зависимости.
- Настроить MariaDB и создать БД/пользователя.
- Установить Composer и Node.js.
- Склонировать Monica, сконфигурировать .env.
- composer install → npm install → npm run production.
- php artisan key:generate → php artisan setup:production.
- chown www-data:www-data и настройка Nginx.
- Настроить SSL и бэкапы.
Совместимость и миграционные заметки
- Руководство рассчитано на Ubuntu 18.04 и PHP 7.2 (как в исходной инструкции). На более новых системах используйте совместимую версию PHP, проверяйте требования Monica в официальном репозитории.
- При обновлении Monica соблюдайте порядок: сначала бэкап, затем миграции в тестовом окружении, затем на проде.
Краткий глоссарий
- Composer — менеджер зависимостей PHP.
- PHP-FPM — FastCGI-процесс менеджер для PHP.
- MariaDB — форк MySQL, СУБД.
- Nginx — веб-сервер и обратный прокси.
Критерии приёмки
- Веб-интерфейс Monica доступен по HTTPS и показывает страницу входа/регистрации.
- Миграции выполнены без ошибок, таблицы созданы в базе monica.
- Файлы в /var/www/monica принадлежат www-data.
- Бэкап и SSL настроены.
Итог и дальнейшие шаги
Monica успешно установлена. Рекомендуется:
- Настроить Let’s Encrypt и автоматическое обновление сертификатов.
- Настроить ежедневные бэкапы базы и файлов.
- Перенести развёртывание в Docker для упрощения обновлений и изоляции.
Важно: при возникновении проблем сначала проверяйте логи Nginx и Laravel, затем права доступа и параметры .env.
Сводка:
- Monica — лёгкое в развёртывании Laravel-приложение для управления контактами.
- Следуйте чеклисту из раздела SOP и применяйте базовые меры безопасности.
Если нужно, подготовлю инструкцию по установке Monica в Docker Compose или помогаю с настройкой SSL и бэкапов.
Похожие материалы
Троян Herodotus: как он действует и как защититься
Включить новое меню «Пуск» в Windows 11
Панель полей PivotTable в Excel — руководство
Включить новый Пуск в Windows 11 — инструкция
Как убрать дубликаты Диспетчера задач Windows 11