From d1c323e579cdf0cdfd8efbbfdbd104ada8be6822 Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Mon, 26 Jun 2023 14:15:22 +0000 Subject: [PATCH 1/5] Set data directory during init Signed-off-by: GitHub --- .../s6-overlay/s6-rc.d/init-nextcloud-config/run | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/root/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run b/root/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run index 642f3c3..3858593 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run +++ b/root/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run @@ -36,11 +36,11 @@ for dir in apps config themes; do fi done -# symlink data folder -if [ "$(readlink /app/www/public/data)" != "/data" ]; then - rm -rf /app/www/public/data - ln -s /data /app/www/public/data - lsiown abc:abc /data /app/www/public/data +# set data directory +if [ -f /config/www/nextcloud/config/config.php ]; then + sed -i "s|/app/www/public/data|/data|g" /config/www/nextcloud/config/config.php +else + echo -e " '/data'];" >/config/www/nextcloud/config/config.php fi # get versions @@ -91,11 +91,12 @@ if [ -f /config/www/nextcloud/config/needs_migration ] || [ -f /tmp/needs_instal rsync -rlD --include "/${dir}" --exclude '/*' /app/www/src/ /config/www/nextcloud/ fi done - if [ -z "$(ls -A /app/www/public/data/ 2>/dev/null)" ]; then + if [ -z "$(ls -A /data/ 2>/dev/null)" ]; then rsync -rlD --include "/data" --exclude '/*' /app/www/src/ / fi echo "Setting permissions" + lsiown abc:abc /data lsiown abc:abc -R \ /app/www/public \ /config/www/nextcloud @@ -140,6 +141,9 @@ if occ config:system:get installed >/dev/null 2>&1; then if ! occ config:system:get memcache.locking >/dev/null 2>&1; then occ config:system:set memcache.locking --value='\\OC\\Memcache\\APCu' fi + if ! occ config:system:get datadirectory >/dev/null 2>&1; then + occ config:system:set datadirectory --value='/data' + fi else echo "After completing the web-based installer, restart the Nextcloud container to apply default memory caching and transactional file locking configurations." echo "Alternatively, you can apply your own configurations by editing /config/www/nextcloud/config/config.php following the documentation:" From ee61df9ca5a666ea9328254e2df44440076ab7b2 Mon Sep 17 00:00:00 2001 From: TheSpad Date: Mon, 26 Jun 2023 16:29:21 +0100 Subject: [PATCH 2/5] Fix order of operations --- .../s6-overlay/s6-rc.d/init-nextcloud-config/run | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/root/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run b/root/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run index 3858593..49c4045 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run +++ b/root/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run @@ -36,13 +36,6 @@ for dir in apps config themes; do fi done -# set data directory -if [ -f /config/www/nextcloud/config/config.php ]; then - sed -i "s|/app/www/public/data|/data|g" /config/www/nextcloud/config/config.php -else - echo -e " '/data'];" >/config/www/nextcloud/config/config.php -fi - # get versions image_version=$(php -r "require '/app/www/src/version.php'; echo implode('.', \$OC_Version);" 2>/dev/null) installed_version=$(php -r "require '/config/www/nextcloud/config/config.php'; echo \$CONFIG['version'];" 2>/dev/null) @@ -156,3 +149,10 @@ if (occ app:list --no-interaction | grep -q richdocumentscode) 2>/dev/null; then APP=$(occ app:list --no-interaction | grep richdocumentscode | awk -F ' ' '{print $2}' | tr -d ':') occ app:remove --no-interaction "${APP}" 2>/dev/null fi + +# set data directory +if [ ! -s /config/www/nextcloud/config/config.php ]; then + echo -e " '/data',\n);" >/config/www/nextcloud/config/config.php +elif [ -f /config/www/nextcloud/config/config.php ]; then + sed -i "s|/app/www/public/data|/data|g" /config/www/nextcloud/config/config.php +fi From 06ca2ef0a15179a65b6a1d869563b3729cf93cbb Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Mon, 26 Jun 2023 19:03:54 -0500 Subject: [PATCH 3/5] Remove shipped apps for upgrade Prevents integrity check issue Signed-off-by: Eric Nemchik --- root/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/root/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run b/root/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run index 49c4045..37b0178 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run +++ b/root/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run @@ -3,9 +3,7 @@ # create folders mkdir -p \ - /app/www/public/apps \ - /app/www/public/config \ - /app/www/public/themes \ + /app/www/public \ /config/www/nextcloud/apps \ /config/www/nextcloud/config \ /config/www/nextcloud/themes \ @@ -76,6 +74,10 @@ if [ -f /config/www/nextcloud/config/needs_migration ] || [ -f /tmp/needs_instal if [ -f /config/www/nextcloud/config/needs_migration ] || [ -f /tmp/needs_upgrade ]; then echo "Upgrading nextcloud from ${installed_version} ..." occ app:list | sed -n "/Enabled:/,/Disabled:/p" >/tmp/list_before + shippedApps=$(jq -r .shippedApps[] /app/www/src/core/shipped.json) + for app in ${shippedApps}; do + rm -rf "/config/www/nextcloud/apps/${app}" + done fi rsync -rlD --exclude-from=/app/upgrade.exclude /app/www/src/ /app/www/public/ From e3d0f3fff25f9bae07ebc14ab75aede6f14c475f Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Tue, 27 Jun 2023 18:14:37 -0500 Subject: [PATCH 4/5] If there are no apps then needs installs Signed-off-by: Eric Nemchik --- root/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/root/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run b/root/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run index 37b0178..9911ed3 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run +++ b/root/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run @@ -60,7 +60,7 @@ if [ "${installed_version}" != "0.0.0.0" ] && vergt "${image_major}" "${max_upgr sleep infinity fi -if [ "${installed_version}" = "0.0.0.0" ] || [ ! -f /app/www/public/version.php ]; then +if [ "${installed_version}" = "0.0.0.0" ] || [ ! -f /app/www/public/version.php ] || [ -z "$(ls -A /config/www/nextcloud/apps 2>/dev/null)" ]; then touch /tmp/needs_install fi @@ -82,7 +82,7 @@ if [ -f /config/www/nextcloud/config/needs_migration ] || [ -f /tmp/needs_instal rsync -rlD --exclude-from=/app/upgrade.exclude /app/www/src/ /app/www/public/ for dir in apps config themes; do - if [ -f /config/www/nextcloud/config/needs_migration ] || [ -f /tmp/needs_upgrade ] || [ -z "$(ls -A /app/www/public/${dir}/ 2>/dev/null)" ]; then + if [ -f /config/www/nextcloud/config/needs_migration ] || [ -f /tmp/needs_upgrade ] || [ -z "$(ls -A /app/www/public/${dir} 2>/dev/null)" ]; then rsync -rlD --include "/${dir}" --exclude '/*' /app/www/src/ /config/www/nextcloud/ fi done From d151fd013f86933409d88dbdd26222232842031f Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Tue, 27 Jun 2023 18:19:21 -0500 Subject: [PATCH 5/5] Remove disabled apps logic (was broken) Signed-off-by: Eric Nemchik --- root/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run | 6 ------ 1 file changed, 6 deletions(-) diff --git a/root/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run b/root/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run index 9911ed3..9e47ceb 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run +++ b/root/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run @@ -73,7 +73,6 @@ if [ -f /config/www/nextcloud/config/needs_migration ] || [ -f /tmp/needs_instal echo "Initializing nextcloud ${image_version} (this can take a while) ..." if [ -f /config/www/nextcloud/config/needs_migration ] || [ -f /tmp/needs_upgrade ]; then echo "Upgrading nextcloud from ${installed_version} ..." - occ app:list | sed -n "/Enabled:/,/Disabled:/p" >/tmp/list_before shippedApps=$(jq -r .shippedApps[] /app/www/src/core/shipped.json) for app in ${shippedApps}; do rm -rf "/config/www/nextcloud/apps/${app}" @@ -99,10 +98,6 @@ if [ -f /config/www/nextcloud/config/needs_migration ] || [ -f /tmp/needs_instal if [ -f /config/www/nextcloud/config/needs_migration ] || [ -f /tmp/needs_upgrade ]; then # Upgrade occ upgrade - - occ app:list | sed -n "/Enabled:/,/Disabled:/p" >/tmp/list_after - echo "The following apps have been disabled:" - diff /tmp/list_before /tmp/list_after | grep '<' | cut -d- -f2 | cut -d: -f1 else if [ "${installed_version}" = "0.0.0.0" ]; then # Install @@ -111,7 +106,6 @@ if [ -f /config/www/nextcloud/config/needs_migration ] || [ -f /tmp/needs_instal fi fi - rm -f /tmp/list_before /tmp/list_after echo "Initializing finished" fi