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

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

5 min read Инструкции Обновлено 09 Nov 2025
Установка Monica PRM на Ubuntu 18.04
Установка Monica PRM на Ubuntu 18.04

Снимок экрана сервера и терминала для установки Monica

Monica — бесплатное open source веб-приложение для управления личными связями, написанное на Laravel. Оно помогает хранить важные данные о друзьях и семье: контакты, отношения между ними, напоминания о днях рождения и историю переписок. Monica позволяет настраивать видимые разделы в карточке контакта и интегрировать данные из сторонних каналов.

Ниже — детальная инструкция по установке Monica на Ubuntu 18.04 с пояснениями, проверками и рекомендациями по безопасности.

Требования

  • Сервер с Ubuntu 18.04.
  • Доступ root или пользователь с sudo.
  • Доменное имя для Nginx (рекомендуется) или доступ по IP.

Быстрый план действий

  1. Обновить систему. 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 nodejs

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

Интерфейс установщика Monica PRM

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

Дашборд Monica Personal Relationship Manager

Поздравляю — 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.

Альтернативные подходы

  1. Docker (рекомендуется для изоляции): используйте официальный Docker-образ или docker-compose для запуска всех сервисов (web, db, queue). Преимущество — воспроизводимость среды и простая миграция.
  2. Snap/packaged решения: некоторые дистрибутивы предоставляют пакеты, но для Monica чаще используют git + composer или Docker.
  3. Управляемый хостинг PHP: если вы не хотите администрировать сервер, размещение на PaaS с поддержкой PHP/Laravel (например, платные платформы) упростит сопровождение.

План действий для разных ролей

  • Для администратора сервера:

    • Проверить системные требования, настроить бэкапы, выделить домен и SSL.
    • Настроить брандмауэр, мониторинг и обновления безопасности.
  • Для разработчика/интегратора:

    • Настроить окружение разработки (Docker), подключить VCS, обеспечить CI для сборки фронтенда и миграций.
    • Проверить интеграции с почтой и внешними API.
  • Для владельца продукта/пользователя:

    • Настроить первые аккаунты, политики доступа и резервное копирование данных.

Мини‑чеклист развёртывания (SOP)

  1. Обновить сервер и установить зависимости.
  2. Настроить MariaDB и создать БД/пользователя.
  3. Установить Composer и Node.js.
  4. Склонировать Monica, сконфигурировать .env.
  5. composer install → npm install → npm run production.
  6. php artisan key:generate → php artisan setup:production.
  7. chown www-data:www-data и настройка Nginx.
  8. Настроить 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 и бэкапов.

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

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

Троян Herodotus: как он действует и как защититься
Кибербезопасность

Троян Herodotus: как он действует и как защититься

Включить новое меню «Пуск» в Windows 11
Windows 11

Включить новое меню «Пуск» в Windows 11

Панель полей PivotTable в Excel — руководство
Excel

Панель полей PivotTable в Excel — руководство

Включить новый Пуск в Windows 11 — инструкция
Windows

Включить новый Пуск в Windows 11 — инструкция

Как убрать дубликаты Диспетчера задач Windows 11
Windows

Как убрать дубликаты Диспетчера задач Windows 11

Как просмотреть историю просмотров Reels в Instagram
Социальные сети

Как просмотреть историю просмотров Reels в Instagram