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

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

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

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

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

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

  • Порты:

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

  • 443 — внешний порт для HTTPS трафика.

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

Для доступа к интерфейсу управления используется следующий шаблон доменного имени:

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

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

Основные файлы конфигурации и данные приложения расположены по следующим путям:

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

  • /opt/keycloak/keycloak-compose.yml — файл конфигурации Docker Compose для Keycloak.

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

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

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

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

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

  1. Подготовка системы: Установка среды Docker на сервер.

  2. Настройка рабочей директории: Создание каталога /opt/keycloak с правами доступа 0750.

  3. Развертывание контейнеров приложения:

  4. Подгрузка образов из реестра quay.io/keycloak/keycloak:latest и postgres:16.

  5. Запуск сервисов через Docker Compose.

  6. Настройка проксирования: Создание конфигурации Nginx в /root/nginx/compose.yml для обеспечения доступа к приложению по HTTPS.

  7. Конфигурация SSL: Настройка Certbot для автоматического получения и управления сертификатами.

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

Приложение состоит из группы контейнеров, работающих в связке:

Keycloak

  • Имя образа: quay.io/keycloak/keycloak:latest

  • Порты: 127.0.0.1:8080:8080 (доступ только локально)

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

  • Настройка администратора (KC_BOOTSTRAP_ADMIN_USERNAME, KC_BOOTSTRAP_ADMIN_PASSWORD)

  • Параметры хоста и протокола (KC_HOSTNAME, KC_HTTP_ENABLED, KC_PROXY_HEADERS)

  • Параметры подключения к базе данных (PostgreSQL)

  • Политика перезапуска: always

PostgreSQL

  • Имя образа: postgres:16

  • Переменные окружения: Настройки базы данных keycloak, пользователя и пароля.

  • Тома (volumes): postgres_data:/var/lib/postgresql/data

  • Политика перезапуска: always

Nginx (Proxy)

  • Имя образа: jonasal/nginx-certbot:latest

  • Сеть: Режим host

  • Тома (volumes):

  • nginx_secrets:/etc/letsencrypt (сертификаты)

  • /data/nginx/user_conf.d:/etc/nginx/user_conf.d (конфигурации сайтов)

  • Политика перезапуска: unless-stopped

Базы данных

В качестве системы управления базами данных используется контейнер PostgreSQL 16. Данные хранятся в именованном томе postgres_data, что обеспечивает сохранность информации при перезапуске или обновлении контейнеров. Приложение Keycloak подключается к базе по адресу jdbc:postgresql://keycloak_postgres:5432/keycloak.

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

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

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

    cd /opt/keycloak
    

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

    docker compose pull && docker compose up -d
    

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

Тип данных Путь
Данные базы данных (PostgreSQL) postgres_data (Docker volume)
Конфигурация Docker Compose /opt/keycloak/keycloak-compose.yml
Конфигурация Nginx /root/nginx/compose.yml

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

  • HTTPS (внешний): 443 (через прокси Nginx)

  • HTTP (внутренний): 8080 (доступен только внутри сервера)

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