---
title: "Keycloak: Docker Compose и хостинг в один клик"
description: "Self-hosted Keycloak — open source управление идентификацией и доступом: единый вход, вход через соцсети и 2FA. Альтернатива Auth0 в один клик."
---

[← Все шаблоны](https://pethost.dev/ru/templates/) · [Пароли и вход](https://pethost.dev/ru/templates/security/)

# Задеплойте Keycloak в один клик

Управление идентификацией и доступом с открытым кодом: единый вход в ваши приложения по OpenID Connect и SAML

Альтернатива Auth0 и Okta на вашей машине.

[Задеплоить на Pethost](https://console.pethost.dev/?template=keycloak)

## Что такое Keycloak?

Keycloak — сервер управления идентификацией и доступом: ваши приложения поручают ему вход, и, войдя один раз, человек входит сразу во все. Он поддерживает OpenID Connect, OAuth 2.0 и SAML 2.0, поэтому большинство приложений и фреймворков подключаются к нему своими стандартными библиотеками. Он впускает людей по паролю, passkey или через аккаунт в соцсети или сервисе вроде Google или GitHub, добавляет двухфакторную аутентификацию с одноразовыми кодами, синхронизирует пользователей из LDAP и Active Directory и дает каждому пользователю управлять своим профилем, паролем и сессиями в консоли аккаунта.

Keycloak — инкубационный проект Cloud Native Computing Foundation. Его используют и компании, и домашние лаборатории, чтобы поставить один вход перед множеством приложений. Этот шаблон запускает его в продакшен-режиме с PostgreSQL за прокси и создает администратора realm master по данным из полей еще до того, как Keycloak начнет кому-либо отвечать. Подвох: Keycloak мощный, и настроек у него много, так что для первого клиента придется кое-что почитать, а работает он на Java и потому занимает больше памяти, чем большинство серверов аутентификации.

## Хостинг Keycloak на Pethost

1. Вы входите в Pethost — с passkey, через GitHub или Google. Машины еще нет? Вы выбираете тариф, и ссылка ждет, пока машина не будет готова.
2. Окно «Новый проект» открывается на приложении Keycloak. Вы заполняете то, что оно просит, и нажимаете «Создать проект»: **Имя пользователя**, **Пароль администратора**.
3. Через минуту-две Keycloak работает по своему адресу с HTTPS. Секреты создаются случайно, а данные попадают в ночной бэкап.
4. Это проект как любой другой: вы или ваш агент можете его изменить, откатить или восстановить.

## Вопросы про Keycloak

**Keycloak бесплатный?**

Да. Keycloak распространяется с открытым кодом под лицензией Apache 2.0, без платной редакции и без ограничений на число пользователей или приложений. Red Hat продает поддержку своей сборки Keycloak — Red Hat build of Keycloak.

**Keycloak или Auth0: что выбрать?**

Оба впускают пользователей по OpenID Connect и SAML, со входом через соцсети и двухфакторной аутентификацией. Auth0 — облачный сервис, цена которого зависит от числа активных пользователей в месяц, а Keycloak вы запускаете сами, бесплатно для любого числа пользователей, но и присматривать за ним вам.

**Можно ли входить в Keycloak через Google или GitHub?**

Да. Раздел «Поставщики идентификации» в realm добавляет Google, GitHub, Facebook, Microsoft и другие сервисы или любого поставщика OpenID Connect или SAML 2.0 кнопками на странице входа, без изменений в ваших приложениях.

**Поддерживает ли Keycloak двухфакторную аутентификацию и passkey?**

Да. Он принимает одноразовые коды из приложений вроде Google Authenticator или FreeOTP, коды восстановления и passkey, а realm может требовать их от всех или разрешить пользователям включать их в консоли аккаунта.

**Почему Keycloak пишет, что я временный администратор?**

Keycloak помечает администратора, которого создает при первом запуске, как временного и просит завести постоянного: добавьте пользователя в realm master, дайте ему роль admin на вкладке «Сопоставление ролей», войдите под ним и удалите временного администратора.

**Сколько памяти и диска нужно Keycloak?**

Keycloak работает на Java: в простое около 550 MB памяти вместе с Postgres, больше при множестве пользователей и сессий; его база данных остается небольшой. На Pethost ему хватит тарифа Starter, и рядом останется место для других приложений.

## Keycloak: файл Docker Compose

Шаблон — это этот compose.yaml и переменные, которые пишутся в .env проекта при его создании. Pethost запускает файл так, как он написан.

**Контейнеры:** keycloak (quay.io/keycloak/keycloak:26.8), postgres (postgres:18-alpine).

**Тома, в ночном бэкапе:** db.

```
services:
  keycloak:
    image: quay.io/keycloak/keycloak:26.8
    restart: unless-stopped
    command: start
    environment:
      KC_DB: postgres
      KC_DB_URL: jdbc:postgresql://postgres:5432/keycloak
      KC_DB_USERNAME: keycloak
      KC_DB_PASSWORD: ${POSTGRES_PASSWORD}
      KC_HOSTNAME: ${URL}
      # The proxy serves HTTPS and passes requests on over HTTP, saying in X-Forwarded-* who sent
      # them and how.
      KC_HTTP_ENABLED: "true"
      KC_PROXY_HEADERS: xforwarded
      KC_HEALTH_ENABLED: "true"
      # The administrator of the master realm is made from these at the first start, before
      # Keycloak answers anyone; Keycloak calls it temporary until a permanent one replaces it.
      KC_BOOTSTRAP_ADMIN_USERNAME: ${ADMIN_USERNAME}
      KC_BOOTSTRAP_ADMIN_PASSWORD: ${ADMIN_PASSWORD}
    depends_on:
      postgres:
        condition: service_healthy
    # The port listens before Keycloak is ready: the deploy waits for its readiness, which its
    # management port answers. The image has no curl: bash asks it.
    healthcheck:
      test: ["CMD-SHELL", "exec 3<>/dev/tcp/127.0.0.1/9000 && printf 'GET /health/ready HTTP/1.1\\r\\nHost: localhost\\r\\nConnection: close\\r\\n\\r\\n' >&3 && grep -q '\"UP\"' <&3"]
      interval: 5s
      timeout: 5s
      retries: 5
      start_period: 180s

  postgres:
    image: postgres:18-alpine
    restart: unless-stopped
    environment:
      POSTGRES_DB: keycloak
      POSTGRES_USER: keycloak
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    volumes:
      - db:/var/lib/postgresql
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -h 127.0.0.1 -U keycloak -d keycloak"]
      interval: 5s
      timeout: 5s
      retries: 10
      start_period: 30s

volumes:
  db:
```

[compose.yaml](https://pethost.dev/templates/keycloak/compose.yaml)[Открыть на GitHub](https://github.com/pethost-dev/templates/tree/main/keycloak)

## [Еще в категории «Пароли и вход»](https://pethost.dev/ru/templates/security/)

- [**Vaultwarden**Сервер менеджера паролей для приложений Bitwarden](https://pethost.dev/ru/templates/vaultwarden/)
- [**Authorizer**Вход в ваши собственные приложения, с OAuth 2 и OpenID Connect](https://pethost.dev/ru/templates/authorizer/)
- [**Password Pusher**Пароли и секреты по ссылкам, которые истекают](https://pethost.dev/ru/templates/password-pusher/)
- [**authentik**Провайдер идентификации для единого входа в ваши приложения: OpenID Connect, SAML, LDAP, MFA и passkey](https://pethost.dev/ru/templates/authentik/)
- [**FusionAuth**Управление идентификацией и доступом клиентов: вход, регистрация, единый вход и MFA для ваших приложений](https://pethost.dev/ru/templates/fusionauth/)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Шаблоны](https://pethost.dev/ru/templates/)
- [О нас](https://pethost.dev/about/)
- [Документация](https://pethost.dev/docs/)
- [Блог](https://pethost.dev/ru/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Плагин](https://github.com/pethost-dev/plugin)
- [Условия](https://pethost.dev/terms/)
- [Конфиденциальность](https://pethost.dev/privacy/)
- [Возвраты](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Базы данных

- [Postgres](https://pethost.dev/ru/postgres/)

Сравнения

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/ru/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/ru/blog/coolify-cloud-vs-dokploy-cloud/)
- [Цены Railway, Render и Fly.io](https://pethost.dev/ru/blog/railway-vs-render-vs-fly-io-pricing/)
- [Управляемый хостинг Docker Compose](https://pethost.dev/ru/blog/managed-docker-compose-hosting/)

Альтернативы

- [Альтернативы Railway](https://pethost.dev/ru/blog/railway-alternatives/)
- [Альтернативы Heroku](https://pethost.dev/ru/blog/heroku-alternatives/)
- [Альтернативы Dokploy](https://pethost.dev/ru/blog/dokploy-alternatives/)
- [Альтернативы Coolify](https://pethost.dev/ru/blog/coolify-alternatives/)
- [Альтернативы Render](https://pethost.dev/ru/blog/render-alternatives/)
- [Альтернативы Sliplane](https://pethost.dev/ru/blog/sliplane-alternatives/)
