From 9f47e6e2c88f8a8e95c75c95a0dbb51b5244bbb4 Mon Sep 17 00:00:00 2001 From: Tim Basten Date: Fri, 6 Mar 2026 02:47:54 +0000 Subject: [PATCH] Seed OpenLDAP with bootstrap users including email addresses Add docker/openldap/bootstrap.ldif which creates an ou=people OU and three test users (admin, approver, staff) each with a mail attribute, matching the database seeder. Mount the LDIF into the openldap container and add --copy-service so it is loaded on first boot. --- compose.yaml | 2 ++ docker/openldap/bootstrap.ldif | 46 ++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 docker/openldap/bootstrap.ldif diff --git a/compose.yaml b/compose.yaml index a38f8f9..df82c4b 100644 --- a/compose.yaml +++ b/compose.yaml @@ -84,6 +84,7 @@ services: - sail openldap: image: 'osixia/openldap:1.5.0' + command: '--copy-service' ports: - '${FORWARD_LDAP_PORT:-389}:389' - '${FORWARD_LDAPS_PORT:-636}:636' @@ -98,6 +99,7 @@ services: volumes: - 'sail-ldap-data:/var/lib/ldap' - 'sail-ldap-config:/etc/ldap/slapd.d' + - './docker/openldap/bootstrap.ldif:/container/service/slapd/assets/config/bootstrap/ldif/custom/bootstrap.ldif' networks: - sail healthcheck: diff --git a/docker/openldap/bootstrap.ldif b/docker/openldap/bootstrap.ldif new file mode 100644 index 0000000..8865ac5 --- /dev/null +++ b/docker/openldap/bootstrap.ldif @@ -0,0 +1,46 @@ +# People OU +dn: ou=people,dc=travel,dc=local +objectClass: organizationalUnit +ou: people + +# Administrator +dn: uid=admin,ou=people,dc=travel,dc=local +objectClass: inetOrgPerson +objectClass: posixAccount +objectClass: shadowAccount +cn: Administrator +sn: Administrator +uid: admin +mail: admin@travel.local +uidNumber: 1000 +gidNumber: 1000 +homeDirectory: /home/admin +userPassword: password + +# Travel Approver +dn: uid=approver,ou=people,dc=travel,dc=local +objectClass: inetOrgPerson +objectClass: posixAccount +objectClass: shadowAccount +cn: Travel Approver +sn: Approver +uid: approver +mail: approver@travel.local +uidNumber: 1001 +gidNumber: 1000 +homeDirectory: /home/approver +userPassword: password + +# Staff Member +dn: uid=staff,ou=people,dc=travel,dc=local +objectClass: inetOrgPerson +objectClass: posixAccount +objectClass: shadowAccount +cn: Staff Member +sn: Member +uid: staff +mail: staff@travel.local +uidNumber: 1002 +gidNumber: 1000 +homeDirectory: /home/staff +userPassword: password