Keycloak

Keycloak

Keycloak is an open-source identity and access management (IAM) system developed by Red Hat. It provides robust authentication, authorization, and security capabilities for web and mobile applications. Keycloak allows organizations to secure their applications and services by centralizing user authentication, role-based access control, single sign-on (SSO), and social login integration. It supports various identity standards, including OpenID Connect, OAuth 2.0, SAML, and more, making it a versatile solution for managing user identities and securing resources. Keycloak is highly customizable, extensible, and can be integrated with a wide range of platforms and services, making it a popular choice for enhancing the security and user management of applications.

version: '3'

volumes:
  postgres_data:
      driver: local

services:
  postgres:
      container_name: keycloak_db
      restart: always
      image: postgres:14.5
      volumes:
        - /home/[user]/docker/keycloak/postgresql:/var/lib/postgresql/data
      environment:
        POSTGRES_DB: keycloak
        POSTGRES_USER: [DBUSER]
        POSTGRES_PASSWORD: [DBPASSWORD]
  keycloak:
      container_name: keycloak_app
      restart: always
      image: quay.io/keycloak/keycloak:legacy
      volumes:
        - /home/[user]/docker/keycloak/themes/themename:/opt/jboss/keycloak/themes/themename
      environment:
        DB_VENDOR: POSTGRES
        DB_ADDR: postgres
        DB_DATABASE: keycloak
        DB_USER: [DBUSER]
        DB_SCHEMA: public
        DB_PASSWORD: [DBPASSWORD]
        KEYCLOAK_USER: [Keycloak_user]
        KEYCLOAK_PASSWORD: [Keycloak_password]
        PROXY_ADDRESS_FORWARDING: "true"
        LETSENCRYPT_HOST: [hostname]
        LETSENCRYPT_EMAIL: [email]
        KEYCLOAK_HTTP_PORT: 8080
        KEYCLOAK_HTTPS_PORT: 8443       
      ports:
        - [port]:8443
      depends_on:
        - postgres