Mise en place avec Docker / Podman
Une bonne solution pour installer une application est de la conteneriser car cela apporte que des avantages :
- moins de dépendances sur le serveur
- mise à jour simplifier
- sécurisation des environnements
Je vais donc montrer comment installer cette application avec un outil de conteneurisation.
Préparation de la machine
Sur la machine hôte, installer un outil de conteuneurisation
installation des packages
pour installer docker avec les meilleurs pratique, vous pouvez suivre le lien ici : Installation de docker
Debian
- Podman
sudo apt install podman -y
RHEL
- Podman
sudo dnf install podman -y
Création des dossiers
Dans un dossier dédié sur la machine, nous allons stockées l'ensemble des fichier nécessaires ainsi que ceux générer par le conteneurs
mkdir -p ~/keycloak/{certs,postgresql}
cd ~/keycloak
touch compose.yml .env
Préparation de la solution
maintenant que l'arborescence est en place, nous allons modifié le fichier compose.yml et .env
- compose.yml
Il faut copier le texte suivant :
services:
keycloak:
container_name: keycloak_app
image: quay.io/keycloak/keycloak:latest
restart: always
environment:
KEYCLOAK_ADMIN: ${KEYCLOAK_USER}
KEYCLOAK_ADMIN_PASSWORD: ${KEYCLOAK_PASSWORD}
KC_HOSTNAME: ${KEYCLOAK_URL}
KC_DB: postgres
KC_DB_USERNAME: ${POSTGRES_USER}
KC_DB_PASSWORD: ${POSTGRES_PASSWORD}
KC_DB_URL_HOST: keycloak_postgres
KC_DB_URL_DATABASE: keycloak
KC_HTTPS_CERTIFICATE_FILE: /etc/x509/https/tls.crt
KC_HTTPS_CERTIFICATE_KEY_FILE: /etc/x509/https/tls.key
volumes:
- ./certs:/etc/x509/https
depends_on:
keycloak_postgres:
condition: service_healthy
ports:
- "8080:8080"
- "8443:8443"
networks:
- keycloak-network
command:
- start
keycloak_postgres:
container_name: keycloak_postgres
image: docker.io/library/postgres:17
restart: always
environment:
POSTGRES_DB: keycloak
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- ./postgresql:/var/lib/postgresql/data
networks:
- keycloak-network
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d keycloak"]
interval: 10s
timeout: 5s
retries: 5
networks:
keycloak-network:
name: keycloak-network
driver: bridge
- .env
Il faut ensuite remplir le fichier .env avec des mots de passes plus complexe !
KEYCLOAK_USER=admin
KEYCLOAK_PASSWORD=admin
KEYCLOAK_URL=keycloak.local
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
Gestion des certificats
Keycloak a un gestionnaire de certificats intégré, pour ce tuto, je vais me servir d'un certificat autosigné pour tout faire fonctionné. Mais un certificat let's encrypt ou autre fonctionnera
cd ~/keycloak/certs
openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout tls.key -out tls.crt
Lancement du conteneur
Dans le dossier racine où il y a le fichier compose.yml
il faut lancer le conteneur
- Docker
docker compose up -d
- Podman
podman-compose up -d
une fois que le conteneurs est lancé, vous pouvez vous rendre depuis votre navigateurs au lien:
No Comments