From 8bb4f9a6860e9a764405e7d8894a0eebe5ac3159 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 23 Jul 2024 17:27:31 +0000 Subject: [PATCH] Added authelia.sh --- lib/authelia.sh | 248 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 248 insertions(+) create mode 100644 lib/authelia.sh diff --git a/lib/authelia.sh b/lib/authelia.sh new file mode 100644 index 0000000..09c1f92 --- /dev/null +++ b/lib/authelia.sh @@ -0,0 +1,248 @@ +#!/bin/bash +# +# Authelia Service + +PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +get_appvars + +config_authelia() { + echo -ne "\n* Configuring /federated/apps/authelia container.." + + if [ ! -d "/federated/apps/authelia" ]; then + mkdir -p /federated/apps/authelia/data/config + mkdir -p /federated/apps/authelia/data/secrets + fi + +cat > /federated/apps/authelia/docker-compose.yml < /federated/apps/authelia/data/secrets/JWT_SECRET +tr -cd '[:alnum:]' < /dev/urandom | fold -w "64" | head -n 1 > /federated/apps/authelia/data/secrets/SESSION_SECRET +tr -cd '[:alnum:]' < /dev/urandom | fold -w "64" | head -n 1 > /federated/apps/authelia/data/secrets/STORAGE_ENCRYPTION_KEY +echo "$LDAP_SECRET" > /federated/apps/authelia/data/secrets/AUTHENTICATION_BACKEND_LDAP_PASSWORD +echo "$ADMINPASS" > /federated/apps/authelia/data/secrets/NOTIFIER_SMTP_PASSWORD +openssl genrsa -out /federated/apps/authelia/data/secrets/private.pem 4096 +openssl rsa -in /federated/apps/authelia/data/secrets/private.pem -outform PEM -pubout -out /federated/apps/authelia/data/secrets/public.pem +POWERDNS_CLIENT_SECRET=$(create_password); +POWERDNS_CLIENT_SECRET_HASH=$(docker run -it --rm authelia/authelia:latest authelia crypto hash generate pbkdf2 --password $POWERDNS_CLIENT_SECRET | awk '{ print $2 }') +NEXTCLOUD_CLIENT_SECRET=$(create_password); +NEXTCLOUD_CLIENT_SECRET_HASH=$(docker run -it --rm authelia/authelia:latest authelia crypto hash generate pbkdf2 --password $NEXTCLOUD_CLIENT_SECRET | awk '{ print $2 }') + +cat > /federated/apps/authelia/.env < /federated/apps/authelia/data/config/configuration.yml < /federated/apps/authelia/data/config/idproviders.yml < /dev/null" "7" + + docker exec pdns pdnsutil add-record $DOMAIN authelia A 86400 $EXTERNALIP &> /dev/null + [ $? -ne 0 ] && fail "Couldn't add dns record for authelia" + + # Stop and start pdnsadmin for internal dns externalhosts to work + /federated/bin/stop pdnsadmin + /federated/bin/start pdnsadmin + + echo -ne "done." +} +uninstall_authelia() { + echo -ne "* Uninstalling authelia container.." + spin & + SPINPID=$! + + # First stop the service + cd /federated/apps/authelia && docker-compose -f docker-compose.yml -p authelia down &> /dev/null + + # Delete the app directory + rm -rf /federated/apps/authelia + + # Delete the image + docker image rm authelia/authelia:$IMAGE_VERSION &> /dev/null + + # Delete the DNS record + docker exec pdns pdnsutil delete-rrset $DOMAIN authelia A + + kill -9 $SPINPID &> /dev/null + echo -ne "done.\n" +}