Added sso fixes clean up for nextcloud

This commit is contained in:
root 2024-11-06 15:59:33 +00:00
parent 866e1875cf
commit f47b90acda

View File

@ -5,7 +5,7 @@
PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
config_nextcloud() {
echo -ne "\n* Configuring /federated/apps/nextcloud container.."
echo -ne "* Configuring nextcloud container.."
if [ ! -d "/federated/apps/nextcloud" ]; then
mkdir -p /federated/apps/nextcloud/data/root &> /dev/null
@ -272,52 +272,48 @@ EOF
chmod +x /federated/apps/nextcloud/data/config.sh
echo -ne "done."
echo -ne "done.\n"
}
start_nextcloud() {
# Start service with command to make sure it's up before proceeding
start_service "nextcloud" "nc -z 192.168.0.18 80 &> /dev/null" "60"
# Move config.sh and sidemenu config, set config.sh executable
mv /federated/apps/nextcloud/data/config.sh /federated/apps/nextcloud/data/configs.json /federated/apps/nextcloud/data/var/www/html/
docker exec nextcloud chown www-data:root /var/www/html/config.sh /var/www/html/configs.json
docker exec nextcloud chmod 755 /var/www/html/config.sh
[ $? -ne 0 ] && fail "Couldn't chown config.sh in /federated/apps/nextcloud container"
run_command "mv /federated/apps/nextcloud/data/config.sh /federated/apps/nextcloud/data/configs.json /federated/apps/nextcloud/data/var/www/html/"
run_command "docker exec nextcloud chown www-data:root /var/www/html/config.sh /var/www/html/configs.json"
run_command "docker exec nextcloud chmod 755 /var/www/html/config.sh"
# Run config.sh - Setup LDAP, configuration for nextcloud
docker exec -u 33 nextcloud /var/www/html/config.sh &> /dev/null
[ $? -ne 0 ] && fail "Couldn't run config.sh inside /federated/apps/nextcloud container"
run_command "docker exec -u 33 nextcloud /var/www/html/config.sh"
# Add admin user to group
# Have to do it this many times so it will query LDAP and populate admin user first
docker exec -u 33 nextcloud /var/www/html/occ ldap:search admin
docker exec -u 33 nextcloud /var/www/html/occ group:list
docker exec -u 33 nextcloud /var/www/html/occ group:adduser admin admin
docker exec -u 33 nextcloud /var/www/html/occ group:adduser admin admin
docker exec -u 33 nextcloud /var/www/html/occ group:list
run_command "docker exec -u 33 nextcloud /var/www/html/occ ldap:search admin"
run_command "docker exec -u 33 nextcloud /var/www/html/occ group:list"
run_command "docker exec -u 33 nextcloud /var/www/html/occ group:adduser admin admin"
run_command "docker exec -u 33 nextcloud /var/www/html/occ group:adduser admin admin"
run_command "docker exec -u 33 nextcloud /var/www/html/occ group:list"
# Setup admin email account
docker exec -u 33 nextcloud bash -c "/var/www/html/occ mail:account:create admin admin admin@$DOMAIN mail.$DOMAIN 993 ssl admin@$DOMAIN $ADMINPASS mail.$DOMAIN 465 ssl admin@$DOMAIN $ADMINPASS password" &> /dev/null
# docker exec -u 33 nextcloud bash -c "/var/www/html/occ mail:account:create admin admin admin@$DOMAIN mail.$DOMAIN 993 ssl admin@$DOMAIN $ADMINPASS mail.$DOMAIN 465 ssl admin@$DOMAIN $ADMINPASS password" &> /dev/null || failts "ERROR - There was an error running occ mail:account:create"
run_command "docker exec -u 33 nextcloud /var/www/html/occ mail:account:create admin admin admin@$DOMAIN mail.$DOMAIN 993 ssl admin@$DOMAIN $ADMINPASS mail.$DOMAIN 465 ssl admin@$DOMAIN $ADMINPASS password"
# Add missing indexes and disable activity app
docker exec -u 33 nextcloud /var/www/html/occ db:add-missing-indices
docker exec -u 33 nextcloud /var/www/html/occ app:disable activity
run_command "docker exec -u 33 nextcloud /var/www/html/occ db:add-missing-indices"
run_command "docker exec -u 33 nextcloud /var/www/html/occ app:disable activity"
docker exec pdns pdnsutil add-record $DOMAIN nextcloud A 86400 $EXTERNALIP &> /dev/null
[ $? -ne 0 ] && fail "Couldn't add dns record for nextcloud"
run_command "docker exec pdns pdnsutil add-record $DOMAIN nextcloud A 86400 $EXTERNALIP"
# Remove configs
rm /federated/apps/nextcloud/data/var/www/html/config.sh /federated/apps/nextcloud/data/var/www/html/configs.json
run_command "rm /federated/apps/nextcloud/data/var/www/html/config.sh /federated/apps/nextcloud/data/var/www/html/configs.json"
# Truncate nextcloud log file
docker exec -u 33 nextcloud truncate /var/www/html/data/nextcloud.log --size 0
run_command "docker exec -u 33 nextcloud truncate /var/www/html/data/nextcloud.log --size 0"
echo -ne "done."
echo -ne "done.\n"
}
uninstall_nextcloud() {
echo -ne "* Uninstalling nextcloud container.."
spin &
SPINPID=$!
# First stop the service
cd /federated/apps/nextcloud && docker-compose -f docker-compose.yml -p nextcloud down &> /dev/null
@ -339,14 +335,15 @@ uninstall_nextcloud() {
if [[ $(grep "### Nextcloud" /federated/apps/authelia/data/config/idproviders.yml 2>/dev/null) ]]; then
sed -i '/### Nextcloud/,/### /{/### PowerDNS/!{/### /!d}}' /federated/apps/authelia/data/config/idproviders.yml
sed -i '/### Nextcloud/d' /federated/apps/authelia/data/config/idproviders.yml
/federated/bin/stop authelia
/federated/bin/start authelia
/federated/bin/stop authelia &> /dev/null
/federated/bin/start authelia &> /dev/null
fi
kill -9 $SPINPID &> /dev/null
echo -ne "done.\n"
}
configsso_nextcloud() {
echo -ne "* Configuring nextcloud container with SSO.."
[ ! -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."
get_appvars
@ -373,20 +370,22 @@ cat >> /federated/apps/authelia/data/config/idproviders.yml <<EOF
- 'email'
- 'groups'
userinfo_signed_response_alg: 'none'
token_endpoint_auth_method: 'client_secret_basic'
token_endpoint_auth_method: 'client_secret_post'
EOF
add_authelia_config_to_dockercompose "$APP"
# Restart Authelia for changes to take the above configuration
/federated/bin/stop authelia
/federated/bin/start authelia
run_command "/federated/bin/stop authelia"
run_command "/federated/bin/start authelia"
docker exec -u 33 nextcloud /var/www/html/occ config:system:set allow_local_remote_servers --value=true
docker exec -u 33 nextcloud /var/www/html/occ app:enable user_oidc
docker exec -u 33 nextcloud /var/www/html/occ config:system:set --value=true --type=boolean user_oidc use_pkce
docker exec -u 33 nextcloud /var/www/html/occ user_oidc:provider Authelia --clientid="nextcloud" --clientsecret="$NEXTCLOUD_CLIENT_SECRET" --discoveryuri="https://authelia.$DOMAIN/.well-known/openid-configuration" --mapping-uid=name --endsessionendpointuri=https://authelia.$DOMAIN/logout
run_command "docker exec -u 33 nextcloud /var/www/html/occ config:system:set allow_local_remote_servers --value=true"
run_command "docker exec -u 33 nextcloud /var/www/html/occ app:enable user_oidc"
run_command "docker exec -u 33 nextcloud /var/www/html/occ config:system:set --value=true --type=boolean user_oidc use_pkce"
run_command "docker exec -u 33 nextcloud /var/www/html/occ user_oidc:provider Authelia --clientid="nextcloud" --clientsecret="$NEXTCLOUD_CLIENT_SECRET" --discoveryuri="https://authelia.$DOMAIN/.well-known/openid-configuration" --mapping-uid=name --endsessionendpointuri=https://authelia.$DOMAIN/logout"
/federated/bin/stop nextcloud
/federated/bin/start nextcloud
run_command "/federated/bin/stop nextcloud"
run_command "/federated/bin/start nextcloud"
echo -ne "done.\n"
}