From b968aaff53f486c800014d74287dfd2e09a94302 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 24 Jan 2025 18:25:09 +0000 Subject: [PATCH] Added plus support for element and matrix --- lib/element.sh | 22 +++++++++++++++ lib/matrix.sh | 76 +++++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 91 insertions(+), 7 deletions(-) diff --git a/lib/element.sh b/lib/element.sh index 54b7b79..28b7779 100644 --- a/lib/element.sh +++ b/lib/element.sh @@ -3,6 +3,7 @@ # Element Service PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +. /etc/federated config_element() { echo -ne "* Configuring element container.." @@ -36,6 +37,8 @@ networks: external: true EOF +[[ "${PLUS}" = "true" ]] && sed -i "s/letsencrypt/httpresolver/g" /federated/apps/element/docker-compose.yml + cat > /federated/apps/element/.env < /dev/null" "7" + [[ "${PLUS}" != "true" ]] && docker exec pdns pdnsutil add-record $DOMAIN element A 86400 $EXTERNALIP &> /dev/null + + echo -ne "done.\n" +} +uninstall_element() { + echo -ne "* Uninstalling element container.." + + # First stop the service + cd /federated/apps/element && docker compose -f docker-compose.yml -p element down &> /dev/null + + # Delete the app directory + rm -rf /federated/apps/element + + # Delete the image + docker image rm vectorim/element-web:$IMAGE_VERSION &> /dev/null + + # Delete the DNS record + [[ "${PLUS}" != "true" ]] && docker exec pdns pdnsutil delete-rrset $DOMAIN element A + echo -ne "done.\n" } diff --git a/lib/matrix.sh b/lib/matrix.sh index 16ccc32..6cb8514 100644 --- a/lib/matrix.sh +++ b/lib/matrix.sh @@ -3,6 +3,7 @@ # Matrix Service PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +. /etc/federated get_appvars config_matrix() { @@ -10,16 +11,16 @@ config_matrix() { if [ ! -d "/federated/apps/matrix" ]; then mkdir -p /federated/apps/matrix/data/matrix &> /dev/null - cp /federated/certs/certs/$DOMAIN.crt /federated/certs/private/$DOMAIN.key /federated/apps/matrix/data/matrix/ - chmod 644 /federated/apps/matrix/data/matrix/$DOMAIN.crt /federated/apps/matrix/data/matrix/$DOMAIN.key + if [[ "${PLUS}" != "true" ]]; then + cp /federated/certs/certs/$DOMAIN.crt /federated/certs/private/$DOMAIN.key /federated/apps/matrix/data/matrix/ + chmod 644 /federated/apps/matrix/data/matrix/$DOMAIN.crt /federated/apps/matrix/data/matrix/$DOMAIN.key + fi chown -R 991:991 /federated/apps/matrix/data/matrix fi MATRIX_SECRET=$(create_password); cat > /federated/apps/matrix/docker-compose.yml < /federated/apps/matrix/.env <> /federated/apps/matrix/data/matrix/homeserver.yaml <" + app_name: $COMPANY Matrix Server +EOF +else cat >> /federated/apps/matrix/data/matrix/homeserver.yaml < /dev/null - docker exec pdns pdnsutil add-record $DOMAIN matrix A 86400 $EXTERNALIP &> /dev/null - [ $? -ne 0 ] && fail "Couldn't add dns record for matrix" + [[ "${PLUS}" != "true" ]] && docker exec pdns pdnsutil add-record $DOMAIN matrix A 86400 $EXTERNALIP &> /dev/null echo -ne "done.\n" } @@ -233,7 +267,7 @@ uninstall_matrix() { docker image rm matrixdotorg/synapse:$IMAGE_VERSION &> /dev/null # Delete the DNS record - docker exec pdns pdnsutil delete-rrset $DOMAIN matrix A + [[ "${PLUS}" != "true" ]] && docker exec pdns pdnsutil delete-rrset $DOMAIN matrix A # Uninstall the SSO configuration if it exists in authelia (authelia must exist too) if [[ $(grep "### Matrix" /federated/apps/authelia/data/config/idproviders.yml 2>/dev/null) ]]; then @@ -246,6 +280,7 @@ uninstall_matrix() { echo -ne "done.\n" } configsso_matrix() { + if [[ "${PLUS}" != "true" ]]; then echo -ne "* Configuring matrix container with SSO.." [ ! -d "/federated/apps/authelia" ] && failcheck "Authelia is not installed. You need this first before continuing." @@ -303,4 +338,31 @@ EOF run_command "/federated/bin/start matrix" echo -ne "done.\n" + fi +} +configsso_matrix_plus() { + MATRIX_CLIENT_SECRET=$(cat /federated/apps/matrix/.matrix.client.secret) + +cat >> /federated/apps/matrix/data/matrix/homeserver.yaml <