Установка Keycloak на свой сервер: коротко и с данными

Конспект страницы: 7 разделов коротко, данные на 14 октября 2026 и ответы на 4 вопроса. Полный разбор с примерами: Установка Keycloak на свой сервер.

Коротко

Главная / Self-hosted / Keycloak Установка Keycloak на свой сервер делается образом quay.io/keycloak/keycloak в Docker: приложение слушает порт 8080 и хранит данные в PostgreSQL. Keycloak даёт единый вход (SSO) для всех ваших сервисов: человек вводит пароль один раз, а Nextcloud, Grafana или GitLab доверяют этому входу. Для небольшой команды хватит 2 ядер и 4 ГБ памяти с PostgreSQL рядом.

Конспект по разделам

Что делает Keycloak и когда без него можно обойтись

Keycloak это сервер идентификации с открытым кодом (лицензия Apache 2.0): он хранит пользователей, проверяет пароль и второй фактор и выдаёт приложениям подтверждение по протоколам OpenID Connect и SAML. Каждое приложение вместо собственных паролей отправляет человека на страницу входа Keycloak. Нужен он, когда у команды больше трёх-четырёх сервисов и людей надоело заводить и отключать по десять учётных записей.

Сколько памяти и ядер нужно Keycloak

Keycloak запускается как Java-приложение на Quarkus, поэтому на пустом сервере он тоже занимает порядочный объём памяти. Документация быстрого старта не называет минимальную конфигурацию, а подробный расчёт у разработчиков идёт от числа входов в секунду. Для небольшой команды ориентир такой: Ответьте на три вопроса, калькулятор покажет готовую конфигурацию

Установка Keycloak через Docker Compose с PostgreSQL

Переменные KC_BOOTSTRAP_ADMIN_USERNAME и KC_BOOTSTRAP_ADMIN_PASSWORD нужны только для первого входа. Порт привязан к 127.0.0.1, так что снаружи Keycloak виден лишь через прокси.

HTTPS и hostname для Keycloak за обратным прокси

Обратный прокси это сервер, который принимает HTTPS от браузера и передаёт запрос Keycloak внутри машины. Самый короткий путь дальше лежит через Caddy: достаточно блока auth.example.com { reverse_proxy 127.0.0.1:8080 }, сертификат он получит сам. Две настройки в compose-файле нужны именно за прокси.

Первый realm в Keycloak и вход через него в другие приложения

Realm в Keycloak это отдельное пространство пользователей и приложений. Не работайте в стандартном realm master: он служит для администраторов самого Keycloak.

Копии базы и обновление Keycloak без потери пользователей

Всё, что нужно сохранять, лежит в PostgreSQL: пользователи, клиенты, роли и настройки realm. Делайте pg_dump по расписанию и храните дамп на другом сервере или в S3, как в разделе про бэкапы. Файлов в контейнере Keycloak не хранит.

Установите приложение без консоли

Маркетплейс ставит готовый образ на новый сервер: Docker, GitLab, Nextcloud, n8n и другие.

Данные

ЧтоДля старта
Процессор1-2 ядра
Память2 ГБ для Keycloak, плюс 1 ГБ, если PostgreSQL стоит рядом
Диск20 ГБ: система, образы, база пользователей и журнал событий
Порты8080 (HTTP) и 8443 (HTTPS) внутри контейнера, наружу открывайте только 443 через прокси
БазаPostgreSQL; встроенная база разработчика годится лишь для теста

Данные на 14 октября 2026.

Вопросы и ответы

Какой порт использует Keycloak в Docker?

Внутри контейнера 8080 для HTTP и 8443 для HTTPS. В быстром старте консоль открывается на порту 8080, в работе наружу выставляют только 443 через обратный прокси.

Чем отличается start-dev от start в Keycloak?

Режим start-dev предназначен для проверки: он упрощает настройки и использует встроенную базу. Режим start требует внешней базы, hostname и HTTPS, зато подходит для рабочего сервера.

Как задать администратора Keycloak в Docker?

Переменными KC_BOOTSTRAP_ADMIN_USERNAME и KC_BOOTSTRAP_ADMIN_PASSWORD при первом запуске. После входа создайте постоянного администратора, а временного удалите.

Нужен ли Keycloak, если пользователей всего несколько?

Не обязательно. Единый вход оправдан, когда сервисов несколько и людей приходится заводить в каждом отдельно. Для одного человека хватит менеджера паролей.