NextCloud Update: Difference between revisions

From WikiMLT
m Стадий: 4 [Фаза:Авторизиране, Статус:Разработен]; Категория:Linux Server
 
(10 intermediate revisions by the same user not shown)
Line 5: Line 5:
<syntaxhighlight lang="shell" line="1" class="code-continue mlw-shell-gray">
<syntaxhighlight lang="shell" line="1" class="code-continue mlw-shell-gray">
NC_ROOT="/var/www/cloud.metalevel.tech"
NC_ROOT="/var/www/cloud.metalevel.tech"
</syntaxhighlight>
<syntaxhighlight lang="shell" line="1" class="code-continue mlw-shell-gray">
NC_OWNER="www-data"
NC_OWNER="www-data"
</syntaxhighlight>
</syntaxhighlight>
Line 20: Line 22:
sudo -u "${NC_OWNER}" \
sudo -u "${NC_OWNER}" \
php --define apc.enable_cli=1 "${NC_ROOT}/occ" db:add-missing-indices
php --define apc.enable_cli=1 "${NC_ROOT}/occ" db:add-missing-indices
</syntaxhighlight>
=== Bring all together ===
<syntaxhighlight lang="shell" class="code-continue mlw-shell-gray">
/usr/local/bin/cloud-update-platform.sh
</syntaxhighlight>
<syntaxhighlight lang="bash" line="1" class="code-continue mlw-shell-gray">
#!/bin/bash
: ${NC_ROOT:="/var/www/cloud.metalevel.tech"} # The DocumentRoot directory of the wiki
: ${NC_OWNER:="www-data"}                    # The user that owns the $IP directory
LOG_FILE=$(cat "${NC_ROOT}/config/config.php" | grep -0 logfile | sed -r 's/^.*=>\s+['\''"](.*)['\''"].*$/\1/')
# Update the NextCloud platform itself
sudo -u "${NC_OWNER}" \
php --define apc.enable_cli=1 "${NC_ROOT}/updater/updater.phar"
# Update all apps
sudo -u "${NC_OWNER}" \
php --define apc.enable_cli=1 "${NC_ROOT}/occ" app:update --all
# Add the missing database indexes:
sudo -u "${NC_OWNER}" \
php --define apc.enable_cli=1 "${NC_ROOT}/occ" db:add-missing-indices
sudo -u "${NC_OWNER}" rm "$LOG_FILE"
</syntaxhighlight>
</syntaxhighlight>


Line 27: Line 56:
* NextCloud Docs: [https://docs.nextcloud.com/server/latest/admin_manual/maintenance/update.html#using-the-command-line-based-updater Using the command line based updater]
* NextCloud Docs: [https://docs.nextcloud.com/server/latest/admin_manual/maintenance/update.html#using-the-command-line-based-updater Using the command line based updater]
* NextCloud Docs: [https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html#apps-commands-label Using the <code>occ</code> command]
* NextCloud Docs: [https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html#apps-commands-label Using the <code>occ</code> command]
== Handle some issues ==
=== Helper scripts to debug a broken application ===
Output the enabled applications to a file.<syntaxhighlight lang="shell" line="1" class="code-continue mlw-shell-gray">
sudo -u "${NC_OWNER}" \
php --define apc.enable_cli=1 "${NC_ROOT}/occ" app:list | \
sed '/^Disabled:/,$d' | sed -E 's/^\s+-\s(.*):.*$/\1/' | sed '/^Enabled/d' \
> ~/tmp/nc.enabled-apps.txt
</syntaxhighlight>
Disable (or attempt to) the enabled apps.
<syntaxhighlight lang="shell" line="1" class="code-continue mlw-shell-gray">
while IFS= read -r EXT; \
do \
    sudo -u "${NC_OWNER}" php --define apc.enable_cli=1 "${NC_ROOT}/occ" app:disable "$EXT"; \
done < ~/tmp/nc.enabled-apps.txt
</syntaxhighlight>
Enable (or attempt to) the previously enabled apps.
<syntaxhighlight lang="shell" line="1" class="code-continue mlw-shell-gray">
#!/usr/bin/zsh
while IFS= read -r EXT; \
do \
    read -s -k "?Press Enter to enable: ${EXT}"; echo; \
    sudo -u "${NC_OWNER}" php --define apc.enable_cli=1 "${NC_ROOT}/occ" app:enable "$EXT"; \
done < ~/tmp/nc.enabled-apps.txt
</syntaxhighlight>
=== Web worker issue temporary solution ===
* NC 27.1.1:  https://github.com/nextcloud/server/issues/39849#issuecomment-1677883083 : Currently I've added <code>$policy->add&shy;Allow&shy;ed&shy;Worker&shy;Src&shy;Domain('\'self\<nowiki>''</nowiki>);</code> on line '''323''' in <code>apps/&shy;files/&shy;lib/&shy;Controller/&shy;View&shy;Controller&shy;.&shy;php</code>.




Line 34: Line 93:
  | Прндл  = Linux Server
  | Прндл  = Linux Server
  | Прндл1 = Web Servers
  | Прндл1 = Web Servers
  | Стадий = 4
  | Стадий = 6
  | Фаза  = Авторизиране
  | Фаза  = Утвърждаване
  | Статус = Разработен
  | Статус = Утвърден
  | ИдтПт  = Spas
  | ИдтПт  = Spas
  | РзбПт  = Spas
  | РзбПт  = Spas
  | АвтПт  = {{REVISIONUSER}}
  | АвтПт  = Spas
  | УтвПт  = Spas
  | УтвПт  = {{REVISIONUSER}}
  | ИдтДт  = 24.09.2022
  | ИдтДт  = 24.09.2022
  | РзбДт  = 25.02.2023
  | РзбДт  = 25.02.2023
  | АвтДт  = {{Today}}
  | АвтДт  = 25.02.2023
  | УтвДт  = 11.11.2022
  | УтвДт  = {{Today}}
  | ИдтРв  = [[Special:Permalink/31783|31783]]
  | ИдтРв  = [[Special:Permalink/31783|31783]]
  | РзбРв  = [[Special:Permalink/32330|32330]]
  | РзбРв  = [[Special:Permalink/32330|32330]]
  | АвтРв  = {{REVISIONID}}
  | АвтРв  = [[Special:Permalink/32331|32331]]
  | РзАРв  = [[Special:Permalink/31789|31789]]
  | РзАРв  = [[Special:Permalink/31789|31789]]
| УтвРв  = {{REVISIONID}}
  | РзУРв  = [[Special:Permalink/32163|32163]]
  | РзУРв  = [[Special:Permalink/32163|32163]]
}}
}}
</div>
</div>
</noinclude>
</noinclude>

