diff --git a/README.md b/README.md
index 653d51e8..2fbaf806 100644
--- a/README.md
+++ b/README.md
@@ -99,13 +99,13 @@ RUST_LOG=debug cargo run
- Search across files and folders
- Favorites and recent files
- Responsive grid/list views
+- WebDAV support for desktop and mobile sync
## What's Next
I'm working on these when I have time:
- File sharing via links
-- WebDAV for desktop sync
- Basic versioning
- Mobile app improvements
diff --git a/static/profile.html b/static/profile.html
index 682e36e8..d6c8bcd5 100644
--- a/static/profile.html
+++ b/static/profile.html
@@ -208,6 +208,23 @@
Storage
+
+
+
WebDAV Connection
+
+ Connect your desktop or mobile device to OxiCloud using WebDAV for seamless file synchronization.
+
+
+
+
+
+
Change Password
@@ -240,6 +257,10 @@ Change Password
return { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' };
}
+function getWebDAVUrl() {
+ return window.location.protocol + '//' + window.location.host + '/webdav/';
+}
+
function formatBytes(bytes) {
if (bytes === 0) return '0 B';
const k = 1024, sizes = ['B', 'KB', 'MB', 'GB', 'TB'];
@@ -302,6 +323,9 @@ Change Password
bar.className = 'storage-fill ' + (pct > 90 ? 'red' : pct > 70 ? 'orange' : 'green');
document.getElementById('p-storage-text').textContent = formatBytes(used) + ' / ' + (quota > 0 ? formatBytes(quota) : 'Unlimited');
+ // WebDAV URL
+ document.getElementById('webdav-url').textContent = getWebDAVUrl();
+
// Hide change password for OIDC-only users
if (user.auth_provider && user.auth_provider !== 'local') {
document.getElementById('password-section').style.display = 'none';
@@ -377,6 +401,31 @@ Change Password
return false;
}
+function copyWebDAVUrl() {
+ const statusEl = document.getElementById('webdav-copy-status');
+
+ navigator.clipboard.writeText(getWebDAVUrl()).then(() => {
+ // Create success message safely
+ const alertDiv = document.createElement('div');
+ alertDiv.className = 'alert alert-success';
+ alertDiv.innerHTML = ' ';
+ const successText = document.createTextNode('WebDAV URL copied to clipboard');
+ alertDiv.appendChild(successText);
+ statusEl.innerHTML = '';
+ statusEl.appendChild(alertDiv);
+ setTimeout(() => { statusEl.innerHTML = ''; }, 3000);
+ }).catch(err => {
+ // Create error message safely to prevent XSS
+ const alertDiv = document.createElement('div');
+ alertDiv.className = 'alert alert-error';
+ alertDiv.innerHTML = ' Failed to copy: ';
+ const errorText = document.createTextNode(err.message);
+ alertDiv.appendChild(errorText);
+ statusEl.innerHTML = '';
+ statusEl.appendChild(alertDiv);
+ });
+}
+
init();
+
+
+
+
+
+
+
+
WebDAV Setup Guide
+
+ WebDAV allows you to connect your OxiCloud storage to your computer or mobile device
+ as if it were a local drive. Access your files from any WebDAV-compatible application,
+ including File Explorer (Windows), Finder (macOS), and many mobile apps.
+
+
+
+
+
Quick Setup
+
Select your platform to see step-by-step instructions:
+
+
+
+
+
+
+
Windows Setup
+
+
Method 1: Add Network Location
+
+ - Open File Explorer
+ - Right-click on This PC and select Add a network location
+ - Click Next
+ - Select Choose a custom network location and click Next
+ - Enter your WebDAV URL (shown above)
+ - Enter your OxiCloud username and password when prompted
+ - Give the connection a name (e.g., "OxiCloud")
+ - Click Finish
+
+
+
Method 2: Map Network Drive
+
+ - Open File Explorer
+ - Click This PC in the left sidebar
+ - Click Map network drive in the toolbar
+ - Choose a drive letter
+ - Enter your WebDAV URL
+ - Check Connect using different credentials
+ - Click Finish and enter your credentials
+
+
+
+
+
+ If connection fails, you may need to enable Basic Authentication.
+ Open Registry Editor and navigate to:
+ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters
+ Set BasicAuthLevel to 2 and restart the WebClient service.
+
+
+
+
+
+
+
macOS Setup
+
+
Using Finder
+
+ - Open Finder
+ - From the menu bar, click Go → Connect to Server (or press Cmd + K)
+ - Enter your WebDAV URL (shown above)
+ - Click Connect
+ - Enter your OxiCloud username and password
+ - Click Connect again
+
+
Your OxiCloud storage will appear as a mounted drive in Finder's sidebar.
+
+
+
+
+
Linux Setup
+
+
GNOME (Nautilus/Files)
+
+ - Open Files (Nautilus)
+ - Press Ctrl + L to show the location bar
+ - Enter:
davs://[your-server]/webdav/
+ - Press Enter
+ - Enter your credentials when prompted
+
+
+
KDE (Dolphin)
+
+ - Open Dolphin
+ - In the address bar, enter:
webdavs://[your-server]/webdav/
+ - Enter your credentials when prompted
+
+
+
Command Line (davfs2)
+
# Install davfs2
+sudo apt-get install davfs2
+
+# Create mount point
+sudo mkdir /mnt/oxicloud
+
+# Mount WebDAV
+sudo mount -t davfs https://[your-server]/webdav/ /mnt/oxicloud
+
+
+
+
+
Mobile Setup
+
+
iOS
+
+ iOS doesn't have native WebDAV support in Files app. Use a third-party app like:
+
+
+ - Documents by Readdle (free)
+ - FE File Explorer (free with in-app purchases)
+ - WebDAV Navigator (paid)
+
+
+ In any of these apps, add a new connection using your WebDAV URL and credentials.
+
+
+
Android
+
Recommended apps:
+
+ - Solid Explorer — supports WebDAV natively
+ - FX File Explorer — free with WebDAV support
+ - Total Commander with WebDAV plugin
+
+
+ Add a new WebDAV connection in the app's settings using your URL and credentials.
+
+
+
+
+
+
Authentication
+
When connecting to WebDAV, use your OxiCloud credentials:
+
+ - Server URL:
+ - Username: Your OxiCloud username
+ - Password: Your OxiCloud password
+
+
+
+
+ Always use https:// (not http://) to ensure your connection is encrypted.
+
+
+
+
+
+
+
+
+
+
diff --git a/static/webdav-setup.html b/static/webdav-setup.html
new file mode 100644
index 00000000..aa0d74a3
--- /dev/null
+++ b/static/webdav-setup.html
@@ -0,0 +1,305 @@
+
+
+