Установка i-doit на Debian 10 — полное руководство
В этой статье — пошаговая инструкция по установке и настройке i-doit (open-source CMDB) на Debian 10: LAMP (Apache, MariaDB, PHP), конфигурация PHP и MariaDB под i-doit, развёртывание приложения, настройка виртуального хоста Apache и бесплатного SSL от Let’s Encrypt. В конце — чеклисты, рекомендации по безопасности, тесты и возможные альтернативы.

Обзор
i-doit — бесплатное решение для документирования ИТ-инфраструктуры, построенное вокруг CMDB. Веб-инструмент реализует практики ITIL и позволяет хранить информацию об аппаратных и программных активах, связях между ними, визуализировать стойки, кластеры и виртуальные системы. Интегрируется с мониторингом и трекинг-системами (например, Nagios, Request Tracker), что позволяет ввести данные один раз и использовать их в экосистеме ITSM.
Кратко: i-doit управляет документами, учётом активов, IP-адресами, SAN, кабельной инфраструктурой и многим другим.
Важно: перед началом убедитесь, что у вас есть доступ к серверу с Debian 10, выделенный домен и права root.
Требования
- Сервер с Debian 10 и минимум 2 ГБ ОЗУ (рекомендуется 4+ ГБ для продакшена).
- Домен, указывающий на IP сервера (в примерах используется idoit.linuxbuz.com).
- Настроенный пароль root или доступ через sudo.
Совет: для тестовой среды можно использовать минимальные ресурсы, но для продуктивной эксплуатации планируйте резерв CPU/памяти и бэкап БД.
Шаг 1. Обновление системы
Перед установкой обновите пакетную базу и установите обновления:
apt-get update -y
apt-get upgrade -yПосле обновления рекомендуется перезапустить систему, если были обновлены ядро или службы.
Шаг 2. Установка LAMP и зависимостей
Установим Apache, MariaDB, PHP и необходимые расширения:
apt-get install apache2 mariadb-server libapache2-mod-php php php-common php-curl php-bcmath php-gd php-json php-ldap php-mbstring php-mysql php-opcache php-pgsql php-soap php-xml php-zip php-memcached php-imagick unzip memcached moreutils -yПосле установки создадим отдельный файл конфигурации PHP для i-doit (на примере PHP 7.3). Если у вас другая версия PHP, путь может отличаться (/etc/php/<версия>/mods-available/).
nano /etc/php/7.3/mods-available/i-doit.iniДобавьте следующие параметры (нужные для стабильной работы i-doit):
allow_url_fopen = Yes
file_uploads = On
magic_quotes_gpc = Off
max_execution_time = 300
max_file_uploads = 42
max_input_time = 60
max_input_vars = 10000
memory_limit = 256M
post_max_size = 128M
register_argc_argv = On
register_globals = Off
short_open_tag = On
upload_max_filesize = 128M
display_errors = Off
display_startup_errors = Off
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
log_errors = On
default_charset = "UTF-8"
default_socket_timeout = 60
date.timezone = Asia/Kolkata
session.gc_maxlifetime = 604800
session.cookie_lifetime = 0
mysqli.default_socket = /var/run/mysqld/mysqld.sockСохранив файл, включите модуль и перезапустите Apache:
phpenmod i-doit
phpenmod memcached
systemctl restart apache2Примечание: установите date.timezone согласно вашему часовому поясу (например, Europe/Moscow).
Шаг 3. Настройка MariaDB для i-doit
По умолчанию у MariaDB в Debian 10 может не быть пароля root. Установим пароль и настроим аутентификацию.
Войдите в оболочку MariaDB:
mysqlУстановите пароль для root (замените yournewpassword на надежный пароль):
SET PASSWORD FOR 'root'@'localhost' = PASSWORD("yournewpassword");Если возникает конфликт плагина аутентификации, переведём root на mysql_native_password и отключим быстрый shutdown InnoDB для безопасного изменения файлов журналов:
SET GLOBAL innodb_fast_shutdown = 0;
UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE User = 'root';
FLUSH PRIVILEGES;
EXIT;Создадим оптимальный конфигурационный файл MariaDB для i-doit:
nano /etc/mysql/mariadb.conf.d/99-i-doit.cnfВставьте параметры оптимизации (адаптируйте под ресурсы сервера):
[mysqld]
innodb_buffer_pool_size = 1G
innodb_buffer_pool_instances = 1
innodb_log_file_size = 512M
innodb_sort_buffer_size = 64M
sort_buffer_size = 262144
join_buffer_size = 262144
max_allowed_packet = 128M
max_heap_table_size = 32M
query_cache_min_res_unit = 4096
query_cache_type = 1
query_cache_limit = 5M
query_cache_size = 80M
tmp_table_size = 32M
max_connections = 200
innodb_file_per_table = 1
innodb_thread_concurrency = 0
innodb_flush_log_at_trx_commit = 1
innodb_flush_method = O_DIRECT
innodb_lru_scan_depth = 2048
table_definition_cache = 1024
table_open_cache = 2048
innodb_stats_on_metadata = 0
sql-mode = ""Перезапустите MariaDB, чтобы применить настройки:
systemctl restart mariadbВажно: параметры иннобд и кэширования зависят от объёма памяти и нагрузки. На серверах с 4+ ГБ можно увеличить innodb_buffer_pool_size.
Шаг 4. Скачивание и развёртывание i-doit
На момент написания этой инструкции версия примера — 1.14. Скачайте архив и распакуйте в корень веб-сервера:
wget https://excellmedia.dl.sourceforge.net/project/i-doit/i-doit/1.14/idoit-open-1.14.zip
unzip idoit-open-1.14.zip -d /var/www/html/idoitУстановите владельца и права на папки:
chown -R www-data:www-data /var/www/html/idoit/
chmod -R 775 /var/www/html/idoit/Совет: для окружений с повышенными требованиями безопасности рассмотрите 750 и дополнительную настройку Umask/ACL.
Шаг 5. Конфигурация Apache
Создадим виртуальный хост для i-doit:
nano /etc/apache2/sites-available/idoit.confВставьте конфигурацию (замените ServerName на ваш домен):
ServerAdmin [email protected]
ServerName idoit.linuxbuz.com
DirectoryIndex index.php
DocumentRoot /var/www/html/idoit
AllowOverride All
Require all granted
LogLevel warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Включите сайт и модуль rewrite, затем перезапустите Apache:
a2ensite i-doit
a2enmod rewrite
systemctl restart apache2Проверьте, что DocumentRoot указывает на правильную папку, и что права доступа позволяют веб-серверу читать файлы.
Шаг 6. Первый запуск и веб-инсталляция
Откройте в браузере http://idoit.linuxbuz.com (или ваш домен). Мастер установки проведёт вас через проверку окружения, указание директорий и создание базы данных.

