78 lines
5.7 KiB
Bash
78 lines
5.7 KiB
Bash
#!/bin/bash -ex
|
|
|
|
if [ ! -f /srv/nextcloud/keys/secret.txt ]; then
|
|
sed -i "s/'config_is_read_only' => true,/'config_is_read_only' => false,/g" /etc/nextcloud/config.php
|
|
/usr/bin/php /usr/share/nextcloud/occ maintenance:install --no-interaction --data-dir /srv/nextcloud/data/ --database "pgsql" --database-host "{{ general.postgresql.pg_client_server_domainname }}" --database-name "{{ general.postgresql.pg_client_database }}" --database-user "{{ general.postgresql.pg_client_username }}" --database-pass "{{ general.postgresql.pg_client_password }}" --admin-user "admin" --admin-pass "{{ general.nextcloud.nextcloud_admin_password }}"
|
|
sed -i "s/'config_is_read_only' => false,/'config_is_read_only' => true,/g" /etc/nextcloud/config.php
|
|
umask 027
|
|
/usr/bin/php /usr/share/nextcloud/occ --no-warnings config:system:get passwordsalt > /srv/nextcloud/keys/passwordsalt.txt
|
|
/usr/bin/php /usr/share/nextcloud/occ --no-warnings config:system:get secret > /srv/nextcloud/keys/secret.txt
|
|
VERSION=$(/usr/bin/php /usr/share/nextcloud/occ --no-warnings config:system:get version)
|
|
if ! echo "$VERSION"|grep -E '^[0-9][0-9.]*$'; then echo "unknown version: $VERSION"; exit 1; fi
|
|
echo $VERSION > /srv/nextcloud/keys/version.txt
|
|
|
|
/usr/bin/php /usr/share/nextcloud/occ app:enable user_ldap -q
|
|
/usr/bin/php /usr/share/nextcloud/occ ldap:create-empty-config -q
|
|
else
|
|
sed -i "s'##SECRET##'$(cat /srv/nextcloud/keys/secret.txt)'g" /etc/nextcloud/config.php
|
|
sed -i "s'##SALT##'$(cat /srv/nextcloud/keys/passwordsalt.txt)'g" /etc/nextcloud/config.php
|
|
sed -i "s'##VERSION##'$(cat /srv/nextcloud/keys/version.txt)'g" /etc/nextcloud/config.php
|
|
sed -i "s/'installed' => false,/'installed' => true,/g" /etc/nextcloud/config.php
|
|
# Upgrade
|
|
cp -f /etc/nextcloud/config.php /srv/nextcloud/keys/config.ORI.php
|
|
sha256sum /etc/nextcloud/config.php > /tmp/sha
|
|
sed -i "s/'config_is_read_only' => true,/'config_is_read_only' => false,/g" /etc/nextcloud/config.php
|
|
/usr/bin/php /usr/share/nextcloud/occ upgrade || true
|
|
sed -i "s/'config_is_read_only' => false,/'config_is_read_only' => true,/g" /etc/nextcloud/config.php
|
|
VERSION=$(/usr/bin/php /usr/share/nextcloud/occ --no-warnings config:system:get version)
|
|
if ! echo "$VERSION"|grep -E '^[0-9][0-9.]*$'; then echo "unknown version: $VERSION"; exit 1; fi
|
|
echo $VERSION > /srv/nextcloud/keys/version.txt
|
|
## if file is modified, copy upgraded version
|
|
sha256sum -c /tmp/sha || cp -a /etc/nextcloud/config.php /srv/nextcloud/keys/config.UPGRADED.php
|
|
# Configure LDAP
|
|
/usr/bin/php /usr/share/nextcloud/occ app:enable user_ldap -q
|
|
fi
|
|
# SSO
|
|
/usr/bin/php /usr/share/nextcloud/occ app:enable oidc_login
|
|
# Feature
|
|
/usr/bin/php /usr/share/nextcloud/occ app:enable calendar
|
|
/usr/bin/php /usr/share/nextcloud/occ app:enable contacts
|
|
/usr/bin/php /usr/share/nextcloud/occ app:enable notes
|
|
/usr/bin/php /usr/share/nextcloud/occ app:enable tasks
|
|
# LDAP
|
|
/usr/bin/php /usr/share/nextcloud/occ config:app:set user_ldap bgjRefreshInterval --value=300 -q
|
|
/usr/bin/php /usr/share/nextcloud/occ ldap:set-config s01 ldapHost "ldaps://{{ general.ldap.server.ldap_server_address }}"
|
|
/usr/bin/php /usr/share/nextcloud/occ ldap:set-config s01 ldapPort "{{ general.ldap.server.ldap_port }}"
|
|
/usr/bin/php /usr/share/nextcloud/occ ldap:set-config s01 ldapAgentName "{{ general.ldap.client.ldapclient_user }}"
|
|
/usr/bin/php /usr/share/nextcloud/occ ldap:set-config s01 ldapAgentPassword "{{ general.ldap.client.ldapclient_user_password }}"
|
|
/usr/bin/php /usr/share/nextcloud/occ ldap:set-config s01 ldapBase "{{ general.ldap.client.ldapclient_search_dn }}"
|
|
/usr/bin/php /usr/share/nextcloud/occ ldap:set-config s01 ldapBaseUsers "{{ general.ldap.client.ldapclient_user_dn }}"
|
|
/usr/bin/php /usr/share/nextcloud/occ ldap:set-config s01 ldapBaseGroups "{{ general.ldap.client.ldapclient_group_dn }}"
|
|
/usr/bin/php /usr/share/nextcloud/occ ldap:set-config s01 ldapExperiencedAdmin "0"
|
|
/usr/bin/php /usr/share/nextcloud/occ ldap:set-config s01 ldapExpertUUIDUserAttr "cn"
|
|
/usr/bin/php /usr/share/nextcloud/occ ldap:set-config s01 ldapLoginFilter "(&(cn=%uid)(ObjectClass=inetOrgPerson))"
|
|
/usr/bin/php /usr/share/nextcloud/occ ldap:set-config s01 ldapUserFilter "ObjectClass=inetOrgPerson"
|
|
/usr/bin/php /usr/share/nextcloud/occ ldap:set-config s01 ldapGroupFilter "ObjectClass=posixGroup"
|
|
/usr/bin/php /usr/share/nextcloud/occ ldap:set-config s01 ldapUserFilterObjectclass "inetOrgPerson"
|
|
/usr/bin/php /usr/share/nextcloud/occ ldap:set-config s01 ldapGroupFilterObjectclass "posixGroup"
|
|
/usr/bin/php /usr/share/nextcloud/occ ldap:set-config s01 ldapGroupMemberAssocAttr "memberUid"
|
|
/usr/bin/php /usr/share/nextcloud/occ ldap:set-config s01 ldapEmailAttribute "mail"
|
|
/usr/bin/php /usr/share/nextcloud/occ ldap:set-config s01 ldapCacheTTL "300"
|
|
/usr/bin/php /usr/share/nextcloud/occ ldap:set-config s01 ldapPagingSize "0"
|
|
/usr/bin/php /usr/share/nextcloud/occ ldap:set-config s01 ldapUserDisplayName "sn"
|
|
/usr/bin/php /usr/share/nextcloud/occ ldap:set-config s01 ldapConfigurationActive "1"
|
|
#/usr/bin/php /usr/share/nextcloud/occ ldap:set-config s01 ldapTLS "1"
|
|
# Cron
|
|
/usr/bin/php /usr/share/nextcloud/occ config:app:set core backgroundjobs_mode --value=cron
|
|
# Need network
|
|
/usr/bin/php /usr/share/nextcloud/occ app:disable weather_status
|
|
# Maintenance
|
|
/usr/bin/php /usr/share/nextcloud/occ files:scan --all -q
|
|
sha256sum /etc/nextcloud/config.php > /tmp/sha
|
|
sed -i "s/'config_is_read_only' => true,/'config_is_read_only' => false,/g" /etc/nextcloud/config.php
|
|
/usr/bin/php /usr/share/nextcloud/occ maintenance:repair -q
|
|
sed -i "s/'config_is_read_only' => false,/'config_is_read_only' => true,/g" /etc/nextcloud/config.php
|
|
## if file is modified, copy upgraded version
|
|
sha256sum -c /tmp/sha || cp -a /etc/nextcloud/config.php /srv/nextcloud/keys/config.UPGRADED.php
|
|
|
|
exit 0
|