diff --git a/lib/wordpress.sh b/lib/wordpress.sh index 6a696ad..5aeaeed 100644 --- a/lib/wordpress.sh +++ b/lib/wordpress.sh @@ -32,6 +32,8 @@ services: - ./.env extra_hosts: - "www.$DOMAIN:$EXTERNALIP" + - "listmonk.$DOMAIN:$EXTERNALIP" + - "authelia.$DOMAIN:$EXTERNALIP" volumes: - ./data/bitnami/wordpress:/bitnami/wordpress labels: @@ -188,6 +190,72 @@ uninstall_wordpress() { # Delete the app directory rm -rf /federated/apps/wordpress + # Delete the image + docker image rm bitnami/wordpress:$IMAGE_VERSION &> /dev/null + + # Delete the DNS record + docker exec pdns pdnsutil delete-rrset $DOMAIN wordpress A + docker exec pdns pdnsutil delete-rrset $DOMAIN www A + + # Uninstall the SSO configuration if it exists in authelia (authelia must exist too) + if [[ $(grep "### Wordpress" /federated/apps/authelia/data/config/idproviders.yml 2>/dev/null) ]]; then + sed -i '/### Wordpress/,/### /{/### PowerDNS/!{/### /!d}}' /federated/apps/authelia/data/config/idproviders.yml + sed -i '/### Wordpress/d' /federated/apps/authelia/data/config/idproviders.yml + /federated/bin/stop authelia + /federated/bin/start authelia + fi + kill -9 $SPINPID &> /dev/null echo -ne "done.\n" } +configsso_wordpress() { + [ ! -d "/federated/apps/authelia" ] && failcheck "Authelia is not installed. You need this first before continuing." + [ ! -f "/federated/apps/authelia/data/config/idproviders.yml" ] && failcheck "Authelia idproviders.yml is missing." + [[ $(grep "### Wordpress" /federated/apps/authelia/data/config/idproviders.yml 2>/dev/null) ]] && failcheck "Authelia already has a Wordpress configuration." + + WORDPRESS_CLIENT_SECRET=$(create_password); + WORDPRESS_CLIENT_SECRET_HASH=$(docker run -it --rm authelia/authelia:latest authelia crypto hash generate pbkdf2 --password $WORDPRESS_CLIENT_SECRET | awk '{ print $2 }') + +cat >> /federated/apps/authelia/data/config/idproviders.yml < /dev/null + docker exec wordpress wp plugin activate daggerhart-openid-connect-generic &> /dev/null + + /federated/bin/stop wordpress + /federated/bin/start wordpress +}