services:

{% include 'roles/docker-oauth2-proxy/templates/container.yml.j2' %}

  {{applications.ldap.webinterface}}:
    container_name: {{applications.ldap.webinterface}}
    logging:
      driver: journald
    restart: {{docker_restart_policy}}
{% if applications.ldap.webinterface == 'lam' %}
    image: ghcr.io/ldapaccountmanager/lam:{{applications.ldap.lam.version}}      # Dies ist das Docker-Image für LAM
    ports:
      - 127.0.0.1:{{ports.localhost.http.ldap}}:80 
    env_file:
      - "{{docker_compose.directories.env}}lam.env"

{% elif applications.ldap.webinterface == 'phpldapadmin' %}
    image: leenooks/phpldapadmin:{{applications.ldap.phpldapadmin.version}}
    ports:
      - 127.0.0.1:{{ports.localhost.http.ldap}}:8080
    env_file:
      - "{{docker_compose.directories.env}}phpldapadmin.env"
{% endif %}
  openldap:
    image: bitnami/openldap:{{applications.ldap.openldap.version}}
    container_name: {{applications.ldap.openldap.hostname}}
{% include 'roles/docker-compose/templates/services/base.yml.j2' %}
{% if applications.ldap.openldap.network.public | bool %}
    ports:
      - 127.0.0.1:{{ports.localhost.ldap.openldap}}:{{ldap_docker_port}}  # Expose just on localhost so that nginx stream proxy can use it
{% endif %}
    volumes:
      - 'data:/bitnami/openldap'
      - '{{ldif_host_path}}:{{ldif_docker_path}}:ro'                      # Mounting all ldif files for import
    healthcheck:
      test: >
        ldapsearch -x -H ldap://localhost:{{ldap_docker_port}} -b "{{ldap.dn.root}}" -D "{{ldap.dn.administrator}}" -w "{{ldap.bind_credential}}"
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 20s
{% include 'templates/docker/container/networks.yml.j2' %}

{% include 'templates/docker/compose/volumes.yml.j2' %}
  data:

{% include 'templates/docker/compose/networks.yml.j2' %}