Este repositório contém uma configuração completa para rodar um ambiente seguro de autenticação baseado em Keycloak com Nginx (proxy reverso), Certbot (SSL) e PostgreSQL.
- Keycloak - Serviço de gerenciamento de identidades.
- PostgreSQL - Banco de dados para persistência dos dados do Keycloak.
- Certbot + Cloudflare - Geração e renovação automática de certificados SSL.
- Nginx - Proxy reverso para redirecionar tráfego para o Keycloak.
- Ofelia - Agendador para renovação automática do Certbot.
- Docker + Docker Compose - Contêinerização do ambiente.
Crie um arquivo .env na raiz do projeto e defina as credenciais para o Keycloak e PostgreSQL:
POSTGRES_USER=keycloak
POSTGRES_PASSWORD=uma_senha_forte
POSTGRES_DB=keycloak
KEYCLOAK_ADMIN=admin
KEYCLOAK_ADMIN_PASSWORD=uma_senha_seguraTambém existe um exemplo disponível no repositório como .env.example.
O Certbot precisa de um arquivo de credenciais para se comunicar com a API da Cloudflare.
Crie o arquivo cloudflare.ini na raiz do projeto e adicione:
# Credenciais da API Cloudflare
dns_cloudflare_api_token=SEU_CLOUDFLARE_API_TOKEN- Substitua
SEU_CLOUDFLARE_API_TOKENpelo token da API Cloudflare. - Aplique as permissões corretas para evitar que outras pessoas tenham acesso:
chmod 600 cloudflare.ini
Com tudo configurado, inicie os serviços com o seguinte comando:
docker compose up -dIsso iniciará:
- Keycloak na porta
9000 - Nginx na porta
443(HTTPS) e80(HTTP) - Certbot para emitir certificados SSL
- PostgreSQL para armazenar os dados do Keycloak
- Ofelia para automatizar a renovação do Certbot
Depois que todos os contêineres estiverem rodando, acesse o Keycloak via HTTPS:
https://auth.imaginer.com.br
- Usuário Admin:
admin - Senha Admin:
uma_senha_segura(definida no.env)
Caso precise acessar diretamente o Keycloak via linha de comando:
docker exec -it keycloak bashPara verificar os logs do Keycloak:
docker logs -f keycloakA renovação do certificado SSL é feita automaticamente a cada 12 horas pelo Ofelia.
Caso precise renovar manualmente, execute:
docker compose run --rm certbot certbot renew --dns-cloudflare --dns-cloudflare-credentials /cloudflare.ini --quietPara verificar logs do Certbot:
docker logs -f certbotSe precisar parar e remover os contêineres:
docker compose downCaso queira reiniciar com força:
docker compose down && docker compose up -d --force-recreate.
├── docker-compose.yml
├── nginx.conf
├── nginx_external_services.conf
├── cloudflare.ini # Arquivo de credenciais Cloudflare (chmod 600)
├── .env # Variáveis de ambiente
├── .env.example # Exemplo de configuração
├── .gitignore # Arquivo para ignorar arquivos sensíveis
├── README.md # Documentação
Agora seu ambiente está pronto para rodar com Keycloak, PostgreSQL, Certbot e Nginx! 🚀🔥