Skip to content

Commit c10d4bd

Browse files
committed
upgrade to NC21.0.4
Signed-off-by: nachoparker <[email protected]>
1 parent 3bf746b commit c10d4bd

File tree

88 files changed

+2505
-148
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+2505
-148
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Find the full documentation at [docs.nextcloudpi.com](http://docs.nextcloudpi.co
1616
## Features
1717

1818
* Debian/Raspbian 10 Buster
19-
* Nextcloud 20.0.12
19+
* Nextcloud 21.0.4
2020
* Apache 2.4.25, with HTTP2 enabled
2121
* PHP 7.3
2222
* MariaDB 10

Vagrantfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ Vagrant.configure("2") do |config|
3737
# cleanup
3838
source etc/library.sh
3939
run_app_unsafe post-inst.sh
40-
cd -
40+
cd /
4141
rm -r /tmp/nextcloudpi
4242
systemctl disable sshd
4343
poweroff

bin/ncp-diag

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ echo "HTTPD service|$( pgrep -c apache2 &>/dev/null && echo up || echo down )"
5757
echo "PHP service|$( pgrep -c php-fpm &>/dev/null && echo up || echo down )"
5858
echo "MariaDB service|$( pgrep -c mysqld &>/dev/null && echo up || echo down )"
5959
echo "Redis service|$( pgrep -c redis-server &>/dev/null && echo up || echo down )"
60+
echo "HPB service|$(pgrep -c notify_push &>/dev/null && echo up || echo down )"
6061
echo "Postfix service|$( pgrep -fc postfix &>/dev/null && echo up || echo down )"
6162

6263
# WAN

bin/ncp-update-nc

Lines changed: 49 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ set -eE
2222
VER="$1"
2323
BIN="${0##*/}"
2424

25+
source /usr/local/etc/library.sh
26+
2527
# pre-checks
2628
####################
2729
[[ "$VER" == "" ]] && { echo "Usage ${BIN} <version>"; exit 1; }
@@ -61,7 +63,7 @@ fi
6163

6264
echo "Current Nextcloud version $CURRENT"
6365
echo "Available Nextcloud version $VER"
64-
[[ "$NEED_UPDATE" == "true" ]] || { echo "Nothing to update"; exit 1; }
66+
[[ "$NEED_UPDATE" == "true" ]] || { echo "Nothing to update"; exit; }
6567

6668
# make sure that cron.php is not running and there are no pending jobs
6769
# https://github.com/nextcloud/server/issues/10949
@@ -159,7 +161,8 @@ rollback() {
159161
echo -e "Abort\nClean up..."
160162
rm -rf /var/www/nextcloud.tar.bz2 "$BASEDIR"/nextcloud-old
161163
echo "Rolling back to backup $BKP..."
162-
local TMPDATA="$( mktemp -d "/var/www/ncp-data.XXXXXX" )" || { echo "Failed to create temp dir" >&2; exit 1; }
164+
local TMPDATA
165+
TMPDATA="$( mktemp -d "/var/www/ncp-data.XXXXXX" )" || { echo "Failed to create temp dir" >&2; exit 1; }
163166
[[ "$DATADIR" == "$BASEDIR/nextcloud/data" ]] && mv -T "$DATADIR" "$TMPDATA"
164167
ncp-restore "$BKP" || { echo "Rollback failed! Data left at $TMPDATA"; exit 1; }
165168
[[ "$DATADIR" == "$BASEDIR/nextcloud/data" ]] && { rm -rf "$DATADIR"; mv -T "$TMPDATA" "$DATADIR"; }
@@ -186,6 +189,50 @@ $ncc | grep -q db:add-missing-columns && $ncc db:add-missing-columns -n
186189
$ncc | grep -q db:add-missing-primary-keys && $ncc db:add-missing-primary-keys -n
187190
$ncc | grep -q db:convert-filecache-bigint && $ncc db:convert-filecache-bigint -n
188191

192+
193+
# use the correct version for custom apps
194+
NCVER="$(ncc status | grep "version:" | awk '{ print $3 }')"
195+
if is_more_recent_than "21.0.0" "${NCVER}"; then
196+
NCPREV=/var/www/ncp-previewgenerator/ncp-previewgenerator-nc20
197+
else
198+
# Install notify_push if not installed
199+
if ! is_app_enabled notify_push; then
200+
ncc app:install notify_push
201+
ncc app:enable notify_push
202+
bash /usr/local/etc/ncp-templates/nextcloud.conf.sh > /etc/apache2/sites-available/nextcloud.conf
203+
a2enmod proxy proxy_http proxy_wstunnel
204+
apachectl -k graceful
205+
## make sure the notify_push daemon is runnnig
206+
207+
arch="$(uname -m)"
208+
[[ "${arch}" =~ "armv7" ]] && arch="armv7"
209+
cat > /etc/systemd/system/notify_push.service <<EOF
210+
[Unit]
211+
Description = Push daemon for Nextcloud clients
212+
After = mysql.service
213+
214+
[Service]
215+
Environment = PORT=7867
216+
ExecStart = /var/www/nextcloud/apps/notify_push/bin/"${arch}"/notify_push --allow-self-signed /var/www/nextcloud/config/config.php
217+
User=www-data
218+
219+
[Install]
220+
WantedBy = multi-user.target
221+
EOF
222+
start_notify_push
223+
nc_domain="$(ncc config:system:get overwrite.cli.url)"
224+
set-nc-domain "${nc_domain}" || {
225+
echo "notify_push setup failed. You are probably behind a proxy"
226+
echo "Run 'ncc config:system:set trusted_proxies 15 --value=<proxy_IP>' and then 'ncc notify_push:setup https://<domain>/push to enable"
227+
echo "Check https://help.nextcloud.com/tags/ncp for support"
228+
}
229+
230+
fi
231+
NCPREV=/var/www/ncp-previewgenerator/ncp-previewgenerator-nc21
232+
fi
233+
rm -rf /var/www/nextcloud/apps/previewgenerator
234+
ln -snf "${NCPREV}" /var/www/nextcloud/apps/previewgenerator
235+
189236
# done
190237
####################
191238
mkdir -p "$DATADIR"/ncp-update-backups

bin/ncp/CONFIG/nc-httpsonly.sh

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@
1111

1212
configure()
1313
{
14-
[[ $ACTIVE == "no" ]] && local OPT=Off || local OPT=On
15-
sed -i "s|RewriteEngine .*|RewriteEngine $OPT|" /etc/apache2/sites-available/000-default.conf
16-
echo "Forcing HTTPS $OPT"
17-
18-
# delayed in bg so it does not kill the connection, and we get AJAX response
19-
bash -c "sleep 2 && service apache2 reload" &>/dev/null &
14+
[[ -f /.ncp-image ]] && return 0
15+
[[ $ACTIVE == "no" ]] && local opt=Off proto=https || local opt=On proto=http
16+
sed -i "s|RewriteEngine .*|RewriteEngine $opt|" /etc/apache2/sites-available/000-default.conf
17+
ncc config:system:set overwriteprotocol --value="${proto}"
18+
apachectl -k graceful
19+
echo "Forcing HTTPS $opt"
2020
}
2121

2222
install() { :; }

bin/ncp/CONFIG/nc-init.sh

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ DBADMIN=ncadmin
1212

1313
configure()
1414
{
15-
source /usr/local/etc/library.sh # sets PHPVER
15+
source /usr/local/etc/library.sh # sets PHPVER NCVER
1616

1717
echo "Setting up a clean Nextcloud instance... wait until message 'NC init done'"
1818

@@ -103,14 +103,10 @@ EOF
103103
# 4 Byte UTF8 support
104104
ncc config:system:set mysql.utf8mb4 --type boolean --value="true"
105105

106-
# Default trusted domain ( only from ncp-config )
107-
test -f /usr/local/bin/nextcloud-domain.sh && {
108-
test -f /.ncp-image || bash /usr/local/bin/nextcloud-domain.sh
109-
}
110-
ncc config:system:set trusted_domains 5 --value="nextcloudpi.local"
106+
ncc config:system:set trusted_domains "${TRUSTED_DOMAINS[nextcloudpi-local]}" --value="nextcloudpi.local"
111107
# trusted_domains 6 used by docker
112-
ncc config:system:set trusted_domains 7 --value="nextcloudpi"
113-
ncc config:system:set trusted_domains 8 --value="nextcloudpi.lan"
108+
ncc config:system:set trusted_domains "${TRUSTED_DOMAINS[nextcloudpi]}" --value="nextcloudpi"
109+
ncc config:system:set trusted_domains "${TRUSTED_DOMAINS[nextcloudpi-lan]}" --value="nextcloudpi.lan"
114110

115111
# email
116112
ncc config:system:set mail_smtpmode --value="sendmail"
@@ -159,8 +155,16 @@ EOF
159155
fi
160156

161157
# ncp-previewgenerator
162-
cp -r /var/www/ncp-previewgenerator /var/www/nextcloud/apps/previewgenerator
163-
chown www-data:www-data /var/www/nextcloud/apps/previewgenerator
158+
if is_more_recent_than "21.0.0" "$NCVER"; then
159+
local ncprev=/var/www/ncp-previewgenerator/ncp-previewgenerator-nc20
160+
else
161+
ncc app:install notify_push
162+
ncc app:enable notify_push
163+
test -f /.ncp-image || start_notify_push # don't start during build
164+
local ncprev=/var/www/ncp-previewgenerator/ncp-previewgenerator-nc21
165+
fi
166+
ln -snf "${ncprev}" /var/www/nextcloud/apps/previewgenerator
167+
chown -R www-data: /var/www/nextcloud/apps/previewgenerator
164168
ncc app:enable previewgenerator
165169

166170
# previews
@@ -174,11 +178,17 @@ EOF
174178

175179
# other
176180
ncc config:system:set overwriteprotocol --value=https
181+
ncc config:system:set overwrite.cli.url --value="https://nextcloudpi/"
182+
ncc config:system:set trusted_domains "${TRUSTED_DOMAINS[nc_domain]}" --value="nextcloudpi"
177183

178184
# TODO temporary workaround for https://github.com/nextcloud/server/pull/13358
179185
ncc -n db:convert-filecache-bigint
180186
ncc db:add-missing-indices
181187

188+
# Default trusted domain (only from ncp-config)
189+
test -f /usr/local/bin/nextcloud-domain.sh && {
190+
test -f /.ncp-image || bash /usr/local/bin/nextcloud-domain.sh
191+
}
182192
echo "NC init done"
183193
}
184194

bin/ncp/CONFIG/nc-nextcloud.sh

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,26 @@ EOF
200200
</VirtualHost>
201201
EOF
202202

203+
# for notify_push app in NC21
204+
a2enmod proxy proxy_http proxy_wstunnel
205+
206+
arch="$(uname -m)"
207+
[[ "${arch}" =~ "armv7" ]] && arch="armv7"
208+
cat > /etc/systemd/system/notify_push.service <<EOF
209+
[Unit]
210+
Description = Push daemon for Nextcloud clients
211+
After = mysql.service
212+
213+
[Service]
214+
Environment = PORT=7867
215+
ExecStart = /var/www/nextcloud/apps/notify_push/bin/"${arch}"/notify_push --allow-self-signed /var/www/nextcloud/config/config.php
216+
User=www-data
217+
218+
[Install]
219+
WantedBy = multi-user.target
220+
EOF
221+
[[ -f /.docker-image ]] || systemctl enable notify_push
222+
203223
# some added security
204224
sed -i 's|^ServerSignature .*|ServerSignature Off|' /etc/apache2/conf-enabled/security.conf
205225
sed -i 's|^ServerTokens .*|ServerTokens Prod|' /etc/apache2/conf-enabled/security.conf

bin/ncp/CONFIG/nc-passwd.sh

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,18 @@ configure()
2121
ln -s /data/etc/shadow /etc/shadow
2222
}
2323

24-
# Run cron.php once now to get all checks right in CI.
25-
sudo -u www-data php /var/www/nextcloud/cron.php
26-
2724
# activate NCP
28-
a2ensite ncp nextcloud
29-
a2dissite ncp-activation
30-
bash -c "sleep 1.5 && service apache2 reload" &>/dev/null &
25+
if ! is_ncp_activated; then
26+
# Run cron.php once now to get all checks right in CI.
27+
sudo -u www-data php /var/www/nextcloud/cron.php
28+
29+
a2dissite ncp-activation
30+
a2ensite ncp nextcloud
31+
apachectl -k graceful
32+
33+
# Trusted Domain (local/public IP), also configures notify_push
34+
bash /usr/local/bin/nextcloud-domain.sh
35+
fi
3136
}
3237

