@@ -20,14 +20,14 @@ install()
20
20
21
21
configure ()
22
22
{
23
- (
23
+
24
24
set -e -o pipefail
25
25
local datadir parentdir encdir tmpdir
26
26
datadir=" $( get_ncpcfg datadir) "
27
27
[[ " ${datadir?} " == " null" ]] && datadir=/var/www/nextcloud/data
28
28
parentdir=" $( dirname " ${datadir} " ) "
29
29
encdir=" ${parentdir?} /ncdata_enc"
30
- tmpdir=" $( mktemp -u -p " ${parentdir} " -t nc-data-crypt.XXXXXX) ) "
30
+ tmpdir=" $( mktemp -u -p " ${parentdir} " -t nc-data-crypt.XXXXXX) "
31
31
32
32
[[ " ${ACTIVE?} " != " yes" ]] && {
33
33
if ! is_active; then
@@ -59,7 +59,7 @@ configure()
59
59
# Just mount already encrypted data
60
60
if [[ -f " ${encdir?} " /gocryptfs.conf ]]; then
61
61
systemctl reset-failed ncp-encrypt || :
62
- systemd-run -u ncp-encrypt -E PASSWORD bash -c " gocryptfs -allow_other -q '${encdir} ' '${datadir} ' <<<\"\$ {PASSWORD}\" 2>&1 | sed /^Switch/d |& tee /var/log/ncp-encrypt.log"
62
+ systemd-run -u ncp-encrypt -E PASSWORD bash -c " gocryptfs -fg - allow_other -q '${encdir} ' '${datadir} ' <<<\"\$ {PASSWORD}\" 2>&1 | sed /^Switch/d |& tee /var/log/ncp-encrypt.log"
63
63
64
64
# switch to the regular virtual hosts after we decrypt, so we can access NC and ncp-web
65
65
a2ensite ncp 001-nextcloud
@@ -72,13 +72,33 @@ configure()
72
72
mkdir -p " ${encdir?} "
73
73
echo " ${PASSWORD?} " | gocryptfs -init -q " ${encdir} "
74
74
save_maintenance_mode
75
+ cleanup () {
76
+ umount " ${datadir} " || :
77
+ [[ -f " ${tmpdir} " ]] && {
78
+ rm -rf " ${datadir?} " || :
79
+ mv " ${tmpdir} " " ${datadir} "
80
+
81
+ chown -R www-data:www-data " ${datadir} "
82
+ }
83
+ }
84
+
85
+ trap cleanup 1
75
86
trap restore_maintenance_mode EXIT
76
87
77
88
mv " ${datadir?} " " ${tmpdir?} "
78
89
79
90
mkdir " ${datadir} "
80
91
systemctl reset-failed ncp-encrypt || :
81
- systemd-run -u ncp-encrypt -E PASSWORD bash -c " gocryptfs -allow_other -q '${encdir} ' '${datadir} ' <<<\"\$ {PASSWORD}\" 2>&1 | sed /^Switch/d |& tee /var/log/ncp-encrypt.log"
92
+ systemd-run -u ncp-encrypt -E PASSWORD bash -c " gocryptfs -fg -allow_other -q '${encdir} ' '${datadir} ' <<<\"\$ {PASSWORD}\" 2>&1 | sed /^Switch/d |& tee /var/log/ncp-encrypt.log"
93
+
94
+ maxtries=5
95
+ while [[ " $( systemctl is-active ncp-encrypt) " != " active" ]] || ! mount | grep -1 " ${datadir} "
96
+ do
97
+ echo " Wating for encryption process to start... (${maxtries} )"
98
+ sleep 3
99
+ maxtries=$(( maxtries - 1 ))
100
+ [[ $maxtries -gt 0 ]] || return 1
101
+ done
82
102
83
103
echo " Encrypting data..."
84
104
mv " ${tmpdir} " /* " ${tmpdir} " /.[! .]* " ${datadir} "
@@ -88,7 +108,7 @@ configure()
88
108
set_ncpcfg datadir " ${datadir} "
89
109
90
110
echo " Data is now encrypted"
91
- )
111
+
92
112
}
93
113
94
114
# License
0 commit comments