Added fusion directory draft

This commit is contained in:
Kevin Veen-Birkenbach 2025-04-08 17:58:06 +02:00
parent adecee43ec
commit 1be413f20d
No known key found for this signature in database
GPG Key ID: 44D8F11FD62F878E
7 changed files with 139 additions and 0 deletions

View File

@ -0,0 +1,34 @@
# DRAFT FusionDirectory DRAFT🐳
# TODO
This needs to be implemented
## Description
This Ansible role deploys and configures [FusionDirectory](https://www.fusiondirectory.org/) a powerful web-based LDAP administration tool. Using Docker Compose, the role runs a pre-configured FusionDirectory container which allows you to manage your LDAP directory through a user-friendly web interface.
## Overview
Designed to simplify LDAP management, this role:
- Loads necessary FusionDirectory-specific variables.
- Generates an environment file based on a template.
- Deploys a FusionDirectory Docker container via Docker Compose.
- Integrates with your existing central LDAP service.
## Purpose
The purpose of this role is to automate the deployment of FusionDirectory in your Docker environment, ensuring a quick and consistent setup for managing your LDAP data. Ideal for production or homelab deployments, it reduces manual configuration steps and helps enforce best practices.
## Features
- **Easy Deployment:** Minimal manual setup via pre-configured templates and variables.
- **LDAP Integration:** Connects seamlessly with your existing central LDAP server.
- **Web Interface:** Provides an intuitive GUI for LDAP administration.
- **Docker Compose Integration:** Automates container creation and restart.
## Credits 📝
Developed and maintained by **Kevin Veen-Birkenbach**.
Learn more at [www.veen.world](https://www.veen.world)
Part of the [CyMaIS Project](https://github.com/kevinveenbirkenbach/cymais)
License: [CyMaIS NonCommercial License (CNCL)](https://s.veen.world/cncl)

View File

@ -0,0 +1,21 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: >-
FusionDirectory is a web-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"

View File

@ -0,0 +1,13 @@
- name: "include docker-compose role"
include_role:
name: docker-compose
- name: "include role nginx-domain-setup for {{application_id}}"
include_role:
name: nginx-domain-setup
vars:
domain: "{{ domains[application_id] }}"
http_port: "{{ ports.localhost.http[application_id] }}"
- name: "copy docker-compose.yml and env file"
include_tasks: copy-docker-compose-and-env.yml

View File

@ -0,0 +1,46 @@
services:
{% include 'roles/docker-oauth2-proxy/templates/container.yml.j2' %}
application:
container_name: {{ application_id }}
logging:
driver: journald
restart: {{docker_restart_policy}}
image: ghcr.io/ldapaccountmanager/lam:{{applications[application_id].version}}
ports:
- 127.0.0.1:{{ports.localhost.http[application_id]}}:80
{% include 'roles/docker-compose/templates/services/base.yml.j2' %}
{% include 'templates/docker/container/networks.yml.j2' %}
{# include 'templates/docker/compose/volumes.yml.j2' #}
{% include 'templates/docker/compose/networks.yml.j2' %}
services:
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
volumes:
fusiondirectory_data:

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].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}} # 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"

View File

@ -30,6 +30,16 @@
include_role:
name: docker-keycloak
- name: setup lam
when: ("lam" in group_names)
include_role:
name: docker-lam
- name: setup phpldapadmin
when: ("phpldapadmin" in group_names)
include_role:
name: docker-phpldapadmin
- name: setup nextcloud hosts
when: ("nextcloud" in group_names)
include_role: