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

Обзор развертывания 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.

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

Развертывание выполняется в несколько этапов:

  1. Подготовка системы: Установка среды Docker и создание необходимых директорий (/opt/keycloak, /root/nginx).

  2. Настройка контейнеров приложения:

  3. Создается конфигурационный файл keycloak-compose.yml в директории /opt/keycloak.

  4. Загружаются необходимые образы из реестра quay.io/keycloak/keycloak:latest и postgres:16.

  5. Запускаются контейнеры приложения через Docker Compose.

  6. Настройка проксирования:

  7. Создается конфигурация Nginx для обеспечения работы по HTTPS.

  8. В конфигурацию Nginx добавляются заголовки X-Forwarded-Proto и X-Forwarded-Port для корректной передачи протокола и порта через прокси.

  9. Выполняется перезагрузка сервиса 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.

Инструкция по обновлению приложения

Для обновления основного приложения необходимо выполнить следующие действия:

  1. Перейти в директорию с конфигурацией:

    cd /opt/keycloak
    

  2. Выполнить обновление образов и перезапуск контейнеров:

    docker compose pull && docker compose up -d
    

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