3338
install() { :; }

bin/ncp/CONFIG/nc-prettyURL.sh

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,6 @@
88

99

1010

11-
NCDIR=/var/www/nextcloud
12-
OCC="$NCDIR/occ"
13-
1411
install() { :; }
1512

1613
isactive()
@@ -20,30 +17,31 @@ isactive()
2017
[[ $REWRITEBASE != 1 ]]
2118
}
2219

23-
configure()
24-
{
20+
configure()
21+
{
2522
# make sure overwrite.cli.url end with a '/'
26-
local URL="$(ncc config:system:get overwrite.cli.url)"
23+
local URL
24+
URL="$(ncc config:system:get overwrite.cli.url)"
2725
[[ "${URL: -1}" != "/" ]] && ncc config:system:set overwrite.cli.url --value="${URL}/"
2826

29-
[[ $ACTIVE != "yes" ]] && {
30-
sudo -u www-data php "$OCC" config:system:set htaccess.RewriteBase --value=""
31-
sudo -u www-data php "$OCC" maintenance:update:htaccess
27+
if [[ $ACTIVE != "yes" ]]; then
28+
ncc config:system:set htaccess.RewriteBase --value=""
29+
ncc maintenance:update:htaccess
3230
[[ $? -ne 0 ]] && {
3331
echo "There has been an error."
3432
return 1
3533
}
3634
echo "Your cloud does no longer have a pretty domain name."
37-
} || {
38-
sudo -u www-data php "$OCC" config:system:set htaccess.RewriteBase --value="/"
39-
sudo -u www-data php "$OCC" maintenance:update:htaccess
35+
else
36+
ncc config:system:set htaccess.RewriteBase --value="/"
37+
ncc maintenance:update:htaccess
4038
[[ $? -ne 0 ]] && {
4139
echo "There has been an error."
4240
return 1
4341
}
4442
echo "Your cloud now has a pretty domain name."
45-
}
46-
bash -c "sleep 2 && service apache2 reload" &>/dev/null &
43+
fi
44+
apachectl -k graceful
4745
return 0
4846
}
4947

bin/ncp/CONFIG/nc-trusted-domains.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010

1111
configure()
1212
{
13-
[[ "$DOMAIN1" != "" ]] && ncc config:system:set trusted_domains 20 --value="$DOMAIN1"
14-
[[ "$DOMAIN2" != "" ]] && ncc config:system:set trusted_domains 21 --value="$DOMAIN2"
15-
[[ "$DOMAIN3" != "" ]] && ncc config:system:set trusted_domains 22 --value="$DOMAIN3"
13+
[[ "$DOMAIN1" != "" ]] && ncc config:system:set trusted_domains "${TRUSTED_DOMAINS[trusted_domain_1]}" --value="$DOMAIN1"
14+
[[ "$DOMAIN2" != "" ]] && ncc config:system:set trusted_domains "${TRUSTED_DOMAINS[trusted_domain_2]}" --value="$DOMAIN2"
15+
[[ "$DOMAIN3" != "" ]] && ncc config:system:set trusted_domains "${TRUSTED_DOMAINS[trusted_domain_3]}" --value="$DOMAIN3"
1616
}
1717

1818
install(){ :; }

0 commit comments

Comments
 (0)