Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/drkno/cloudmount
Mount a remote drive for streaming. Uses a combination of rclone, plexdrive and cloudplow to get optimal streaming performance.
https://github.com/drkno/cloudmount
mount plex plexdrive rclone
Last synced: 6 days ago
JSON representation
Mount a remote drive for streaming. Uses a combination of rclone, plexdrive and cloudplow to get optimal streaming performance.
- Host: GitHub
- URL: https://github.com/drkno/cloudmount
- Owner: drkno
- License: mit
- Created: 2020-05-16T10:23:04.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-03-19T09:18:41.000Z (over 1 year ago)
- Last Synced: 2024-11-03T23:34:41.282Z (8 days ago)
- Topics: mount, plex, plexdrive, rclone
- Language: Shell
- Homepage:
- Size: 283 KB
- Stars: 13
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CloudMount
Mount a remote drive for streaming. Uses of `rclone` with overlay and caching to get optimal streaming performance.
# Setup
### Create rclone configuration
Run `docker run -it --rm -v ./config:/config drkno/cloudmount:latest rclone_setup` to [setup rclone](https://rclone.org/docs/), where `./config` reflects where you want configuration files to live.
## Configuration Options
Configuration lives in `/config/cloudplow.json`, a default `cloudplow.json` will be created start if none is present.
| Configuration Option | Default Value | Description |
|------------------------------------------|----------------|--------------------------------|
| PGID | _empty_ | User GID to run as. |
| PUID | _empty_ | User UID to run as. |
| PLEX_URL | _empty_ | The PMS to empty the trash of. |
| PLEX_TOKEN | _empty_ | The user token for the PMS. |
| BUFFER_SIZE | `500M` | Buffer size to use when uploading / moving files |
| MAX_READ_AHEAD | `30G` | The maximum number of bytes that can be prefetched for sequential reads. |
| CHECKERS | `16` | Number of checkers to run in parallel when moving/uploading. |
| RCLONE_ENDPOINT | `gd-crypt:` | Raw cloud endpoint for the remote drive. |
| MAX_CACHE_FILES | `100` | Max size of the offline file cache in GB. |
| RMDELETETIME | `0 6 * * *` | Cron expression defining when to delete local copies of files. `0 0 31 2 0` disables local deletions. |## Usage
### CLI
```bash
docker run \
--name cloudmount \
-v ./config:/config:shared \
-p 5572:5572/tcp \
--privileged \
--cap-add=MKNOD \
--cap-add=SYS_ADMIN \
--device=/dev/fuse \
drkno/cloudmount:latest
```### Docker Compose
```yaml
version: '3.4'
services:
cloudmount:
container_name: cloudmount
image: drkno/cloudmount:latest
restart: unless-stopped
privileged: true
cap_add:
- MKNOD
- SYS_ADMIN
environment:
- TZ=Australia/Sydney
volumes:
- /etc/localtime:/etc/localtime:ro
- ./config:/config:shared
devices:
- /dev/fuse
ports:
- 5572:5572/tcp
```### Rclone RCD GUI
By default this container starts the [rclone rcd GUI](https://rclone.org/gui/) on port 5572 *with no authentication*.
It is expected that this GUI will either not be exposed or [run behind an SSO](https://github.com/drkno/PlexSSOv2).## Building
```bash
docker build -t drkno/cloudmount:latest .
```