Latest revision as of 11:21, 24 February 2024

Us­ing the com­mand line based up­dater

Up­date the NextCloud app it­self – the com­mand can al­so be used to com­plete a stuck web up­date.

NC_ROOT="/var/www/cloud.metalevel.tech"
NC_OWNER="www-data"
sudo -u "${NC_OWNER}" \
php --define apc.enable_cli=1 "${NC_ROOT}/updater/updater.phar"

In or­der to up­date all apps from CLI use:

sudo -u "${NC_OWNER}" \
php --define apc.enable_cli=1 "${NC_ROOT}/occ" app:update --all

Fur­ther you may need to add the miss­ing data­base in­dex­es:

sudo -u "${NC_OWNER}" \
php --define apc.enable_cli=1 "${NC_ROOT}/occ" db:add-missing-indices

Bring all to­geth­er

/usr/local/bin/cloud-update-platform.sh
#!/bin/bash

: ${NC_ROOT:="/var/www/cloud.metalevel.tech"} # The DocumentRoot directory of the wiki
: ${NC_OWNER:="www-data"}                     # The user that owns the $IP directory

LOG_FILE=$(cat "${NC_ROOT}/config/config.php" | grep -0 logfile | sed -r 's/^.*=>\s+['\''"](.*)['\''"].*$/\1/')

# Update the NextCloud platform itself
sudo -u "${NC_OWNER}" \
	php --define apc.enable_cli=1 "${NC_ROOT}/updater/updater.phar"

# Update all apps
sudo -u "${NC_OWNER}" \
	php --define apc.enable_cli=1 "${NC_ROOT}/occ" app:update --all

# Add the missing database indexes:
sudo -u "${NC_OWNER}" \
	php --define apc.enable_cli=1 "${NC_ROOT}/occ" db:add-missing-indices

sudo -u "${NC_OWNER}" rm "$LOG_FILE"

Ref­er­ences

Han­dle some is­sues

Helper scripts to de­bug a bro­ken ap­pli­ca­tion

Out­put the en­abled ap­pli­ca­tions to a file.

sudo -u "${NC_OWNER}" \
php --define apc.enable_cli=1 "${NC_ROOT}/occ" app:list | \
sed '/^Disabled:/,$d' | sed -E 's/^\s+-\s(.*):.*$/\1/' | sed '/^Enabled/d' \
> ~/tmp/nc.enabled-apps.txt

Dis­able (or at­tempt to) the en­abled apps.

while IFS= read -r EXT; \
do \
    sudo -u "${NC_OWNER}" php --define apc.enable_cli=1 "${NC_ROOT}/occ" app:disable "$EXT"; \
done < ~/tmp/nc.enabled-apps.txt

En­able (or at­tempt to) the pre­vi­ous­ly en­abled apps.

#!/usr/bin/zsh
while IFS= read -r EXT; \
do \
    read -s -k "?Press Enter to enable: ${EXT}"; echo; \
    sudo -u "${NC_OWNER}" php --define apc.enable_cli=1 "${NC_ROOT}/occ" app:enable "$EXT"; \
done < ~/tmp/nc.enabled-apps.txt

Web work­er is­sue tem­po­rary so­lu­tion