Перейти к содержанию

Обзор развертывания Keycloak на сервере

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

Для корректной работы приложения требуются следующие параметры системы:

  • Операционная система: Ubuntu.

  • Права доступа: права суперпользователя (root) для управления Docker и системными директориями.

  • Порты:

  • 443 (внешний HTTPS порт).

  • 8080 (внутренний HTTP порт приложения).

FDQN итоговой панели на домене hostkey.in

Параметр Значение
Префикс keycloak
Домен hostkey.in
Полный шаблон keycloak{Server_ID_from_Invapi}.hostkey.in

Структура файлов и каталогов

В системе используются следующие директории для хранения конфигураций, данных и сертификатов:

  • /opt/keycloak — рабочая директория приложения Keycloak.

  • /root/nginx — директория управления прокси-сервером Nginx.

  • /data/nginx/user_conf.d — директория с конфигурационными файлами виртуальных хостов Nginx.

  • /data/nginx/nginx-certbot.env — файл переменных окружения для Certbot.

Процесс установки приложения

Развертывание выполняется путем запуска контейнеров через Docker Compose. Приложение устанавливается в двух этапах:

  1. Запуск основного стека Keycloak и базы данных PostgreSQL в директории /opt/keycloak.

  2. Развертывание прокси-сервера Nginx с автоматическим получением SSL-сертификатов Certbot в директории /root/nginx.

Контейнеры Docker и их запуск

Приложение Keycloak

Параметр Значение
Имя контейнера keycloak{Server_ID_from_Invapi}.hostkey.in
Образ quay.io/keycloak/keycloak:latest
Порты 127.0.0.1:8080:8080
Политика перезапуска always

Переменные окружения:

  • KC_BOOTSTRAP_ADMIN_USERNAME: root

  • KC_BOOTSTRAP_ADMIN_PASSWORD: (задается автоматически)

  • KC_HTTP_ENABLED: true

  • KC_HOSTNAME: keycloak{Server_ID_from_Invapi}.hostkey.in

  • KC_HOSTNAME_STRICT_HTTPS: false

  • KC_PROXY_HEADERS: xforwarded

  • KC_DB_URL: jdbc:postgresql://keycloak_postgres:5432/keycloak

  • KC_DB: postgres

  • KC_DB_USERNAME: keycloak

  • KC_DB_PASSWORD: keycloak

Команда запуска: start

База данных PostgreSQL

Параметр Значение
Имя контейнера keycloak_postgres
Образ postgres:16
Политика перезапуска always

Переменные окружения:

  • POSTGRES_DB: keycloak

  • POSTGRES_USER: keycloak

  • POSTGRES_PASSWORD: keycloak

  • POSTGRES_PORT: 5432

Прокси-сервер Nginx (Certbot)

Параметр Значение
Имя образа jonasal/nginx-certbot:latest
Режим сети host
Политика перезапуска unless-stopped

Тома (volumes):

  • nginx_secrets:/etc/letsencrypt

  • /data/nginx/user_conf.d:/etc/nginx/user_conf.d

Переменные окружения:

  • CERTBOT_EMAIL: hkadm@hostkey.com

Обновление приложения

Обновление выполняется через выполнение команд:

docker compose pull && docker compose up -d
(Выполняется в директориях /opt/keycloak и /root/nginx).

Настройки прав

Для обеспечения безопасности установлены следующие права доступа:

  • Директория /opt/keycloak: владелец root, группа root, режим 0750.

  • Файл конфигурации keycloak-compose.yml: владелец root, группа root, режим 0640.

Расположение конфигурационных файлов и данных

  • Конфигурация Docker Compose (Keycloak): /opt/keycloak/keycloak-compose.yml

  • Конфигурация Docker Compose (Nginx): /root/nginx/compose.yml

  • Данные базы данных PostgreSQL: хранятся в именованном томе postgres_data.

Доступные порты для подключения

  • 443 — доступ к интерфейсу Keycloak через HTTPS (через прокси Nginx).

  • 8080 — локальный порт приложения (доступен только внутри сервера через 127.0.0.1).

Запуск, остановка приложения

Управление контейнерами осуществляется командами Docker Compose:

Для Keycloak:

docker compose -f /opt/keycloak/keycloak-compose.yml up -d  # Запуск
docker compose -f /opt/keycloak/keycloak-compose.yml down # Остановка

Для Nginx:

cd /root/nginx && docker compose up -d    # Запуск
cd /root/nginx && docker compose down     # Остановка

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×