add faq about remote storage.

This commit is contained in:
arabcoders 2025-09-13 16:15:09 +03:00
parent 9380d92af8
commit 0b86df87c0
2 changed files with 92 additions and 43 deletions

View file

@ -30,6 +30,7 @@
"buildcache", "buildcache",
"Cfmrc", "Cfmrc",
"choco", "choco",
"cifs",
"consoletitle", "consoletitle",
"continuedl", "continuedl",
"cookiesfrombrowser", "cookiesfrombrowser",
@ -97,6 +98,7 @@
"multidict", "multidict",
"muxdelay", "muxdelay",
"mweb", "mweb",
"nfsvers",
"nodesc", "nodesc",
"noninteractive", "noninteractive",
"noprogress", "noprogress",

57
FAQ.md
View file

@ -1,10 +1,16 @@
# The origin of the project.
The project first started as a fork [meTube](https://github.com/alexta69/metube), since then it has been completely
rewritten and redesigned. The original project was a great starting point, but it didn't align with my vision for the
project and what i wanted to achieve with it.
# Environment variables # Environment variables
Certain configuration values can be set via environment variables, using the `-e` parameter on the docker command line, Certain configuration values can be set via environment variables, using the `-e` parameter on the docker command line,
or the `environment:` section in `compose.yaml` file. or the `environment:` section in `compose.yaml` file.
| Environment Variable | Description | Default | | Environment Variable | Description | Default |
| ------------------------------ | ------------------------------------------------------------------ | -------------------------- | | ------------------------------ | ------------------------------------------------------------------ | ------------------- |
| TZ | The timezone to use for the application | `(not_set)` | | TZ | The timezone to use for the application | `(not_set)` |
| YTP_OUTPUT_TEMPLATE | The template for the filenames of the downloaded videos | `%(title)s.%(ext)s` | | YTP_OUTPUT_TEMPLATE | The template for the filenames of the downloaded videos | `%(title)s.%(ext)s` |
| YTP_DEFAULT_PRESET | The default preset to use for the download | `default` | | YTP_DEFAULT_PRESET | The default preset to use for the download | `default` |
@ -263,8 +269,49 @@ YTP_PICTURES_BACKENDS=https://watchstate.ip/v1/api/system/images/background?apik
Where `[api_key]` is the api key you get from your WatchState instance. Where `[api_key]` is the api key you get from your WatchState instance.
# The origin of the project. # How to use share folder or external storage as download target?
The project first started as a fork [meTube](https://github.com/alexta69/metube), since then it has been completely You can simply mount the share folder as target for `/downloads` path, but in some cases you might face issues with permissions or
rewritten and redesigned. The original project was a great starting point, but it didn't align with my vision for the cross-device link errors. To avoid these issues, you can mount the share folder as a named volume, and then mount the
project and what i wanted to achieve with it. named volume to `/downloads/smb` or `/downloads/nfs`.
```yaml
services:
ytptube:
user: "${UID:-1000}:${UID:-1000}" # change this to your user id and group id, for example: "1000:1000"
image: ghcr.io/arabcoders/ytptube:latest
container_name: ytptube
restart: unless-stopped
ports:
- "8081:8081"
volumes:
# Config must be mounted locally as read-write sqlite doesn't support network mounts.
- ./config:/config:rw
# Mount a local directory
- ./downloads:/downloads/local:rw
# Mount the NFS share
- nfs-data:/downloads/nfs:rw
# Mount the SMB share
- smb-data:/downloads/smb:rw
tmpfs:
- /tmp
volumes:
nfs-data:
driver: local
driver_opts:
type: nfs
o: addr=10.0.0.3,rw,nfsvers=4 # <--- Change server IP and options
device: ":/exported/path" # <--- Remote NFS path
smb-data:
driver: local
driver_opts:
type: cifs
o: username=my_username,password=my_password,vers=3.0,uid=1000,gid=1000,file_mode=0777,dir_mode=0777 # <--- Change options to fit your needs
device: "//10.0.0.3/public" # <--- Remote SMB path
```
If you prefer, you can bypass YTPTube `download_path` and set it to `/` and completely manage your own mounts. However,
please be aware that the file browser feature will expose whatever `download_path` is set to. **So, if you set it to `/`,
the file browser will expose the entire container filesystem.**