GLPI (Gestion Libre de Parc Informatique, бесплатное управление ИТ-парком фр.) — бесплатная открытая система управления ИТ-инфраструктурой, предназначенная для учёта оборудования, управления инцидентами, запросами, лицензиями и другими аспектами ИТ-среды организации. Разработана на PHP, поддерживает базы данных MySQL/MariaDB.
Источники
Обозначения
- KPM = Kaspersky Password Manager, версия 25.3.0.105 (a) / 1780062802_7816 / 1.1.0.2_1,
- KPM(string) = содержимое карточки со строкой string.
Установка на стенде
Провайдер Cloud.ru, VPS singularity2.lytkins.ru - 2 vCPU, 4 ГБ RAM, 30 ГБ HDD, ОС Ubuntu 24.04.4 LTS
liv_adm@singularity2:~$ hostnamectl status Static hostname: singularity2 Icon name: computer-vm Chassis: vm 🖴 Machine ID: b48c99416a3941fbac1a1632c8e7f72a Boot ID: 94d2548facbf45e5a336f131e5965273 Virtualization: kvm Operating System: Ubuntu 24.04.4 LTS Kernel: Linux 6.8.0-124-generic Architecture: x86-64 Hardware Vendor: OpenStack Foundation Hardware Model: OpenStack Nova Firmware Version: 1.15.0-1 Firmware Date: Tue 2014-04-01 Firmware Age: 12y 2month 2w 6d
Вариант 1. Docker compose
Источники
mkdir ~/glpidocker
cd ~/glpidocker
nano docker-compose.yml
Содержимое файла docker-compose.yml
name: glpi
services:
glpi:
image: "glpi/glpi:latest"
restart: "unless-stopped"
volumes:
# Using a named volume avoids permission issues on host (automatically managed by Docker)
- glpi_data:/var/glpi
# For GLPI 10.x, uncomment the following line to create a volume for plugins fetched from the marketplace.
# - "./storage/glpi_marketplace:/var/www/glpi/marketplace/:rw"
env_file: .env # Pass environment variables from .env file to the container
depends_on:
- db
ports:
- "8080:80"
hostname: glpi
networks:
- glpi_b network
db:
image: "mysql:8.0" # Вместо "mysql" (который = latest = 9.7.1)
restart: "unless-stopped"
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_RANDOM_ROOT_PASSWORD: "yes'"
MYSQL_DATABASE: ${GLPI_DB_NAME}
MYSQL_USER: ${GLPI_DB_USER}
MYSQL_PASSWORD: ${GLPI_DB_PASSWORD}
networks:
- glpi_network
volumes:
glpi_data:
db_data:
networks:
glpi_network:
driver: bridge
Содержимое файла .env
GLPI_DB_HOST=db
GLPI_DB_PORT=3306
GLPI_DB_NAME=glpi_db
GLPI_DB_USER=glpi_user
GLPI_DB_PASSWORD=KPM(GLPI_DB_PASSWORD)
Запуск
liv_adm@singularity2:~/glpidocker$ sudo docker compose up -d
[+] up 3/3
v Network glpi_glpi_network Created 0.0s
v Container glpi-db-1 Started 0.6s
v Container glpi-glpi-1 Started
Проверка правильности запуска
liv_adm@singularity2:~/glpidocker$ sudo docker logs glpi-glpi-1 --tail 100
2026-06-21 03:27:26 [@glpi]
External #1: Launch queuedwebhook
2026-06-21 03:28:26 [@glpi]
External #1: Launch queuedwebhook
2026-06-21 03:29:27 [@glpi]
External #1: Launch pendingreason_autobump_autosolve
2026-06-21 03:29:27 [@glpi]
External #2: Launch queuedwebhook
2026-06-21 03:30:27 [@glpi]
External #1: Launch queuedwebhook
2026-06-20 22:48:14 [@glpi]
[login] 3: glpi вошел в систему с IP 45.152.86.79
[2026-06-20 22:27:04] glpi.WARNING: *** Test logger
[2026-06-20 22:58:42] glpi.WARNING: *** Test logger
[2026-06-20 22:59:43] glpi.WARNING: *** Test logger
./vendor/symfony/http-kernel/HttpKernel.php:181 Glpi\Controller\InventoryController->index()
./vendor/symfony/http-kernel/HttpKernel.php:76 Symfony\Component\HttpKernel\HttpKernel->handleRaw()
...tener/CatchInventoryAgentRequestListener.php:77 Symfony\Component\HttpKernel\HttpKernel->handle()
...ymfony/event-dispatcher/EventDispatcher.php:260 Glpi\Kernel\Listener\RequestListener\CatchInventoryAgentRequestListener->onKernelRequest()
...ymfony/event-dispatcher/EventDispatcher.php:220 Symfony\Component\EventDispatcher\EventDispatcher::{closure:Symfony\Component\EventDispatcher\EventDispatcher::optimizeListeners():255}()
...symfony/event-dispatcher/EventDispatcher.php:56 Symfony\Component\EventDispatcher\EventDispatcher->callListeners()
./vendor/symfony/http-kernel/HttpKernel.php:157 Symfony\Component\EventDispatcher\EventDispatcher->dispatch()
./vendor/symfony/http-kernel/HttpKernel.php:76 Symfony\Component\HttpKernel\HttpKernel->handleRaw()
./vendor/symfony/http-kernel/Kernel.php:208 Symfony\Component\HttpKernel\HttpKernel->handle()
./public/index.php:71 Symfony\Component\HttpKernel\Kernel->handle()
[entrypoint] Waiting for database to be ready...
[entrypoint] Still waiting for database to be ready... 119 attempts left.
[entrypoint] Still waiting for database to be ready... 118 attempts left.
[entrypoint] The database is now ready and reachable.
[2026-06-21 03:42:40] glpi.WARNING: *** Test logger
GLPI is installed, and auto-update is enabled. Starting update...
[2026-06-21 03:42:42] glpi.WARNING: *** Test logger
================================================================
Welcome to
██████╗ ██╗ ██████╗ ██╗
██╔════╝ ██║ ██╔══██╗██║
██║ ███╗██║ ██████╔╝██║
██║ ██║██║ ██╔═══╝ ██║
╚██████╔╝███████╗██║ ██║
╚═════╝ ╚══════╝╚═╝ ╚═╝
https://glpi-project.org
2026-06-21 03:42:42,930 WARN No file matches via include "/etc/supervisor/conf.d/*.conf"
2026-06-21 03:42:42,930 WARN No file matches via include "/etc/supervisor/conf.d/*.conf"
2026-06-21 03:42:42,931 INFO Set uid to user 33 succeeded
2026-06-21 03:42:42,931 INFO Set uid to user 33 succeeded
2026-06-21 03:42:42,959 INFO supervisord started with pid 1
2026-06-21 03:42:42,959 INFO supervisord started with pid 1
2026-06-21 03:42:43,962 INFO spawned: 'apache2' with pid 29
2026-06-21 03:42:43,962 INFO spawned: 'apache2' with pid 29
2026-06-21 03:42:43,964 INFO spawned: 'glpi-cron' with pid 30
2026-06-21 03:42:43,964 INFO spawned: 'glpi-cron' with pid 30
[INFO] GLPI cron is enabled. Starting worker tasks...
[scheduler] Waiting for database to be ready...
[scheduler] The database is now ready and reachable.
[GLPI Cron] [INFO] Scheduler started (mode=interval, command=php /var/www/glpi/front/cron.php)
[Sun Jun 21 03:42:44.123767 2026] [mpm_prefork:notice] [pid 29:tid 29] AH00163: Apache/2.4.67 (Debian) configured -- resuming normal operations
[Sun Jun 21 03:42:44.123846 2026] [core:notice] [pid 29:tid 29] AH00094: Command line: 'apache2 -D FOREGROUND'
2026-06-21 03:42:44 [@glpi]
External #1: Launch queuedwebhook
[GLPI Cron] [INFO] Next run in 60s (2026-06-21 03:43:44)
2026-06-21 03:42:45,294 INFO success: apache2 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2026-06-21 03:42:45,294 INFO success: apache2 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2026-06-21 03:42:45,294 INFO success: glpi-cron entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2026-06-21 03:42:45,294 INFO success: glpi-cron entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
Проверить в консоли Portainer журнал контейнера СУБД MySQL
2026-06-21 03:42:38+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.46-1.el9 started.
2026-06-21 03:42:38+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2026-06-21 03:42:38+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.46-1.el9 started.
'/var/lib/mysql/mysql.sock' -> '/var/run/mysqld/mysqld.sock'
2026-06-21T03:42:39.048350Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead.
2026-06-21T03:42:39.050965Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.46) starting as process 1
2026-06-21T03:42:39.060952Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2026-06-21T03:42:39.903789Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2026-06-21T03:42:40.415799Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2026-06-21T03:42:40.415863Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
2026-06-21T03:42:40.432268Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
2026-06-21T03:42:40.479725Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock
2026-06-21T03:42:40.479773Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.46' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.
Nota bene! Особенность VPS в Cloud.ru - для доступа к порту tcp/8080 необходимо добавить правило в группу безопасности, соответствующую VPS.

пароль по умолчанию glpi/glpi

Установка паролей встроенных учётных записей
- glpi = KPM(glpi)
- post-only=KPM(post-only)
- tech=KPM(tech)
- normal=KPM(normal)
Welcome to GLPI!
Вишенки на тортик :)
1. Для промышленного использования создать CNAME-запись в разделах DNS в CloudFlare, BeGet. Сертификат для https выдать на этот CNAME.
glpi CNAME singularity2.lytkins.ru
2. Настроить nginx таким образом, что при переходе по URL https://glpi.lytkins.ru открывалась бы консоль GLPI.