Обзор развертывания Keycloak на сервере¶
Предварительные требования¶
Для успешного развертывания приложения должны быть соблюдены следующие условия:
-
Операционная система: Ubuntu.
-
Права доступа: Права суперпользователя (root) для установки системных пакетов и управления Docker.
-
Сетевые настройки: Доступ к интернету для загрузки образов контейнеров и получения SSL-сертификатов.
-
Порты:
-
443(внешний HTTPS порт). -
8080(внутренний порт приложения).
FDQN итоговой панели на домене hostkey.in¶
Для доступа к интерфейсу управления используется следующий шаблон доменного имени:
| Параметр | Значение |
|---|---|
| Префикс | keycloak |
| Домен | hostkey.in |
| Полный шаблон | keycloak{Server_ID_from_Invapi}.hostkey.in |
Структура файлов и каталогов¶
Основные данные и конфигурации распределены по следующим путям:
-
/opt/keycloak— рабочая директория приложения, содержащая файл конфигурации Docker Compose. -
/root/nginx— директория для управления прокси-сервером Nginx и SSL-сертификатами. -
/data/nginx/user_conf.d— каталог с конфигурационными файлами для доменных имен. -
/data/nginx/nginx-certbot.env— файл переменных окружения для Nginx.
Процесс установки приложения¶
Развертывание выполняется в несколько этапов:
-
Подготовка системы: Установка среды Docker и создание необходимых директорий (
/opt/keycloak,/root/nginx). -
Настройка контейнеров приложения:
-
Создается конфигурационный файл
keycloak-compose.ymlв директории/opt/keycloak. -
Загружаются необходимые образы из реестра
quay.io/keycloak/keycloak:latestиpostgres:16. -
Запускаются контейнеры приложения через Docker Compose.
-
Настройка проксирования:
-
Создается конфигурация Nginx для обеспечения работы по HTTPS.
-
В конфигурацию Nginx добавляются заголовки
X-Forwarded-ProtoиX-Forwarded-Portдля корректной передачи протокола и порта через прокси. -
Выполняется перезагрузка сервиса Nginx для применения настроек.
Права доступа и безопасность¶
-
Директория приложения
/opt/keycloakимеет права доступа0750. -
Конфигурационный файл
keycloak-compose.ymlзащищен правами0640. -
Приложение работает за прокси-сервером Nginx, который обрабатывает SSL-соединения.
Базы данных¶
В качестве системы управления базами данных используется PostgreSQL 16.
-
Метод подключения: Контейнер приложения подключается к базе данных через внутреннюю сеть Docker по адресу
keycloak_postgres:5432. -
Имя базы данных:
keycloak. -
Пользователь БД:
keycloak. -
Хранение данных: Данные базы данных сохраняются в именованном томе
postgres_dataдля обеспечения персистентности.
Контейнеры Docker и их запуск¶
Приложение состоит из трех основных контейнеров:
Keycloak¶
-
Образ:
quay.io/keycloak/keycloak:latest -
Имя контейнера:
keycloak{Server_ID}.hostkey.in -
Порты:
127.0.0.1:8080:8080(доступ только локально) -
Переменные окружения: Настроены параметры хоста, базы данных и учетные данные администратора.
-
Политика перезапуска:
always.
PostgreSQL¶
-
Образ:
postgres:16 -
Имя контейнера:
keycloak_postgres -
Переменные окружения: Настроены имя БД, пользователь и пароль.
-
Тома (volumes):
postgres_data:/var/lib/postgresql/data. -
Политика перезапуска:
always.
Nginx (Proxy)¶
-
Образ:
jonasal/nginx-certbot:latest -
Режим сети:
host -
Тома (volumes):
-
nginx_secrets:/etc/letsencrypt(для SSL сертификатов). -
/data/nginx/user_conf.d:/etc/nginx/user_conf.d(конфигурации доменов). -
Политика перезапуска:
unless-stopped.
Инструкция по обновлению приложения¶
Для обновления основного приложения необходимо выполнить следующие действия:
-
Перейти в директорию с конфигурацией:
-
Выполнить обновление образов и перезапуск контейнеров: