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

Установка Monica на Debian 10 — подробное руководство

7 min read Установка Обновлено 26 Nov 2025
Monica на Debian 10 — установка и настройка
Monica на Debian 10 — установка и настройка

Изображение: логотип или скриншот Monica

Monica — это свободное PRM-приложение для учёта отношений с близкими. В этом руководстве показано пошаговое развёртывание Monica на Debian 10: подготовка системы, установка PHP, MariaDB, Nginx, Node.js, Composer, получение сертификатов Let’s Encrypt и финальная настройка приложения. Включены чеклисты для ролей, советы по безопасности и типичные ошибки с их решениями.

Важно: следуйте разделу Критерии приёмки перед вводом в эксплуатацию.

Что такое Monica

Monica — это веб‑приложение для личного управления отношениями (PRM). Проще говоря, это CRM для друзей и семьи: хранит контакты, заметки, встречи, подарки, напоминания о днях рождения и истории общения.

Ключевые возможности — кратко

  • Управление контактами и связями между ними
  • Напоминания и автонапоминания о днях рождения
  • Отслеживание встреч, задач и подарков
  • Множественные валюты и языки, API для интеграций

Примечание: термин “PRM” означает Personal Relationship Management — система для личного управления контактами.

H2: План установки (быстрая карта)

  1. Подготовить Debian 10, создать sudo‑пользователя
  2. Установить PHP и расширения
  3. Установить и настроить MariaDB, создать базу и пользователя
  4. Установить Nginx и конфигурацию сайта
  5. Установить Node.js, npm и Composer
  6. Клонировать Monica, настроить .env и прогнать миграции
  7. Настроить сервисы, права и SSL
  8. Тестирование и приёмка

Возможные варианты применения

  • Личное использование на VPS
  • Внутренний сервис для семьи/сообщества
  • Самостоятельный хостинг в организации с контролем данных

Особенности и преимущества Monica

Monica хорошо подходит для тех, кто хочет централизовать информацию о знакомых без внешних сервисов. Приложение поддерживает метки, кастомные поля, экспорт в vCard, загрузку фото/документов и простую интеграцию через API.

Когда Monica может не подойти

  • Нужна высокая масштабируемость на уровне корпоративной CRM
  • Требуется сложная интеграция с корпоративными SSO/LDAP без доработок

Альтернативы

  • Простые адресные книги в почтовых клиентах
  • Коммерческие CRM с персональными плагинами (если требуется корпоративный функционал)

Требования к системе

  • Debian 10 (Buster)
  • Git
  • NPM (Node Package Manager)
  • PHP 7.1 или новее
  • MariaDB/MySQL
  • HTTP‑сервер с поддержкой PHP (Nginx/Apache/Caddy)
  • Composer
  • Опционально: Redis или Beanstalk для очередей

Совет: используйте минимальную виртуальную машину с 1–2 ГБ RAM для тестовой установки; для боевого окружения планируйте не менее 2–4 ГБ и отдельный диск для резервных копий.

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

  • Debian 10 установлен
  • Непользователь root с правами sudo

Начальные команды и настройка системы

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

lsb_release -ds  
# Debian GNU/Linux 10 (buster)

Установите часовой пояс:

sudo dpkg-reconfigure tzdata

Обновите пакеты ОС:

sudo apt update && sudo apt upgrade -y

Установите базовые утилиты:

sudo apt install -y curl wget vim git unzip socat bash-completion apt-transport-https libpng-dev

Сохраняйте регулярные обновления безопасности и включите автоматические обновления, если это допустимо в вашей политике безопасности.

Шаг 1 — Установка PHP и расширений

Установите PHP и необходимые расширения:

sudo apt install -y php php-cli php-fpm php-common php-mbstring php-xml php-mysql php-curl php-zip php-intl php-bcmath php-gd php-json php-gmp

Проверьте установленные модули PHP:

php -m

ctype
curl
exif
fileinfo
. . .

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

php --version

# PHP 7.3.11-1~deb10u1 (cli) (built: Oct 26 2019 14:14:18) ( NTS )

Примечание: PHP‑FPM обычно запускается автоматически и включается при старте системы.

Шаг 2 — Установка acme.sh и получение сертификата Let’s Encrypt (опционально)

Защитите сайт HTTPS‑сертификатом. В руководстве используется acme.sh — лёгкий клиент для получения сертификатов из Let’s Encrypt.

