Главная/Self-hosted/Keycloak

Установка Keycloak на свой сервер

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

5 мин чтенияДанные проверены 16 октября 2026

Ответ за 30 секунд

Для небольшой команды хватит 2 ядер и 4 ГБ памяти с PostgreSQL рядом. Режим start-dev годится только для проверки: в работе нужны режим start, внешняя база и HTTPS. Версию образа закрепляйте вручную, Keycloak меняет настройки между релизами.

Маркетплейс разворачивает Keycloak на новом сервере, останется привязать домен и завести realm.

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

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

Ответьте на три вопроса, калькулятор покажет готовую конфигурацию

Сколько учётных записей
Где живёт PostgreSQL
Подключение каталога

03 · 1 мин

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

  1. Поставьте Docker скриптом curl -fsSL https://get.docker.com | sh и создайте каталог keycloak с файлом compose.yaml.
  2. Впишите свой домен и пароли в файл ниже. В быстром старте версия образа указана явно, и это верный подход: тег latest в работе не используют.
  3. Запустите docker compose up -d. Первый старт занимает несколько минут, пока Keycloak создаёт таблицы.
  4. Откройте консоль по адресу 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.

  1. Создайте realm, например company, и заведите в нём пользователей или включите самостоятельную регистрацию.
  2. Добавьте клиент для приложения: тип OpenID Connect, адрес приложения и redirect URI из его инструкции.
  3. Скопируйте Client ID и секрет в настройки приложения и укажите адрес https://auth.example.com/realms/company как провайдера.
  4. Включите второй фактор для администраторов: 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.

SBРедакция SelfBase · обновлено 16 октября 2026

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

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

  • Docker, n8n, OpenClaw, GitLab, Nextcloud
  • Ставится при создании сервера
  • Почасовая оплата сервера
  • Root-доступ остаётся у вас
Ресурсы