diff --git a/lib/functions.sh b/lib/functions.sh index a3e7504..68b7ad8 100644 --- a/lib/functions.sh +++ b/lib/functions.sh @@ -1,7 +1,7 @@ # Federated Computer functions # Define all services -SERVICES=("pdnsmysql" "pdns" "pdnsadmin" "traefik" "postgresql" "ldap" "mail" "collabora" "nextcloud" "matrix" "element" "listmonk" "vaultwarden" "panel" "wireguard" "jitsi" "baserow" "gitea" "caddy" "autodiscover" "castopod" "wordpress" "coturn" "bookstack" "freescout" "msp" "espocrm" "nginx") +SERVICES=("pdnsmysql" "pdns" "pdnsadmin" "traefik" "postgresql" "ldap" "mail" "collabora" "nextcloud" "matrix" "element" "listmonk" "vaultwarden" "panel" "wireguard" "jitsi" "baserow" "gitea" "caddy" "autodiscover" "castopod" "wordpress" "coturn" "bookstack" "freescout" "msp" "espocrm" "nginx" "matrixslack" "matrixsignal") fail() { echo -ne "FAILED\n\n$1\n\n" diff --git a/lib/matrixsignal.sh b/lib/matrixsignal.sh new file mode 100644 index 0000000..381222c --- /dev/null +++ b/lib/matrixsignal.sh @@ -0,0 +1,106 @@ +#!/bin/bash +# +# Matrix Signal Service + +PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + +config_matrixsignal() { + echo -ne "\n* Configuring /federated/apps/matrixsignal container.." + spin & + SPINPID=$! + + if [ ! -d "/federated/apps/matrixsignal" ]; then + mkdir -p /federated/apps/matrixsignal/data + fi + +cat > /federated/apps/matrixsignal/docker-compose.yml < /federated/apps/matrixsignal/.env < /dev/null +docker exec postgresql psql -U postgres -c "CREATE DATABASE matrixsignal" &> /dev/null +docker exec postgresql psql -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE matrixsignal TO matrixsignal" &> /dev/null + +# Run again to create the registration file +docker run --rm -v /federated/apps/matrixsignal/data:/data:z dock.mau.dev/mautrix/signal:latest + +# Insert our Matrix Slack config into Matrix homeserverl.yaml +cp /federated/apps/matrixsignal/data/registration.yaml /federated/apps/matrix/data/matrix/matrixsignal-registration.yaml +cat >> /federated/apps/matrix/data/matrix/homeserver.yaml < /dev/null +echo -ne "done." +} +start_matrixsignal() { + # Start service with command to make sure it's up before proceeding + start_service "matrixsignal" "nc -z 172.99.0.81 29335 &> /dev/null" "7" + + kill -9 $SPINPID &> /dev/null + echo -ne "done." +} +uninstall_matrixsignal() { + echo -ne "* Uninstalling matrixsignal container.." + spin & + SPINPID=$! + + # First stop the service + cd /federated/apps/matrixsignal && docker-compose -f docker-compose.yml -p matrixsignal down &> /dev/null + + # Delete database and user in postgresql + docker exec postgresql psql -U postgres -c "DROP DATABASE matrixsignal" &> /dev/null + docker exec postgresql psql -U postgres -c "DROP USER matrixsignal" &> /dev/null + + # Delete the app directory + rm -rf /federated/apps/matrixsignal + + kill -9 $SPINPID &> /dev/null + echo -ne "done.\n" +} diff --git a/lib/matrixslack.sh b/lib/matrixslack.sh new file mode 100644 index 0000000..50b3ce4 --- /dev/null +++ b/lib/matrixslack.sh @@ -0,0 +1,106 @@ +#!/bin/bash +# +# Matrix Slack Service + +PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + +config_matrixslack() { + echo -ne "\n* Configuring /federated/apps/matrixslack container.." + spin & + SPINPID=$! + + if [ ! -d "/federated/apps/matrixslack" ]; then + mkdir -p /federated/apps/matrixslack/data + fi + +cat > /federated/apps/matrixslack/docker-compose.yml < /federated/apps/matrixslack/.env < /dev/null +docker exec postgresql psql -U postgres -c "CREATE DATABASE matrixslack" &> /dev/null +docker exec postgresql psql -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE matrixslack TO matrixslack" &> /dev/null + +# Run again to create the registration file +docker run --rm -v /federated/apps/matrixslack/data:/data:z dock.mau.dev/mautrix/slack:latest + +# Insert our Matrix Slack config into Matrix homeserverl.yaml +cp /federated/apps/matrixslack/data/registration.yaml /federated/apps/matrix/data/matrix/matrixslack-registration.yaml +cat >> /federated/apps/matrix/data/matrix/homeserver.yaml < /dev/null +echo -ne "done." +} +start_matrixslack() { + # Start service with command to make sure it's up before proceeding + start_service "matrixslack" "nc -z 172.99.0.80 29335 &> /dev/null" "7" + + kill -9 $SPINPID &> /dev/null + echo -ne "done." +} +uninstall_matrixslack() { + echo -ne "* Uninstalling matrixslack container.." + spin & + SPINPID=$! + + # First stop the service + cd /federated/apps/matrixslack && docker-compose -f docker-compose.yml -p matrixslack down &> /dev/null + + # Delete database and user in postgresql + docker exec postgresql psql -U postgres -c "DROP DATABASE matrixslack" &> /dev/null + docker exec postgresql psql -U postgres -c "DROP USER matrixslack" &> /dev/null + + # Delete the app directory + rm -rf /federated/apps/matrixslack + + kill -9 $SPINPID &> /dev/null + echo -ne "done.\n" +}