---
title: "Keycloak: Docker Compose і хостинг в один клік"
description: "Keycloak — керування ідентифікацією та доступом із відкритим кодом: SSO, вхід через соцмережі та 2FA. Self-hosted альтернатива Auth0 в один клік."
---

[← Усі шаблони](https://pethost.dev/uk/templates/) · [Паролі та вхід](https://pethost.dev/uk/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, тож більшість застосунків і фреймворків підключаються до нього своїми стандартними бібліотеками. Він впускає людей за паролем, ключем доступу або соціальним акаунтом, як-от Google чи GitHub, додає двофакторну автентифікацію з одноразовими кодами, синхронізує користувачів з LDAP і Active Directory, а кожен користувач керує своїм профілем, паролем і сесіями в консолі акаунта.

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

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

1. Ви входите в Pethost — з ключем доступу, через GitHub або Google. Машини ще немає? Ви обираєте тариф, і посилання чекає, доки машина не буде готова.
2. Вікно «Новий проєкт» відкривається на застосунку Keycloak. Ви заповнюєте те, що він просить, і натискаєте «Створити проєкт»: **Ім’я користувача**, **Пароль адміністратора**.
3. За хвилину-дві Keycloak працює за власною адресою з HTTPS. Секрети створюються випадково, а дані потрапляють у щонічний бекап.
4. Це проєкт як будь-який інший: ви або ваш агент можете його змінити, відкотити або відновити.

## Питання про Keycloak

**Keycloak безкоштовний?**

Так. Keycloak має відкритий код за ліцензією Apache 2.0, без платної редакції й без обмежень на кількість користувачів чи застосунків. Red Hat продає підтримку своєї збірки — Red Hat build of Keycloak.

**Keycloak чи Auth0: що обрати?**

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

**Чи може Keycloak впускати користувачів через Google або GitHub?**

Так. Розділ «Identity providers» у realm додає Google, GitHub, Facebook, Microsoft та інших або будь-якого провайдера OpenID Connect чи SAML 2.0 кнопками на сторінці входу, без змін у ваших застосунках.

**Чи підтримує Keycloak двофакторну автентифікацію та ключі доступу?**

Так. Він приймає одноразові коди із застосунків на кшталт Google Authenticator чи FreeOTP, коди відновлення та ключі доступу, а realm може вимагати їх від усіх або дозволити користувачам увімкнути їх у консолі акаунта.

**Чому Keycloak каже, що я тимчасовий адміністратор?**

Keycloak позначає адміністратора, якого створює під час першого запуску, як тимчасового й просить створити постійного: додайте користувача в realm master, дайте йому роль admin на вкладці «Role mapping», увійдіть під ним і видаліть тимчасового адміністратора.

**Скільки пам’яті й диска потрібно 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/uk/templates/security/)

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

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Шаблони](https://pethost.dev/uk/templates/)
- [Про нас](https://pethost.dev/about/)
- [Документація](https://pethost.dev/docs/)
- [Блог](https://pethost.dev/uk/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/uk/postgres/)

Порівняння

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

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

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