WebDAV mit RClone
WebDAV mit Rclone
Rclone ist ein einfaches Binärprogramm. Es ist in der Programmiersprache 'Go' programmiert und ist vom klassischen 'rsync' beeinflusst.
Rclone kann Dateien über verschiedene Netzwerkprotokolle kopieren und sychronisieren, und es enthält auch Server-Funktionalität. Hier nutzen wir es als WebDAV-Server.
Rclone ist als Paket in der Debian-Distribution verfügbar und auf den Hostsharing-Servern vorinstalliert. In Debian 12 ist die Version 'rclone v1.60.1-DEV' enthalten. Für den Betrieb als Server im Webspace sollte man 128 MB RAM-Kontigent für diesen Dienst einplanen.
Wir können ad hoc sehr einfach einen WebDAV-Server starten:
mkdir $HOME/data rclone serve webdav $HOME/data --addr 127.0.0.1:38246 --user test --pass kein-gutes-passwort
Den 'rclone'-Befehl brechen wir zunächst mit 'Ctrl-C' wieder ab.
Dann müssen wir eine Domain beim User aufschalten und die '.htaccess'-Datei erstellen, damit der WebDAV-Server über https/Port 443 erreichbar wird.
Für die Domain 'webdav.hs-example.de' wäre die .htaccess im Verzeichnis '$HOME/doms/webdav.hs-example.de/htdocs-ss/' mit dem oben gewählten Port '38246':
DirectoryIndex disabled RewriteEngine On RewriteBase / RewriteRule .* http://127.0.0.1:38246%{REQUEST_URI} [proxy] RequestHeader set X-Forwarded-Proto "https"
Damit 'rclone' als Dienst läuft, erstellen wir eine Datei 'rclone.service' im Verzeichnis '$HOME/.config/systemd/user/' mit dem Inhalt:
[Unit] Description=Rclone WebDAV Service [Service] Environment="UMASK=0022" ExecStart=/usr/bin/rclone serve webdav %h/data --addr 127.0.0.1:38246 --htpasswd %h/etc/htpasswd Restart=always [Install] WantedBy=default.target
Hier wird eine Datei '$HOME/etc/htpasswd' für die WebDAV-Accounts benutzt. Diese Datei können wir wie folgt mit einem Account 'webdav' und Passwort 'geheim' anlegen:
htpasswd -cb $HOME/etc/htpasswd webdav geheim chmod 600 $HOME/etc/htpasswd
Den Dienst aktivieren und starten:
systemctl --user daemon-reload systemctl --user start rclone.service systemctl --user enable rclone.service