From 70d55829b1ddb17d0454b66ee18cf4571d4ae5d8 Mon Sep 17 00:00:00 2001 From: Kevin Veen-Birkenbach Date: Tue, 21 Jan 2025 00:19:59 +0100 Subject: [PATCH] Added keycloak role --- roles/docker-keycloak/README.md | 102 ++++++++++++++++++++++++++++---- 1 file changed, 92 insertions(+), 10 deletions(-) diff --git a/roles/docker-keycloak/README.md b/roles/docker-keycloak/README.md index ee023039..7bdc4935 100644 --- a/roles/docker-keycloak/README.md +++ b/roles/docker-keycloak/README.md @@ -1,12 +1,94 @@ # docker-keycloak -## More Information -- https://www.keycloak.org/ -- https://github.com/keycloak/keycloak -- https://en.wikipedia.org/wiki/Keycloak -- https://www.keycloak.org/server/containers -- https://www.youtube.com/watch?v=fvxQ8bW0vO8 -- https://www.keycloak.org/server/reverseproxy -- https://skycloak.io/blog/how-to-run-keycloak-behind-a-reverse-proxy/ -- https://github.com/keycloak/keycloak/issues/12913 -- https://www.keycloak.org/server/hostname \ No newline at end of file +## Description 🌟 + +This role automates the setup and configuration of Keycloak in a Docker environment. +Keycloak is an open-source identity and access management solution. +The role integrates Keycloak with PostgreSQL as a database and supports operation behind a reverse proxy like NGINX. + +## Features ✨ +- Set up Keycloak as a Docker container. +- Use PostgreSQL as the database. +- Customizable configuration of Keycloak environment variables. +- Support for running behind a reverse proxy (e.g., NGINX). +- Automatic creation and management of Docker Compose files. + +## Requirements 📋 +- Docker and Docker Compose must be installed on the target system. +- A working NGINX proxy for forwarding requests to Keycloak (optional). + +## Variables ⚙️ + +### Main Variables + +Defined in `vars/main.yml`: + +| Variable | Description | +|---------------------------------|------------------------------------------------------------------| +| `docker_compose_project_name` | Name of the Docker Compose project. Default: `keycloak`. | +| `database_type` | Type of the database. Default: `postgres`. | +| `database_password` | Password for the PostgreSQL database user. | + +### Additional Variables (Templates) + +| Variable | Description | +|---------------------------------|------------------------------------------------------------------| +| `keycloak_version` | Version of the Keycloak image. | +| `domain` | Domain where Keycloak will be accessible. | +| `keycloak_administrator_username` | Admin username for Keycloak. | +| `keycloak_administrator_password` | Admin password for Keycloak. | +| `database_host` | Host of the PostgreSQL database. | +| `database_name` | Name of the PostgreSQL database. | +| `database_username` | Username for the PostgreSQL database. | +| `http_port` | Port where Keycloak will be accessible (default: `8080`). | +| `docker_restart_policy` | Docker restart policy (e.g., `always`, `unless-stopped`). | + +## Tasks 🛠️ + +The role performs the following main tasks: + +1. **Include database and proxy configuration files:** + - Integration of a PostgreSQL database. + - Setup of a reverse proxy for the domain. + +2. **Generate `docker-compose.yml`:** + - Automatically generate the Docker Compose file based on templates and variables. + +3. **Start Docker containers:** + - The role launches the Keycloak project using Docker Compose. + +## Example: Usage 🚀 + +Here is an example of how to use this role in a playbook: + +```yaml +- name: Setup Keycloak with Docker + hosts: all + vars: + domain: "auth.example.com" + keycloak_version: "21.1.0" + keycloak_administrator_username: "admin" + keycloak_administrator_password: "securepassword" + database_host: "db.example.com" + database_name: "keycloak_db" + database_username: "keycloak_user" + database_password: "securedbpassword" + http_port: 8080 + docker_restart_policy: "unless-stopped" + roles: + - docker-keycloak +``` + +## More Information 📚 + +For more details about Keycloak, check out: +- [Official Keycloak Documentation](https://www.keycloak.org/) +- [GitHub Repository](https://github.com/keycloak/keycloak) +- [Setting up Keycloak behind a Reverse Proxy](https://www.keycloak.org/server/reverseproxy) +- [Wikipedia][https://en.wikipedia.org/wiki/Keycloak] +- [Youtube Tutorial](https://www.youtube.com/watch?v=fvxQ8bW0vO8) +--- + +### Author ✍️ +**Kevin Veen-Birkenbach** +[veen.world](https://www.veen.world/) \ No newline at end of file