- Add mounting support

- Fix minor issues
This commit is contained in:
Mukhtar Akere
2025-08-04 16:57:09 +01:00
parent a60d93677f
commit 139249a1f3
25 changed files with 1565 additions and 112 deletions

View File

@@ -2,4 +2,5 @@
- [Setting up with Rclone](rclone.md)
- [Manual Downloading with Decypharr](downloading.md)
- [Manual Downloading with Decypharr](downloading.md)
- [Internal Mounting](internal-mounting.md)

View File

@@ -0,0 +1,142 @@
# Internal Mounting
This guide explains how to use Decypharr's internal mounting feature to eliminate the need for external rclone setup.
## Overview
Instead of requiring users to install and configure rclone separately, Decypharr can now mount your WebDAV endpoints internally using rclone as a library dependency. This provides a seamless experience where files appear as regular filesystem paths without any external dependencies.
## Prerequisites
- **Docker users**: FUSE support may need to be enabled in the container depending on your Docker setup
- **macOS users**: May need [macFUSE](https://osxfuse.github.io/) installed for mounting functionality
- **Linux users**: FUSE should be available by default on most distributions
- **Windows users**: Mounting functionality may be limited
## Configuration
To enable internal mounting, add these fields to your debrid provider configuration:
```json
{
"debrids": [
{
"name": "realdebrid",
"api_key": "YOUR_API_KEY",
"folder": "/mnt/remote/realdebrid",
"use_webdav": true,
"enable_internal_mount": true,
"internal_mount_path": "/mnt/decypharr/realdebrid",
"torrents_refresh_interval": "15s",
"download_links_refresh_interval": "40m",
"auto_expire_links_after": "3d",
"workers": 50
}
]
}
```
### Configuration Options
You can set the options in the Web UI or directly in the configuration file:
#### Note:
Check the Rclone documentation for more details on the available options: [Rclone Mount Options](https://rclone.org/commands/rclone_mount/).
## How It Works
1. **WebDAV Server**: Decypharr starts its internal WebDAV server for enabled providers
2. **Internal Mount**: Rclone libraries are used internally to mount the WebDAV endpoint to a local filesystem path
3. **File Access**: Your applications can access files using regular filesystem paths like `/mnt/decypharr/realdebrid/MyMovie/`
## Benefits
- **Zero External Dependencies**: No need to install or configure rclone separately - it's built into Decypharr
- **Automatic Setup**: Mounting is handled automatically by Decypharr using internal rclone libraries
- **Filesystem Access**: Files appear as regular directories and files
- **Seamless Integration**: Works with existing media servers without changes
## Docker Compose Example
```yaml
version: '3.8'
services:
decypharr:
image: sirrobot01/decypharr:latest
container_name: decypharr
ports:
- "8282:8282"
volumes:
- ./config:/config
- /mnt:/mnt:rshared # Important: use 'shared' for mount propagation
privileged: true # Required for mounting
devices:
- /dev/fuse:/dev/fuse:rwm
cap_add:
- SYS_ADMIN
environment:
- UMASK=002
```
⚠️ **Important Docker Notes:**
- Use `privileged: true` or specific capabilities for mounting
- Mount volumes with `:rshared` to allow mount propagation
- Include `/dev/fuse` device for FUSE mounting
## Troubleshooting
### Mount Failures
If mounting fails, check:
1. **FUSE Installation**:
- **macOS**: Install macFUSE from https://osxfuse.github.io/
- **Linux**: Install fuse package (`apt install fuse` or `yum install fuse`)
- **Docker**: Fuse is already included in the container, but ensure the host supports it
2. **Permissions**: Ensure the application has sufficient privileges
### No Mount Methods Available
If you see "no mount method available" errors:
1. **Check Platform Support**: Some platforms have limited FUSE support
2. **Install Dependencies**: Ensure FUSE libraries are installed
3. **Use WebDAV Directly**: Access files via `http://localhost:8282/webdav/provider/`
4. **External Mounting**: Use OS-native WebDAV mounting as fallback
### Log Messages
Monitor logs for mounting status:
```bash
docker logs decypharr | grep -i mount
```
## Migration from External Rclone
If you're currently using external rclone:
1. **Remove External Rclone**: Uninstall or disable your existing rclone setup
2. **Update Configuration**: Modify rclone configuration to use the internal mount.
3. **Restart Decypharr**: Restart the Decypharr service to apply changes
4. **Verify Mounts**: Check that files are accessible via the new internal mount paths
5. **Test Applications**: Ensure your media applications can access files as expected
6. **Monitor Logs**: Check Decypharr logs for any mount-related messages
## Limitations
- **FUSE Dependency**: Internal mounting requires FUSE support on your system
- **Platform Support**:
- **Linux**: Full support with FUSE
- **macOS**: Requires macFUSE installation
- **Windows**: Limited support
- **Read-Only**: Mounted filesystems are read-only (which is appropriate for debrid content)
- **Startup Delay**: Initial mounting may take a few seconds during startup
- **Fallback**: If mounting fails, files remain accessible via WebDAV interface
## Advanced Configuration
For advanced users, you can customize the rclone mounting behavior by modifying the mount options in the UI. The default configuration prioritizes:
- **Stability**: Conservative caching and timeout settings
- **Resource Usage**: Minimal memory and CPU overhead