Главная/Self-hosted/Keycloak
Установка Keycloak на свой сервер
Установка Keycloak на свой сервер делается образом quay.io/keycloak/keycloak в Docker: приложение слушает порт 8080 и хранит данные в PostgreSQL. Keycloak даёт единый вход (SSO) для всех ваших сервисов: человек вводит пароль один раз, а Nextcloud, Grafana или GitLab доверяют этому входу.
Ответ за 30 секунд
Для небольшой команды хватит 2 ядер и 4 ГБ памяти с PostgreSQL рядом. Режим start-dev годится только для проверки: в работе нужны режим start, внешняя база и HTTPS. Версию образа закрепляйте вручную, Keycloak меняет настройки между релизами.
Маркетплейс разворачивает Keycloak на новом сервере, останется привязать домен и завести realm.
Сколько памяти и ядер нужно Keycloak8080порт Keycloak по умолчанию
26.8.1версия в быстром старте на 15.10
48установок из маркетплейса на 14.10
01 · 1 мин
Что делает Keycloak и когда без него можно обойтись#
Keycloak это сервер идентификации с открытым кодом (лицензия Apache 2.0): он хранит пользователей, проверяет пароль и второй фактор и выдаёт приложениям подтверждение по протоколам OpenID Connect и SAML. Каждое приложение вместо собственных паролей отправляет человека на страницу входа Keycloak.
Нужен он, когда у команды больше трёх-четырёх сервисов и людей надоело заводить и отключать по десять учётных записей. Для одного пользователя и пары приложений хватит их собственных паролей и менеджера Vaultwarden. Если нужен другой сервер единого входа со своими потоками входа и современным интерфейсом, посмотрите Authentik.
Инструмент · 1 мин
Сколько памяти и ядер нужно Keycloak#
Keycloak запускается как Java-приложение на Quarkus, поэтому на пустом сервере он тоже занимает порядочный объём памяти. Документация быстрого старта не называет минимальную конфигурацию, а подробный расчёт у разработчиков идёт от числа входов в секунду. Для небольшой команды ориентир такой:
| Что | Для старта |
|---|---|
| Процессор | 1-2 ядра |
| Память | 2 ГБ для Keycloak, плюс 1 ГБ, если PostgreSQL стоит рядом |
| Диск | 20 ГБ: система, образы, база пользователей и журнал событий |
| Порты | 8080 (HTTP) и 8443 (HTTPS) внутри контейнера, наружу открывайте только 443 через прокси |
| База | PostgreSQL; встроенная база разработчика годится лишь для теста |
Какой сервер взять под Keycloak
Ответьте на три вопроса, калькулятор покажет готовую конфигурацию
03 · 1 мин
Установка Keycloak через Docker Compose с PostgreSQL#
- Поставьте Docker скриптом
curl -fsSL https://get.docker.com | shи создайте каталогkeycloakс файломcompose.yaml. - Впишите свой домен и пароли в файл ниже. В быстром старте версия образа указана явно, и это верный подход: тег latest в работе не используют.
- Запустите
docker compose up -d. Первый старт занимает несколько минут, пока Keycloak создаёт таблицы. - Откройте консоль по адресу
https://auth.example.com/adminи войдите под администратором из переменных. Затем создайте постоянного администратора и удалите временного.
services:
db:
image: postgres:17
restart: unless-stopped
environment:
POSTGRES_DB: keycloak
POSTGRES_USER: keycloak
POSTGRES_PASSWORD: change_me
volumes:
- kc_db:/var/lib/postgresql/data
keycloak:
image: quay.io/keycloak/keycloak:26.8.1
command: start
restart: unless-stopped
depends_on:
- db
environment:
KC_DB: postgres
KC_DB_URL: jdbc:postgresql://db/keycloak
KC_DB_USERNAME: keycloak
KC_DB_PASSWORD: change_me
KC_HOSTNAME: https://auth.example.com
KC_HTTP_ENABLED: "true"
KC_PROXY_HEADERS: xforwarded
KC_BOOTSTRAP_ADMIN_USERNAME: admin
KC_BOOTSTRAP_ADMIN_PASSWORD: change_me_too
ports:
- "127.0.0.1:8080:8080"
volumes:
kc_db:
Переменные KC_BOOTSTRAP_ADMIN_USERNAME и KC_BOOTSTRAP_ADMIN_PASSWORD нужны только для первого входа. Порт привязан к 127.0.0.1, так что снаружи Keycloak виден лишь через прокси.
04 · 1 мин
HTTPS и hostname для Keycloak за обратным прокси#
Обратный прокси это сервер, который принимает HTTPS от браузера и передаёт запрос Keycloak внутри машины. Самый короткий путь дальше лежит через Caddy: достаточно блока auth.example.com { reverse_proxy 127.0.0.1:8080 }, сертификат он получит сам.
Две настройки в compose-файле нужны именно за прокси. KC_HOSTNAME с полным адресом вместе со схемой https говорит Keycloak, какие ссылки отдавать клиентам. KC_PROXY_HEADERS заставляет доверять заголовкам X-Forwarded от вашего прокси. Если пропустить вторую, вход через приложения может сломаться на этапе перенаправления, а в журнале будут жалобы на неверный redirect URI.
Другие прокси: Traefik для контейнерной схемы и Nginx с сертификатом от Certbot.
05 · 1 мин
Первый realm в Keycloak и вход через него в другие приложения#
Realm в Keycloak это отдельное пространство пользователей и приложений. Не работайте в стандартном realm master: он служит для администраторов самого Keycloak.
- Создайте realm, например company, и заведите в нём пользователей или включите самостоятельную регистрацию.
- Добавьте клиент для приложения: тип OpenID Connect, адрес приложения и redirect URI из его инструкции.
- Скопируйте Client ID и секрет в настройки приложения и укажите адрес
https://auth.example.com/realms/companyкак провайдера. - Включите второй фактор для администраторов: Keycloak умеет одноразовые коды и ключи WebAuthn.
06 · 1 мин
Копии базы и обновление Keycloak без потери пользователей#
Всё, что нужно сохранять, лежит в PostgreSQL: пользователи, клиенты, роли и настройки realm. Делайте pg_dump по расписанию и храните дамп на другом сервере или в S3, как в разделе про бэкапы. Файлов в контейнере Keycloak не хранит.
Обновляйте по одной версии и после дампа
Keycloak при первом запуске новой версии сам меняет схему базы, и откат на прежний образ после этого не всегда возможен. Прочитайте руководство по обновлению для вашей и целевой версии, сделайте дамп и только тогда меняйте тег образа.
07 · 1 мин
Вопросы об установке Keycloak#
Какой порт использует 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, если пользователей всего несколько?
Не обязательно. Единый вход оправдан, когда сервисов несколько и людей приходится заводить в каждом отдельно. Для одного человека хватит менеджера паролей.
Почему этому можно верить
Как мы проверяли
Источники цифр на этой странице: VPS и VDS серверы Таймвеб Клауд, timeweb.cloud/services/vds-vps, проверено 14 октября 2026; Облачные базы данных Таймвеб Клауд, timeweb.cloud/services/dbaas, проверено 14 октября 2026; Маркетплейс приложений Таймвеб Клауд, timeweb.cloud/marketplace, проверено 14 октября 2026; Keycloak: быстрый старт в Docker, keycloak.org/getting-started/getting-started-docker, проверено 15 октября 2026.
Установите приложение без консоли
Маркетплейс ставит готовый образ на новый сервер: Docker, GitLab, Nextcloud, n8n и другие.
- Docker, n8n, OpenClaw, GitLab, Nextcloud
- Ставится при создании сервера
- Почасовая оплата сервера
- Root-доступ остаётся у вас