Step 1: install fuse
root@tutorialspots / # sudo apt install fuse Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: fuse 0 upgraded, 1 newly installed, 0 to remove and 51 not upgraded. Need to get 26.0 kB of archives. After this operation, 116 kB of additional disk space will be used. Get:1 http://archive.ubuntu.com/ubuntu focal/main amd64 fuse amd64 2.9.9-3 [26.0 kB] Fetched 26.0 kB in 0s (174 kB/s) Selecting previously unselected package fuse. (Reading database ... 110584 files and directories currently installed.) Preparing to unpack .../fuse_2.9.9-3_amd64.deb ... Unpacking fuse (2.9.9-3) ... Setting up fuse (2.9.9-3) ... update-initramfs: deferring update (trigger activated) Processing triggers for man-db (2.9.1-1) ... Processing triggers for initramfs-tools (0.136ubuntu6.7) ... update-initramfs: Generating /boot/initrd.img-5.15.0-124-generic I: The initramfs will attempt to resume from /dev/md0 I: (UUID=9d09856e-0eee-4bce-a3ac-c762418efd6c) I: Set the RESUME variable to override this.
Step 2: install rclone
root@tutorialspots / # sudo apt install rclone Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: rclone 0 upgraded, 1 newly installed, 0 to remove and 51 not upgraded. Need to get 10.6 MB of archives. After this operation, 42.2 MB of additional disk space will be used. Get:1 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 rclone amd64 1.50.2-2ubuntu0.2 [10.6 MB] Fetched 10.6 MB in 1s (9,697 kB/s) Selecting previously unselected package rclone. (Reading database ... 110575 files and directories currently installed.) Preparing to unpack .../rclone_1.50.2-2ubuntu0.2_amd64.deb ... Unpacking rclone (1.50.2-2ubuntu0.2) ... Setting up rclone (1.50.2-2ubuntu0.2) ... Processing triggers for man-db (2.9.1-1) ...
Step 3: configuration rclone
root@tutorialspots / # rclone config 2024/11/11 11:47:06 NOTICE: Config file "/root/.config/rclone/rclone.conf" not found - using defaults No remotes found - make a new one n) New remote s) Set configuration password q) Quit config name> sb1 Type of storage to configure. Enter a string value. Press Enter for the default (""). Choose a number from below, or type in your own value 1 / 1Fichier \ "fichier" 2 / Alias for an existing remote \ "alias" 3 / Amazon Drive \ "amazon cloud drive" 4 / Amazon S3 Compliant Storage Provider (AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, etc) \ "s3" 5 / Backblaze B2 \ "b2" 6 / Box \ "box" 7 / Cache a remote \ "cache" 8 / Citrix Sharefile \ "sharefile" 9 / Dropbox \ "dropbox" 10 / Encrypt/Decrypt a remote \ "crypt" 11 / FTP Connection \ "ftp" 12 / Google Cloud Storage (this is not Google Drive) \ "google cloud storage" 13 / Google Drive \ "drive" 14 / Google Photos \ "google photos" 15 / Hubic \ "hubic" 16 / JottaCloud \ "jottacloud" 17 / Koofr \ "koofr" 18 / Local Disk \ "local" 19 / Mail.ru Cloud \ "mailru" 20 / Microsoft Azure Blob Storage \ "azureblob" 21 / Microsoft OneDrive \ "onedrive" 22 / OpenDrive \ "opendrive" 23 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH) \ "swift" 24 / Pcloud \ "pcloud" 25 / Put.io \ "putio" 26 / SSH/SFTP Connection \ "sftp" 27 / Transparently chunk/split large files \ "chunker" 28 / Union merges the contents of several remotes \ "union" 29 / Webdav \ "webdav" 30 / Yandex Disk \ "yandex" 31 / http Connection \ "http" 32 / premiumize.me \ "premiumizeme" Storage> webdav ** See help for webdav backend at: https://rclone.org/webdav/ ** URL of http host to connect to Enter a string value. Press Enter for the default (""). Choose a number from below, or type in your own value 1 / Connect to example.com \ "https://example.com" url> https://u111111.your-storagebox.de Name of the Webdav site/service/software you are using Enter a string value. Press Enter for the default (""). Choose a number from below, or type in your own value 1 / Nextcloud \ "nextcloud" 2 / Owncloud \ "owncloud" 3 / Sharepoint \ "sharepoint" 4 / Other site/service or software \ "other" vendor> other User name Enter a string value. Press Enter for the default (""). user> u111111 Password. y) Yes type in my own password g) Generate random password n) No leave this optional password blank y/g/n> y Enter the password: password: Confirm the password: password: Bearer token instead of user/pass (eg a Macaroon) Enter a string value. Press Enter for the default (""). bearer_token> Edit advanced config? (y/n) y) Yes n) No y/n> y Command to run to get a bearer token Enter a string value. Press Enter for the default (""). bearer_token_command> Remote config -------------------- [sb1] url = https://u111111.your-storagebox.de vendor = other user = u111111 pass = *** ENCRYPTED *** -------------------- y) Yes this is OK e) Edit this remote d) Delete this remote y/e/d> y Current remotes: Name Type ==== ==== sb1 webdav e) Edit existing remote n) New remote d) Delete remote r) Rename remote c) Copy remote s) Set configuration password q) Quit config e/n/d/r/c/s/q> q
Step 4: Mount WebDAV:
mkdir /mount/path rclone mount remote_name:path/to/folder /mount/path
Example:
mkdir /mnt/sb1 rclone mount sb1:/ /mnt/sb1
Check:
ls -la /mnt/sb1
Ctrl+C
to stop rclone
Step 5: You can create a service
5.1: create file /etc/systemd/system/rclone-webdav.service
sudo nano /etc/systemd/system/rclone-webdav.service
With content:
[Unit] Description=Mount WebDAV with Rclone After=network-online.target [Service] Type=simple ExecStart=/usr/bin/rclone mount remote_name:path/to/folder /path/to/mount ExecStop=/usr/bin/fusermount -u /path/to/mount Restart=always User=your_username [Install] WantedBy=multi-user.target
Example:
[Unit] Description=Mount WebDAV with Rclone After=network-online.target [Service] Type=simple ExecStart=/usr/bin/rclone mount sb1:/ /mnt/sb1 ExecStop=/usr/bin/fusermount -u /mnt/sb1 Restart=always User=root [Install] WantedBy=multi-user.target
If you want to allow other user (ex: www-data) to use this partion:
[Unit] Description=Mount WebDAV with Rclone After=network-online.target [Service] Type=simple ExecStart=/usr/bin/rclone mount sb1:/ /mnt/sb1 --uid=$(id -u www-data) --gid=$(id -g www-data) --allow-other ExecStop=/usr/bin/fusermount -u /mnt/sb1 Restart=always User=root [Install] WantedBy=multi-user.target
Note: you must do more steps first:
a) sudo chown www-data:www-data /mnt/sb1
b) edit file /etc/fuse.conf
then uncomment line #user_allow_other
5.2:
sudo systemctl enable rclone-webdav sudo systemctl start rclone-webdav