GLPI — ITSM и учёт активов: заявки, инвентарь, контракты, база знаний. Ниже — GLPI 11 и MySQL 8.4 за Traefik на HTTPS, без публикации порта 80 наружу.
Нужны рабочий Traefik и сеть traefik_network.
.envmkdir -p glpi/data/{glpi,mysql}
cd glpi
chown -R 33:33 data/glpi
cat > .env <<'EOF'
GLPI_DB_PASSWORD=(youpassword)
MYSQL_ROOT_PASSWORD=(youpassword)
EOF
UID 33 — www-data в образе glpi/glpi; иначе каталог данных будет недоступен веб-процессу.
docker-compose.ymlservices:
db:
container_name: glpi-db
image: mysql:8.4
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: glpi
MYSQL_USER: glpi
MYSQL_PASSWORD: ${GLPI_DB_PASSWORD}
volumes:
- ./data/mysql:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 5s
timeout: 5s
retries: 30
start_period: 30s
networks:
- internal
glpi:
container_name: glpi-web
image: glpi/glpi:11.0.7
restart: unless-stopped
depends_on:
db:
condition: service_healthy
environment:
GLPI_DB_HOST: db
GLPI_DB_PORT: "3306"
GLPI_DB_NAME: glpi
GLPI_DB_USER: glpi
GLPI_DB_PASSWORD: ${GLPI_DB_PASSWORD}
volumes:
- ./data/glpi:/var/glpi:z
# ports: # не публикуем — только Traefik
# - "80:80"
labels:
- traefik.enable=true
- traefik.http.middlewares.glpi_https.redirectscheme.scheme=https
- traefik.http.routers.glpi.entrypoints=web
- traefik.http.routers.glpi.middlewares=glpi_https@docker
- traefik.http.routers.glpi.rule=Host(`glpi.(yourdomain)`)
- traefik.http.routers.glpi_https.entrypoints=websecure
- traefik.http.routers.glpi_https.rule=Host(`glpi.(yourdomain)`)
- traefik.http.routers.glpi_https.tls=true
- traefik.http.routers.glpi_https.tls.certresolver=le
- traefik.http.services.glpi.loadbalancer.server.port=80
networks:
- traefik_network
- internal
networks:
traefik_network:
external: true
internal:
driver: bridge
⚠️ Замените
(yourdomain)и пароли. Флаг:zна томе GLPI — для SELinux (Alma/Rocky); на системах без SELinux можно опустить.
MySQL остаётся во внутренней сети: снаружи виден только веб через Traefik.
docker compose up -d
docker compose ps
Откройте https://glpi.(yourdomain) и пройдите мастер установки: хост БД db, база/пользователь glpi, пароль из .env.
./data/mysql и ./data/glpi (конфиг, файлы, плагины).https://glpi.(yourdomain).80/3306 в NAT роутера — достаточно 80/443 на Traefik.Итог: GLPI 11 + MySQL за HTTPS на том же стеке Docker + Traefik, что и остальные сервисы стенда.