---
title: "Keycloak com Docker Compose e hospedagem em um clique"
description: "O Keycloak é gestão de identidade e acesso open source: SSO, login social e autenticação de dois fatores. Auto-hospede a alternativa ao Auth0 em um clique."
---

[← Todos os templates](https://pethost.dev/pt/templates/) · [Senhas e login](https://pethost.dev/pt/templates/security/)

# Faça deploy de Keycloak em um clique

Gerenciamento de identidade e acesso de código aberto: login único para seus apps com OpenID Connect e SAML

Uma alternativa auto-hospedada para Auth0 e Okta.

[Fazer deploy no Pethost](https://console.pethost.dev/?template=keycloak)

## O que é Keycloak?

O Keycloak é um servidor de gerenciamento de identidade e acesso: seus apps entregam o login a ele, e quem entrou uma vez está logado em todos eles. Ele suporta OpenID Connect, OAuth 2.0 e SAML 2.0, então a maioria dos apps e frameworks se conecta a ele com as bibliotecas padrão deles. Ele faz o login das pessoas com senha, passkey ou uma conta social como Google ou GitHub, adiciona autenticação de dois fatores com códigos de uso único, sincroniza usuários do LDAP e do Active Directory e deixa cada usuário gerenciar o perfil, a senha e as sessões no console da conta.

O Keycloak é um projeto em incubação da Cloud Native Computing Foundation, usado tanto por empresas quanto em home labs para colocar um só login na frente de muitos apps. Este template o roda em modo de produção com PostgreSQL atrás do proxy e cria o administrador do realm master a partir dos campos antes de o Keycloak responder a qualquer pessoa. O porém: o Keycloak é poderoso e tem muitas configurações, então o primeiro cliente exige alguma leitura, e ele roda em Java, que usa mais memória que a maioria dos servidores de login.

## Hospedagem de Keycloak no Pethost

1. Você entra no Pethost com uma passkey, GitHub ou Google. Ainda não tem máquina? Você escolhe um plano, e o link espera até ela ficar pronta.
2. Novo projeto abre em Keycloak. Você preenche o que ele pede e clica em Criar projeto: **Usuário**, **Senha do administrador**.
3. Em um ou dois minutos Keycloak está no ar no próprio endereço com HTTPS. Os segredos são gerados ao acaso, e os dados vão para o backup noturno.
4. É um projeto como qualquer outro: você ou seu agente podem alterá-lo, fazer rollback ou restaurá-lo.

## Perguntas sobre Keycloak

**O Keycloak é gratuito?**

Sim. O Keycloak é de código aberto sob a licença Apache 2.0, sem edição paga e sem limite de usuários ou apps. A Red Hat vende suporte para a própria versão dele, o Red Hat build of Keycloak.

**Keycloak ou Auth0: qual devo usar?**

Os dois fazem o login de usuários por OpenID Connect e SAML, com login social e autenticação de dois fatores. O Auth0 é um serviço na nuvem cobrado por usuários ativos por mês, enquanto o Keycloak é um que você mesmo roda, gratuito para qualquer número de usuários, ao custo de cuidar dele.

**O Keycloak permite login com Google ou GitHub?**

Sim. Em “Provedores de identidade”, um realm ganha Google, GitHub, Facebook, Microsoft e outros, ou qualquer provedor OpenID Connect ou SAML 2.0, como botões na página de login dele, sem mudança nos seus apps.

**O Keycloak suporta autenticação de dois fatores e passkeys?**

Sim. Ele aceita códigos de uso único de apps como Google Authenticator ou FreeOTP, códigos de recuperação e passkeys, e um realm pode exigi-los de todos ou deixar que os usuários os ativem no console da conta.

**Por que o Keycloak diz que sou um administrador temporário?**

O Keycloak marca como temporário o administrador que cria na primeira inicialização e pede um permanente: adicione um usuário no realm master, dê a ele a função admin em “Mapeamento de funções”, entre com ele e exclua o administrador temporário.

**De quanta memória e disco Keycloak precisa?**

O Keycloak roda em Java: cerca de 550 MB de memória com o Postgres em repouso, mais com muitos usuários e sessões; o banco de dados dele continua pequeno. No Pethost, o plano Starter basta, com espaço para outros apps ao lado.

## Arquivo Docker Compose de Keycloak

O template é este compose.yaml e as variáveis gravadas no .env do projeto quando ele é criado. O Pethost roda o arquivo exatamente como está escrito.

**Containers:** keycloak (quay.io/keycloak/keycloak:26.8), postgres (postgres:18-alpine).

**Volumes, no backup noturno:** 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)[Ver no GitHub](https://github.com/pethost-dev/templates/tree/main/keycloak)

## [Mais em Senhas e login](https://pethost.dev/pt/templates/security/)

- [**Vaultwarden**Um servidor de gerenciamento de senhas para os apps do Bitwarden](https://pethost.dev/pt/templates/vaultwarden/)
- [**Authorizer**Login para os seus próprios apps, com OAuth 2 e OpenID Connect](https://pethost.dev/pt/templates/authorizer/)
- [**Password Pusher**Compartilhe senhas e segredos por links que expiram](https://pethost.dev/pt/templates/password-pusher/)
- [**authentik**Um provedor de identidade para login único nos seus apps: OpenID Connect, SAML, LDAP, MFA e passkeys](https://pethost.dev/pt/templates/authentik/)
- [**FusionAuth**Gerenciamento de identidade e acesso de clientes: login, cadastro, login único e MFA para seus apps](https://pethost.dev/pt/templates/fusionauth/)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Templates](https://pethost.dev/pt/templates/)
- [Sobre nós](https://pethost.dev/about/)
- [Docs](https://pethost.dev/docs/)
- [Blog](https://pethost.dev/pt/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Plugin](https://github.com/pethost-dev/plugin)
- [Termos](https://pethost.dev/terms/)
- [Privacidade](https://pethost.dev/privacy/)
- [Reembolsos](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Bancos de dados

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

Comparativos

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/pt/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/pt/blog/coolify-cloud-vs-dokploy-cloud/)
- [Preços Railway vs Render vs Fly.io](https://pethost.dev/pt/blog/railway-vs-render-vs-fly-io-pricing/)
- [Hospedagem gerenciada de Docker Compose](https://pethost.dev/pt/blog/managed-docker-compose-hosting/)

Alternativas

- [Alternativas ao Railway](https://pethost.dev/pt/blog/railway-alternatives/)
- [Alternativas ao Heroku](https://pethost.dev/pt/blog/heroku-alternatives/)
- [Alternativas ao Dokploy](https://pethost.dev/pt/blog/dokploy-alternatives/)
- [Alternativas ao Coolify](https://pethost.dev/pt/blog/coolify-alternatives/)
- [Alternativas ao Render](https://pethost.dev/pt/blog/render-alternatives/)
- [Alternativas ao Sliplane](https://pethost.dev/pt/blog/sliplane-alternatives/)