Убедитесь, что все необходимые PHP-расширения установлены, затем нажмите Далее.

Подтвердите пути и продолжите.

Укажите пользователя root MariaDB и пароль, затем создайте отдельного пользователя БД для i-doit и имя БД.

Создайте администратора i-doit и завершите установку.

После установки войдите в систему через страницу логина.


Шаг 7. Защита сайта SSL через Let’s Encrypt
Рекомендовано включить HTTPS. Установим certbot из backports и получим сертификат:
echo "deb http://ftp.debian.org/debian buster-backports main" >> /etc/apt/sources.list
apt-get update -y
apt-get install python-certbot-apache -t buster-backports
certbot --apache -d idoit.linuxbuz.comПри запросе выберите автоматическое перенаправление HTTP на HTTPS (обычно номер 2). Certbot создаст SSL-виртуальный хост и обновит конфигурацию Apache.
Пример вывода и подсказок подтверждения находится в мастере certbot (E-mail для уведомлений и соглашение с условиями). После окончания вы увидите путь к сертификатам в /etc/letsencrypt/live/.
Важно: проверьте автоматическое обновление сертификатов (cron/systemd timer certbot renew). Убедитесь, что firewall и NAT не блокируют доступ на 80/443 порты.
Рекомендации по безопасности после установки
- Ограничьте доступ к интерфейсу i-doit через VPN или IP-фильтрацию для админ-панели.
- Храните бэкапы /etc/letsencrypt и каталога с данными i-doit.
- Включите регулярное обновление сервера и мониторинг: обновления безопасности, сканирование уязвимостей.
- Отключите ненужные PHP-функции и ограничьте execution time для продакшена.
- Настройте регулярный бэкап MariaDB и проверяйте восстановление на тестовом стенде.
Тесты и критерии приёмки
Критерии приёмки
- Веб-интерфейс i-doit доступен по HTTPS и отображает панель администратора.
- Все обязательные PHP-расширения присутствуют и проверяются мастером установки.
- База данных создана, пользователь БД с ограниченными правами настроен.
- SSL-сертификат успешно установлен и автоматическое обновление настроено.
- Создана первая запись (например, сервер) и видны связи между объектами.
Минимальные тесты (acceptance)
- Попробовать вход под администратором.
- Создать тестовую конфигурацию сервера и связать её с IP и стойкой.
- Экспортировать/импортировать небольшой набор данных (если планируете миграцию).
- Проверить журнал веб-сервера и MariaDB на отсутствие ошибок.
Технические рекомендации и оптимизация
Ментальные модели и подходы
- Правило единого источника: данные вводятся один раз и используются в интеграциях.
- Шкала: для тестовой среды достаточно 2–4 ГБ RAM; для продакшн — 8+ ГБ в зависимости от количества объектов и подключенных модулей.
- Бэкап — ключевой фактор: автоматические ежедневные дампы БД и файлов.
Тонкости производительности
- Увеличьте innodb_buffer_pool_size под объём данных (обычно 50–70% от доступной памяти сервера БД).
- Если используется много связей и отчётов, следите за max_connections и query_cache (в MariaDB query_cache может ускорять чтение при статическом рабочем наборе).
- Виртуализация: для высокой I/O нагрузки предпочитайте диски SSD и настройку proper I/O scheduler.
Резервные и миграционные заметки
- Экспорт данных: используйте встроенные средства i-doit для экспорта/импорта конфигураций.
- При переносе на новый сервер: синхронизируйте /var/www/html/idoit, конфигурацию Apache, /etc/letsencrypt и дамп БД.
- При обновлении версии i-doit перед апгрейдом сделайте полный бэкап и проверьте требования к версиям PHP/MySQL.
Ролевые чеклисты
Администратор системы
- Обновление ОС и пакетов.
- Настройка резервного копирования и мониторинга.
- Настройка firewall и SSL.
Администратор БД
- Настройка паролей и прав пользователей БД.
- Планирование innodb_buffer_pool_size и параметров логов.
- Регулярные дампы и проверка восстановления.
Сервисный инженер (ITSM)
- Настройка шаблонов объектов в i-doit.
- Определение процессов импорта/экспорта данных.
- Интеграция с внешними системами (Nagios, RT).
Типичные проблемы и их устранение
Проблема: Мастер установки жалуется на отсутствующие PHP-расширения
- Проверьте вывод php -m и установите недостающие модули, затем перезапустите Apache.
Проблема: Ошибки при подключении к MariaDB
- Убедитесь в корректности имени пользователя, пароля и сокета mysqli.default_socket в php-конфигурации.
- Проверьте, что root использует mysql_native_password или создайте отдельного пользователя с нужными правами:
CREATE DATABASE idoit CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'idoituser'@'localhost' IDENTIFIED BY 'strongpassword';
GRANT ALL PRIVILEGES ON idoit.* TO 'idoituser'@'localhost';
FLUSH PRIVILEGES;Проблема: SSL не выпускается Certbot
- Проверьте, доступен ли домен по HTTP и что 80/443 открыты в firewall.
- Убедитесь, что DNS указывает на правильный IP.
Когда этот подход не работает
- Если у вас ограниченный хостинг без права установки Apache/MariaDB — используйте хостинг-поставщика с поддержкой Docker/VM или SaaS-альтернативы CMDB.
- Если нужны сложные интеграции и возможность персональных модулей на уровне ядра — рассмотрите коммерческую поддержку i-doit или платные решения с интеграционными коннекторами.
Альтернативные подходы
- Развёртывание в контейнере Docker для упрощения миграций и изоляции окружения.
- Использование внешней управляемой БД (RDS-подобная услуга) для упрощения бэкапов и отказоустойчивости.
- Рассмотрение других CMDB: Ralph, NetBox (для сетевых и IP-инфраструктур) — в зависимости от задач.
Security hardening и соответствие
- Шифрование бэкапов и ограничение доступа к /etc/letsencrypt.
- Логи и аудит: настройте централизованный сбор логов (syslog/ELK) для аудита действий пользователей.
- Если в i-doit будут персональные данные, проверьте требования локального законодательства и GDPR: ограничьте хранение персональных данных, настройте права доступа и журналы аудита.
Контроль качества и тест-кейсы
Ключевые тесты
- Авторизация: вход по учётной записи администратора и обычного пользователя.
- CRUD: создать, изменить, удалить тестовый объект и проверить журнал изменений.
- Интеграции: проверить импорт/экспорт CSV и подтяжку данных по API (если используется).
- Восстановление: восстановление базы из бэкапа на тестовой машине.
Примеры acceptance criteria
- Веб-интерфейс доступен в течение 99% времени в рабочие часы.
- Восстановление базы из последнего бэкапа занимает не более N часов (определяется SLA).
- Все критичные пути (создание объекта, привязка IP, создание связи) работают без ошибок.
Заключение
Мы рассмотрели полный цикл установки i-doit на Debian 10: подготовка сервера, установка LAMP, тонкая настройка PHP и MariaDB, развёртывание i-doit, настройка Apache и получение бесплатного SSL от Let’s Encrypt. Также дали практические рекомендации по безопасности, тестированию и операциям поддержки.
Важно: адаптируйте параметры MariaDB и PHP под реальные нагрузки и проводите тесты восстановления данных до ввода в продуктив.
Ключевые действия после установки
- Настроить регулярные бэкапы БД и файлов.
- Настроить мониторинг и обновления системы.
- Ограничить доступ к админ-интерфейсу и настроить HTTPS.
Спасибо за чтение. Если нужно, могу подготовить Docker-композ для развёртывания i-doit или чеклист миграции из другой CMDB.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента