Huge role refactoring/cleanup. Other commits will propably follow. Because some bugs will exist. Still important for longrun and also for auto docs/help/slideshow generation

This commit is contained in:
2025-07-08 23:43:13 +02:00
parent 6b87a049d4
commit 563d5fd528
1242 changed files with 2301 additions and 1355 deletions

View File

@@ -0,0 +1,29 @@
# FusionDirectory
## Description
This Ansible role deploys and configures [FusionDirectory](https://www.fusiondirectory.org/)—a web-app-based LDAP administration tool—using Docker Compose. It runs a pre-configured FusionDirectory container, connects it to your existing LDAP service, and ensures a consistent, repeatable setup.
## Overview
- Loads and templating of FusionDirectory-specific variables
- Generates a `.env` file for the container environment
- Deploys the FusionDirectory container via Docker Compose
- Configures NGINX (via the `webserver-proxy-domain` role) to expose the service
- Integrates with your central LDAP server for authentication
## Features
- **Easy Deployment:** Runs FusionDirectory in Docker Compose with minimal manual steps
- **LDAP Integration:** Connects to your existing LDAP backend for user management
- **Environment Management:** Builds an environment file from role variables and templates
- **NGINX Setup:** Automatically configures a virtual host for FusionDirectory
- **Docker-Native:** Leverages the `docker-compose` role for container orchestration
- **Idempotent:** Safe to run multiple times without side effects
## Further Resources
- [FusionDirectory Official Website](https://www.fusiondirectory.org/)
- [FusionDirectory Docker Image (tiredofit/fusiondirectory)](https://hub.docker.com/r/tiredofit/fusiondirectory)
- [Role Source & Documentation (CyMaIS)](https://github.com/kevinveenbirkenbach/cymais/tree/main/roles/web-app-fusiondirectory)
- [CyMaIS NonCommercial License (CNCL)](https://s.veen.world/cncl)

View File

@@ -0,0 +1 @@
- Implement this role

View File

@@ -0,0 +1,25 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: >-
FusionDirectory is a web-app-based tool to manage LDAP directories and this role ensures a reliable, easy-to-use interface for LDAP administration.
license: "CyMaIS NonCommercial License (CNCL)"
license_url: "https://s.veen.world/cncl"
company: "Kevin Veen-Birkenbach Consulting & Coaching Solutions"
min_ansible_version: "2.9"
platforms:
- name: Docker
versions:
- "latest"
galaxy_tags:
- fusiondirectory
- ldap
- docker
- administration
repository: "https://s.veen.world/cymais"
issue_tracker_url: "https://s.veen.world/cymaisissues"
documentation: "https://s.veen.world/cymais"
run_after:
- web-app-matomo
- web-app-keycloak
- web-app-mailu

View File

@@ -0,0 +1,10 @@
- name: "include docker-compose role"
include_role:
name: docker-compose
- name: "include role webserver-proxy-domain for {{application_id}}"
include_role:
name: webserver-proxy-domain
vars:
domain: "{{ domains | get_domain(application_id) }}"
http_port: "{{ ports.localhost.http[application_id] }}"

View File

@@ -0,0 +1,29 @@
{% include 'roles/docker-compose/templates/base.yml.j2' %}
fusiondirectory:
image: tiredofit/fusiondirectory:latest
container_name: fusiondirectory
ports:
- "8080:80" # Exponiert den Webservice (HTTP) des Containers auf Port 8080 des Hosts
environment:
# FusionDirectory spezifische Einstellungen
- FUSIONDIRECTORY_ADMIN_USER=admin
- FUSIONDIRECTORY_ADMIN_PASS=yourFusionDirPassword
# LDAP-Verbindungsdaten (diese werden von FusionDirectory benötigt, um sich mit Ihrem LDAP-Server zu verbinden)
- LDAP_HOST=ldap.example.com
- LDAP_ADMIN_DN=cn=admin,dc=example,dc=com
- LDAP_ADMIN_PASS=yourLDAPPassword
- LDAP_BASE_DN=dc=example,dc=com
# Optional: Falls TLS für die LDAP-Verbindung genutzt werden soll, können Sie diese Variablen definieren:
#- ENABLE_TLS=TRUE
#- TLS_CRT_FILENAME=cert.pem
#- TLS_KEY_FILENAME=key.pem
#- TLS_CA_CRT_FILENAME=ca_cert.pem
volumes:
# Hier können Sie persistente Daten ablegen z.B. individuelle Konfigurationen oder benutzerdefinierte Plugins
- fusiondirectory_data:/assets/fusiondirectory
restart: always
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
fusiondirectory_data:
{% include 'roles/docker-compose/templates/networks.yml.j2' %}

View File

@@ -0,0 +1,14 @@
# See all variables here:
# https://github.com/LDAPAccountManager/lam/blob/develop/lam-packaging/docker/.env
# Basic Configuration
LAM_PASSWORD= {{applications[application_id].credentials.administrator_password}} # LAM configuration master password and password for server profile "lam
# Database
LAM_CONFIGURATION_DATABASE= files # configuration database (files or mysql) @todo implement mariadb
# LDAP Configuration
LDAP_SERVER= {{ldap.server.domain}} # domain of LDAP database root entry
LDAP_BASE_DN= {{ldap.dn.root}} # LDAP base DN to overwrite value generated by LDAP_DOMAIN
LDAP_USER= {{ldap.dn.administrator.data}} # LDAP admin user (set as login user for LAM)
LDAP_ADMIN_PASSWORD= {{ldap.bind_credential}} # LDAP admin password

View File

@@ -0,0 +1 @@
application_id: "fusiondirectory"