Установка Monica PRM на Ubuntu 18.04
Краткое описание
Monica — бесплатное open-source веб-приложение для Personal Relationship Management, написанное на Laravel. Оно хранит важные сведения о друзьях и родственниках, умеет напоминать о днях рождения, отслеживать переписки и настраиваемые секции на карточке контакта.
Важно: инструкция рассчитана на Ubuntu 18.04 и версии компонентов, указанные в шагах (PHP 7.2, Node.js 10). Если вы используете другие версии ОС/пакетов, проверьте совместимость перед началом.
Требования
- Сервер с Ubuntu 18.04.
- С root-доступ или учетная запись с правами sudo.
Шаг 0 — подготовка системы
Обновите пакеты и перезагрузите систему, чтобы применять последние обновления безопасности:
apt-get update -y
apt-get upgrade -yПерезагрузите систему по необходимости:
rebootПримечание: на продуктивных серверах планируйте окно обслуживания перед обновлением.
Установка Nginx, MariaDB и PHP
Установите веб-сервер, СУБД, PHP-FPM и дополнительные модули, требуемые Monica:
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После установки убедитесь, что службы запущены:
systemctl status nginx
systemctl status mariadb
systemctl status php7.2-fpmНастройка MariaDB
Запустите скрипт безопасности MariaDB и ответьте на подсказки (удаление анонимных пользователей, запрет удалённого входа root и т.д.):
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. Замените ‘password’ на надёжный пароль:
mysql -u root -p
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;Важно: храните пароль безопасно. На продуктивном сервере рассмотрите использование выделенного пользователя и ограничение подключений по хосту.
Установка Composer и Node.js
Composer — менеджер зависимостей PHP. Скачайте и проверьте установщик:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"Проверьте контрольную сумму и установите Composer:
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;"
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.x):
curl -sL https://deb.nodesource.com/setup_10.x | bash -
apt-get install -y nodejsЕсли вы планируете использовать более новые сборки фронтенда или пакеты, проверьте совместимость Node.js и npm с проектом Monica.
Установка и подготовка Monica
Создайте каталог веб-приложения и загрузите код Monica из репозитория:
mkdir -p /var/www/monica
cd /var/www/monica
git clone https://github.com/monicahq/monica.git .
git checkout tags/v2.1.1Примечание: команда checkout указывает на версию v2.1.1. При необходимости используйте другую метку релиза.
Переименуйте файл окружения и отредактируйте параметры подключения к базе данных:
mv .env.example .env
nano .envВнутри .env задайте параметры базы данных:
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Генерация ключа приложения и начальная настройка базы данных:
php artisan key:generate
php artisan setup:productionВ процессе setup:production подтвердите действия, когда отобразится приглашение. Пример вывода:
You are about to setup and configure Monica. Do you wish to continue? (yes/no) [no]:
> 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
Создайте виртуальный хост для Monica:
nano /etc/nginx/sites-available/monica.confВставьте конфигурацию (замените example.com на ваш домен):
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;
}
}Активируйте конфигурацию и перезапустите Nginx:
ln -s /etc/nginx/sites-available/monica.conf /etc/nginx/sites-enabled/
systemctl restart nginx
systemctl status nginxПример вывода systemd показывает активный сервис nginx. Если сервис не запускается, проверьте синтаксис конфигурации:
nginx -tДоступ к веб-интерфейсу
Откройте в браузере URL вашего сервера (http://example.com) и зарегистрируйте первую учётную запись.



Поздравляем — Monica установлена. Теперь вы можете добавлять контакты, настраивать напоминания и расширять функциональность.
Критерии приёмки
- Веб-интерфейс открывается по заданному домену и отображает страницу регистрации.
- Успешная регистрация первой учётной записи и вход в панель.
- Все миграции базы данных выполнены без ошибок (команда setup:production завершилась успешно).
- Доступы к каталогу приложения принадлежат www-data и права корректны.
Чек-лист для ролей
DevOps / Администратор:
- Обновил систему и установил пакеты.
- Настроил MariaDB и создал базу/пользователя.
- Настроил Nginx и PHP-FPM.
- Задал права на /var/www/monica.
Разработчик / Системный интегратор:
- Проверил версии библиотек и зависимостей.
- Собрал фронтенд и провёл smoke-тесты UI.
Менеджер продукта / Владелец данных:
- Убедился, что первая учётная запись создана.
- Проверил корректность seed-данных, если использовались.
Устранение неполадок (Troubleshooting)
- Nginx не стартует: выполните nginx -t и проверьте ошибки в /var/log/nginx/error.log.
- Ошибки PHP-FPM при исполнении .php: проверьте путь сокета fastcgi_pass и состояние php7.2-fpm.
- Проблемы с миграциями: проверьте .env (корректность DB_*), логи storage/logs/laravel.log и права файлов.
План отката (Rollback)
- Остановить веб-сервер: systemctl stop nginx.
- Восстановить резервную копию базы данных (если есть): mysql -u root -p monica < backup.sql.
- Вернуть исходную директорию с кодом (git checkout прежний-тег или восстановить из бэкапа).
- Перезапустить сервисы: systemctl start php7.2-fpm && systemctl start nginx.
Когда этот способ не подойдёт (контрпримеры)
- Если вы хотите использовать контейнеры (Docker/Kubernetes), то установка на хост описанная здесь не оптимальна: лучше развернуть Monica через Docker-образ или Helm-чарты.
- Для Ubuntu 20.04 / 22.04 могут потребоваться более новые версии PHP (7.4, 8.0) и иные пакеты — следуйте официальной документации Monica для выбранной версии.
Советы по безопасности и конфиденциальности
- Используйте HTTPS (Let’s Encrypt) в продакшене.
- Ограничьте доступ к MariaDB только с localhost или через внутреннюю сеть.
- Регулярно обновляйте зависимости и систему безопасности.
- Для персональных данных рассмотрите шифрование бэкапов и настройку резервного копирования.
Факт-бокс
- ОС: Ubuntu 18.04.
- PHP: 7.2 (в инструкции).
- Node.js: 10.x (в инструкции).
- База данных: MariaDB.
Короткая экспертная мысль
Эксперт по DevOps: “Для стабильной работы Monica в продакшне рекомендую контейнеризацию и централизованный мониторинг — это упростит обновления и аварийное восстановление.”
Совместимость и миграция
- При миграции с другой версии Monica проверьте релиз-ноуты проекта на предмет изменений в миграциях и зависимости.
- Перед обновлением создавайте бэкап базы и файлов приложения.
Краткое резюме
Monica можно развернуть на Ubuntu 18.04 за счёт стандартного стека: Nginx + PHP-FPM + MariaDB + Composer + Node.js. Инструкция охватывает установку, настройку окружения, сборку фронтенда и выполнение миграций. Следуйте чек-листам и рекомендациям по безопасности перед переводом сервера в продуктивный режим.
Важно: если у вас остались вопросы по конкретным шагам (сертификаты, Docker-контейнеры, версии PHP), укажите текущую конфигурацию — помогу адаптировать инструкции.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone