From a97881477f78ac85ba72726fdfca3fa8082dd912 Mon Sep 17 00:00:00 2001 From: n-connect Date: Mon, 22 Apr 2024 17:39:05 +0200 Subject: [PATCH] example_configs: add FreeBSD rc.d service script Use: extract (the future) FreeBSD release package into /usr/local/ -> so your files will be under /usr/local/lldap_server/ save/copy this rc.d script file into /usr/local/etc/rc.d/ finally cat lldap_enable=YES >> /etc/rc.conf the service script set to run the lldap server as "www" user - make sure the whole lldap_server directory is accessible/runnable by "www". Simplest to run chown -R www:www /usr/local/lldap_server --- README.md | 9 ++++++++ example_configs/freebsd/freebsd-install.md | 18 +++++++++++++++ example_configs/freebsd/rc.d_lldap | 27 ++++++++++++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 example_configs/freebsd/freebsd-install.md create mode 100644 example_configs/freebsd/rc.d_lldap diff --git a/README.md b/README.md index 814aded..e5f1782 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,7 @@ - [With Docker](#with-docker) - [With Kubernetes](#with-kubernetes) - [From a package repository](#from-a-package-repository) + - [With FreeBSD](#with-freebsd) - [From source](#from-source) - [Backend](#backend) - [Frontend](#frontend) @@ -208,6 +209,14 @@ Each package places lldap's configuration file at `/etc/lldap.toml` and offers [systemd service](https://wiki.archlinux.org/title/systemd#Using_units) `lldap.service` to (auto-)start and stop lldap. +### With FreeBSD + +You can also install it as a rc.d service in FreeBSD, see +[FreeBSD-install.md](example_configs/freebsd/freebsd-install.md). + +The rc.d script file +[rc.d_lldap](example_configs/freebsd/rc.d_lldap). + ### From source #### Backend diff --git a/example_configs/freebsd/freebsd-install.md b/example_configs/freebsd/freebsd-install.md new file mode 100644 index 0000000..ec406e9 --- /dev/null +++ b/example_configs/freebsd/freebsd-install.md @@ -0,0 +1,18 @@ +Extract lldap's [FreeBSD tar.gz](https://github.com/n-connect/rustd-hbbx/blob/main/x86_64-freebsd_lldap-0.5.1.tar.gz) under /usr/local/: + +`tar -xvf x86_64-freebsd_lldap-0.5.1.tar.gz -C /usr/local/` + +Move rc.d script into the right place: +`mv /usr/local/lldap_server/rc.d_lldap /usr/local/etc/rc.d/lldap` + +Make your config, if your want to enable LDAPS, copy your server key and certification files, and set the owneship (currently www): + +`cp /usr/local/lldap_server/lldap_config.docker_template.toml /usr/local/lldap_server/lldap_config..toml` + +Enable lldap service in /etc/rc.conf: + +`echo "lldap_enable=YES" > /etc/rc.conf` + +Start your service: + +`service lldap start` diff --git a/example_configs/freebsd/rc.d_lldap b/example_configs/freebsd/rc.d_lldap new file mode 100644 index 0000000..cc36bce --- /dev/null +++ b/example_configs/freebsd/rc.d_lldap @@ -0,0 +1,27 @@ +#!/bin/sh + +# PROVIDE: lldap +# REQUIRE: DAEMON NETWORKING +# KEYWORD: shutdown + +# Add the following lines to /etc/rc.conf to enable lldap: +# lldap_enable : set to "YES" to enable the daemon, default is "NO" + +. /etc/rc.subr + +name=lldap +rcvar=lldap_enable + +lldap_chdir="/usr/local/lldap_server" + +load_rc_config $name + +lldap_enable=${lldap_enable:-"NO"} + +logfile="/var/log/${name}.log" + +procname=/usr/local/lldap_server/lldap +command="/usr/sbin/daemon" +command_args="-u www -o ${logfile} -t ${name} /usr/local/lldap_server/lldap run" + +run_rc_command "$1"