From 257e35d376bbe54171834741add1728b34519c09 Mon Sep 17 00:00:00 2001 From: boxswapper Date: Tue, 24 Mar 2026 18:45:15 -0600 Subject: [PATCH] added lemonldap --- deploy_matrix.yml | 41 ++++++++++++++++++++++++++++++++++++++--- vars/vars.yml | 19 ++++++++++++++++++- 2 files changed, 56 insertions(+), 4 deletions(-) diff --git a/deploy_matrix.yml b/deploy_matrix.yml index 9e46e8d..037cc01 100644 --- a/deploy_matrix.yml +++ b/deploy_matrix.yml @@ -38,7 +38,12 @@ - "{{ vol_teamspeak }}" - "{{ vol_db }}" - "{{ npm_data }}" - - "{{ npm_letsencrypt }}" + - "{{ npm_letsencrypt }}" + - "{{ lemonldap_data }}" + - "{{ lemonldap_cfg }}" + - "{{ lemonldap_perl }}" + - "{{ lemonldap_nginx }}" + - "{{ lemonldap_lib }}" # ----------------------------------------------------------------- # Pull required images (including Teamspeak) @@ -74,6 +79,11 @@ name: "{{ db_image }}" state: present + - name: Pull LemonLDAP image + containers.podman.podman_image: + name: "{{ lemon_image }}" + state: present + # ----------------------------------------------------------------- # Render all configuration files from the templates # ----------------------------------------------------------------- @@ -237,5 +247,30 @@ - "{{ element_config_path }}:/app/config.json:Z" network: "{{ podman_network }}" restart_policy: always - - + + # ----------------------------------------------------------------- + # LemonLDAP-NG + #------------------------------------------------------------------ + - name: Start LemonLDAP container + containers.podman.podman_container: + name: "{{ lemonldap_container_name }}" + image: "{{ lemonldap_image }}" + state: started + ports: + - "{{ lemonldap_http_port }}:80" + - "{{ lemonldap_https_port }}:443" + env: + SSODOMAIN="{{ top_domain }}" + PORTAL_HOSTNAME="{{ ldap_portal_hostname }}" + MANAGER_HOSTNAME="{{ ldap_manager_hostname }}" + HANDLER_HOSTNAME="{{ ldap_hanlder_hostname }}" + PORT="{{ lemonldap_port }}" + FASTCGI_LISTEN_PORT="{{ lemonldap_cgi_port }}" + volumes: + - "{{ lemonldap_data }}:/usr/share/lemonldap-ng:Z" + - "{{ lemonldap_cfg }}:/etc/lemonldap-ng:Z" + - "{{ lemonldap_perl }}:/usr/share:Z" + - "{{ lemonldap_nginx }}:/etc/nginx/sites-enabled:Z" + - "{{ lemonldap_lib }}:/var/lib/lemonldap-ng:Z" + network: "{{ podman_network }}" + restart_policy: always \ No newline at end of file diff --git a/vars/vars.yml b/vars/vars.yml index e9ddfbb..014012c 100644 --- a/vars/vars.yml +++ b/vars/vars.yml @@ -10,7 +10,8 @@ turn_domain: "turn.fpov.space" matrix_email: "boxswappers@gmail.com" admin_domain: "mtxadm.fpov.space" element_domain: "element.fpov.space" - +ldap_manager_hostname: "auth.fpov.space" +ldap_handler_hostname: "handler.fpov.space" # -------------------------------------------------------------- # Ports # -------------------------------------------------------------- @@ -56,6 +57,7 @@ npm_image: "docker.io/jc21/nginx-proxy-manager:latest" teamspeak_image: "docker.io/teamspeak:latest" synapse_admin_image: "docker.io/awesometechnologies/synapse-admin:latest" element_image: "docker.io/vectorim/element-web:latest" +lemon_image: "docker.io/lemonldapng/lemonldap-ng:latest" # -------------------------------------------------------------- @@ -71,6 +73,11 @@ vol_teamspeak: teamspeak_data npm_data: npm_data npm_letsencrypt: letsencrypt vol_db: postgres_db +lemonldap_data: ldap_data +lemonldap_cfg: ldap_cfg +lemonldap_perl: ldap_pearl +lemonldap_nginx: ldap_nginx +lemonldap_lib: ldap_lib # -------------------------------------------------------------- # Paths on the target host (temporary files) @@ -117,3 +124,13 @@ landing_message: | automatic Let’s Encrypt certificates, a TURN server for voice/video, and a simple landing page. +# -------------------------------------------------------------- +# Lemon LDAP +# -------------------------------------------------------------- +lemonldap_container_name: "lemon" +lemonldap_http_port: "8118" +lemonldap_https_port: "444" +ldap_portal_hostname: "lemon" +lemonldap_port: "8081" +lemonldap_cgi_port: "9000" +ldap_ssodomain: "fpov"