Установка acme.sh:

sudo su - root
 git clone https://github.com/Neilpang/acme.sh.git
 cd acme.sh
 ./acme.sh --install --accountemail [email protected]
 source ~/.bashrc
 cd ~

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

acme.sh --version
# v2.8.2

Выдача сертификатов RSA и ECDSA:

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256

Для тестирования используйте флаг –staging.

Установите сертификаты в каталог /etc/letsencrypt:

`mkdir -p /etc/letsecnrypt/example.com`
`sudo mkdir -p /etc/letsencrypt/example.com_ecc`

# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

Все сертификаты будут автоматически обновляться клиентом acme.sh.

Важное: не используйте реальный production‑сертификат в тестовой среде; сначала проверьте с –staging.

Шаг 3 — Установка MariaDB и создание базы данных

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

sudo apt install -y mariadb-server

Проверка версии:

mysql --version
# mysql  Ver 15.1 Distrib 10.3.17-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Запустите скрипт безопасности:

sudo mysql_secure_installation

Ответьте на вопросы и задайте надёжный пароль для root.

Подключитесь к MariaDB и создайте базу и пользователя для Monica:

sudo mysql -u root -p
# Enter password

mariadb> CREATE DATABASE dbname;
mariadb> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
mariadb> FLUSH PRIVILEGES;
mariadb> exit

Замените dbname, username и password на ваши значения. Храните эти данные в безопасном менеджере паролей.

Шаг 4 — Установка и конфигурация Nginx

Monica совместима с большинством веб‑серверов; в этом руководстве — Nginx.

Установка Nginx:

sudo apt install -y nginx

Пример конфигурации /etc/nginx/sites-available/monica.conf:

server {
    listen 80;
    listen [::]:80;
    listen 443 ssl;  
    listen [::]:443 ssl;  
    
    ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;  
    ssl_certificate_key /etc/letsencrypt/example.com/private.key;  
    ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;  
    ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;  

    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.3-fpm.sock;
    }
}

Активируйте конфигурацию:

sudo ln -s /etc/nginx/sites-available/monica.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx.service

Совет: настройте HTTP->HTTPS редирект и HSTS для безопасной работы в продакшн.

Шаг 5 — Установка Node.js и npm

Установите Node.js (пример для 12.x):

curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -  
sudo apt install -y nodejs

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

node -v && npm -v
# v12.13.0
# 6.12.0

Node.js нужен для сборки ассетов фронтенда.

Шаг 6 — Установка Composer

Установка Composer (локальный инсталлятор):

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'a5c698ffe4b8e849a443b120cd5ba38043260d5c4023dbf93e1558871f1f07f58274fc6f4c93bcfd858c6bd0775cd8d1') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer

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

composer --version
# Composer version 1.9.1 2019-11-01 17:20:17

Шаг 7 — Установка и конфигурация Monica

Создайте корневую папку:

sudo mkdir -p /var/www/monica
cd /var/www/monica
sudo chown -R johndoe:johndoe /var/www/monica

Клонируйте репозиторий и перейдите на стабильный тег:

git clone https://github.com/monicahq/monica.git .
git checkout tags/v2.15.2

Важно: используйте тег релиза. Проверьте страницу релизов на GitHub и обновите тег до актуального.

Создайте файл окружения и настройте переменные:

cp .env.example .env

Отредактируйте .env: укажите DBUSERNAME, DB_PASSWORD, MAILданные и APP_URL. Для отправки писем настройте SMTP (или внешнюю службу), иначе регистрация и напоминания не будут работать.

Установите PHP‑зависимости и сгенерируйте ключ приложения:

composer install --no-interaction --no-suggest --no-dev
php artisan key:generate
php artisan setup:production -v

Настройте права и владельца:

sudo chown -R www-data:www-data /var/www/monica
sudo chmod -R 775 /var/www/monica/storage

Шаг 8 — Завершение установки и тестирование

Откройте в браузере http://example.com и зарегистрируйте пользователя.

Форма регистрации Monica — введите email, имя и пароль

После регистрации вы попадёте на панель управления:

Экран входа и панель Monica

