Πρόσβαση με το webDAV
Υπάρχουν πολλοί τρόποι πρόσβασης στα αρχεία του NextCloud και ένας από αυτούς, όχι η πάντα ή καλύτερη επιλογή, είναι με την βοήθεια του webDAV. Σε αυτό το σημείωμα θα δούμε το πως. Για το γιατί διαβάστε
Βρίσκω την διεύθυνση WebDaV
Θα βρούμε την διεύθυνση του WebDav μέσα απο το nextcloud
κια θα έχει την μορφή
https:/XXX.XXX.XXX/nextcloud/remote.php/dav/files/talos/
. Την αντιγράφουμε για την συνέχεια.
Στην εγκατάσταση μου to nextcloud
είναι προσβάσιμο απο μια διεύθυνση της μορφής https:/XXX.XXX.XXX/nextcloud/
και όχι από μια της μορφής https:/XXX.XXX.XXX/
. Χρησιμοποιώ το ddns της dynu.com/ και SSL. Προσαρμόστε τις οδηγίες ανάλογα με την εγκατάσταση σας.
O εύκολος τρόπος: Gnome accounts
Ο ευκολότερος τρόπος είναι με την βοήθεια του Google accounts. Για την διεύθυνση του server θα δώσω https://XXXX.ΧΧΧ.ΧΧΧ/nextcloud/
Ο χειροκίνητος τρόπος
Ένας εναλλακτικός τρόπος είναι να συνδεθούμε με τον file manager. Για τον nautilus, nemo και το thunar ή διεύθυνση θα είναι davs://ΧΧΧ.ΧΧΧ.ΧΧΧ/nextcloud/remote.php/dav/files/talos/
ενώ για το dolphin θα βάλουμε webdav://ΧΧΧ.ΧΧΧ.ΧΧΧ/nextcloud/remote.php/dav/files/talos/
.
Ο δύσκολος τρόπος
Αν θέλουμε πρόσβαση από το τερματικό θα πρέπει να το κάνουμε mount σε κάποιο κατάλογο. Για ευκολία έφτιαξα το παρακάτω script και το σημείο προσάρτησης είναι στο /mnt/nextcloud
. προσαρμόστε το αλλάζοντας την διεύθυνση και τους κωδικούς και το τρέχουμε.
#!/usr/bin/bash
USERNAME="talos"
NEXTCLOUD_USERNAME="talos"
NEXTCLOUD_PASSWORD="something-secret"
WEBDAV_SERVER="XXXX.ΧΧΧ.ΧΧΧ"
WEBDAV_SERVER_BASE="https://${WEBDAV_SERVER}/nextcloud"
WEBDAV_SERVER_URL="${WEBDAV_SERVER_BASE}/remote.php/dav/files/${NEXTCLOUD_USERNAME}/"
echo "*** Installing davfs2"
cat <<EOF | sudo debconf-set-selections
davfs2 davfs2/suid_file boolean false
EOF
sudo apt install -y davfs2
echo "*** Add user to davfs group (logout required)"
sudo usermod -aG davfs2 "${USERNAME}"
echo "*** Fixing locks: /etc/davfs2/davfs2.conf"
cat <<EOF | sudo tee -a /etc/davfs2/davfs2.conf
# Remove locking for NextCloud
use_locks 0
EOF
echo "*** Create mount point '/mnt/nextcloud/${USERNAME}'"
sudo mkdir -p "/mnt/nextcloud/${USERNAME}"
sudo chown "${USERNAME}:${USERNAME}" "/mnt/nextcloud/${USERNAME}"
echo "Nextcloudav mount point" > "/mnt/nextcloud/${USERNAME}/.info"
echo "*** Create user credentials '${HOME}/.davfs2/secrets'"
mkdir "${HOME}/.davfs2"
sudo cp /etc/davfs2/secrets "${HOME}/.davfs2"
sudo chown "${USERNAME}:${USERNAME}" "${HOME}/.davfs2/secrets"
echo "${WEBDAV_SERVER_URL} ${NEXTCLOUD_USERNAME} ${NEXTCLOUD_PASSWORD}" >> "${HOME}/.davfs2/secrets"
#cat "${HOME}/.davfs2/secrets"
chmod 600 "${HOME}/.davfs2/secrets"
echo "*** Create entry at '/etc/fstab'"
cat <<EOF | sudo tee -a /etc/fstab
# Nextcloud mount point for '${USERNAME}'
${WEBDAV_SERVER_URL} /mnt/nextcloud/${USERNAME} davfs rw,user,uid=${USERNAME},gid=${USERNAME} 0 0
EOF
echo "*** Create systemd user mount"
mkdir -p ${HOME}/.config/systemd/user/
cat << EOF | tee ${HOME}/.config/systemd/user/
[Unit]
Description=Mount nextcloud data
After=network-online.target
Wants=network-online.target
[Mount]
What=${WEBDAV_SERVER_URL}${USERNAME}/
Where=/mnt/nextcloud/${USERNAME}
Type=davfs
Options=rw,user,uid=${USERNAME},gid=${USERNAME}
TimeoutSec=20
[Install]
WantedBy=remote-fs.target
WantedBy=multi-user.target
EOF
echo "*** Enable systemd user mount"
systemctl --user daemon-reload
systemctl --user enable mnt-nextcloud-${USERNAME}.mount
systemctl --user start mnt-nextcloud-${USERNAME}.mount
systemctl --user status --no-pager mnt-nextcloud-${USERNAME}.mount
echo "*** Enable systemd user mount autostart"
mkdir -p ${HOME}/.config/autostart
cat << EOF | tee ${HOME}/.config/autostart/NextcloudMount.desktop
[Desktop Entry]
Name=NextcloudDavfs
GenericName=Nextcloud davfs
Exec=systemctl --user start mnt-nextcloud-${USERNAME}.mount
Terminal=false
Icon=nextcloud
Categories=Network
Type=Application
StartupNotify=false
X-GNOME-Autostart-enabled=true
EOF