Проверьте отправку почты, создание контактов, загрузку фотографий и работу напоминаний.

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

  • Сайт доступен по HTTPS и перенаправляет HTTP на HTTPS
  • Регистрация и вход работают; подтверждение по почте (если включено) отправляется
  • Создание контакта сохраняется и доступно в списке
  • Миграции выполнены без ошибок (php artisan migrate завершилось успешно)
  • Планировщик задач (cron) настроен для отправки напоминаний и автообновлений

Проверка cron для Laravel Scheduler:

  • В crontab у пользователя www-data должна быть запись запуска php artisan schedule:run каждую минуту:
* * * * * cd /var/www/monica && php artisan schedule:run >> /dev/null 2>&1

Роль‑базированные чеклисты перед запуском

Администратор сервера

  • Обновить ОС и установить бэкап‑решение
  • Настроить мониторинг диска и памяти
  • Настроить брандмауэр (UFW) и открыть порты 80/443
  • Настроить автоматическое обновление пакетов безопасности по соглашению команды

Разработчик / интегратор

  • Проверить версию Monica и зависимости
  • Настроить окружение .env и тестовый SMTP
  • Прогнать миграции и сиды
  • Настроить резервное копирование базы данных и файлов

Оператор / контент‑менеджер

  • Проверить шаблоны писем
  • Создать тестовые контакты и сценарии напоминаний
  • Проверить экспорт vCard и импорт данных

Безопасность и рекомендации по хостингу

  • Используйте TLS 1.2+ и строгие шифры в конфигурации Nginx
  • Включите HSTS и автоматическое редиректирование на HTTPS
  • Ограничьте доступ к панели администрирования IP‑фильтрами, если требуется
  • Храните секреты (.env) вне репозитория и в зашифрованном виде
  • Регулярно применяйте обновления для PHP, Nginx и MariaDB
  • Для очередей и кеша используйте Redis, чтобы избежать потерь данных при высокой нагрузке

Конфиденциальность и соответствие GDPR

  • Monica хранит личные данные. Перед развёртыванием в ЕС проверьте соответствие GDPR:
    • Реализуйте возможность удаления профиля и всех данных по запросу
    • Документируйте юридические основания для хранения данных
    • Ограничьте доступ сотрудников к персональным данным

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

Тестирование и распространённые проблемы

Проблема: 502 Bad Gateway с Nginx

  • Проверьте статус php-fpm: sudo systemctl status php7.3-fpm
  • Убедитесь, что fastcgi_pass в конфиге указывает на правильный сокет/порт

Проблема: Ошибки миграций

  • Проверьте .env на правильные DB_* параметры
  • Просмотрите логи php и laravel (storage/logs/)

Проблема: Почта не уходит

  • Убедитесь, что SMTP креды верны и порт/шифрование соответствуют провайдеру
  • Используйте внешнюю службу (Mailgun, SendGrid) для упрощения доставки

Миграция и обновление версии Monica

Мини‑методология обновления:

  1. Создайте бэкап базы данных и каталога storage/public
  2. Переключитесь в maintenance mode (php artisan down)
  3. Обновите код (git fetch && git checkout )
  4. composer install, npm run production при необходимости
  5. php artisan migrate –force
  6. php artisan up

Совет: тестируйте обновление в staging перед production.

Критерии приёмки релиза

  • Все unit/e2e тесты (если есть) проходят в staging
  • Ручная проверка критичных сценариев: регистрация, отправка mail, создание контакта, экспорт данных
  • Мониторинг не показывает рост ошибок после релиза

Однострочные определения (глоссарий)

  • PRM: Personal Relationship Management — система для учёта связей и контактов
  • vCard: формат обмена контактными данными
  • acme.sh: клиент для получения TLS сертификатов из Let’s Encrypt

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

  • Monica — удобный приватный PRM для личного использования и небольших команд
  • Стандартный стек: Debian 10 + PHP 7.3+ + MariaDB + Nginx + Composer + Node.js
  • Обязательные шаги: настройка .env, миграции, права на storage, настройка SSL и cron

Ключевые ссылки


Краткое объявление для команды (100–200 слов)

Monica развёрнута для приватного использования: она хранит контакты, напоминания и события. В ближайшее время команда администраторов настроит автоматические бэкапы и мониторинг. Пожалуйста, протестируйте регистрацию, создание контактов и отправку почты. Все замеченные ошибки отправляйте в баг‑трекер. Перед публичным релизом проведём проверку безопасности и соответствие требованиям обработки персональных данных.

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

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

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство