add faq about remote storage.
This commit is contained in:
parent
9380d92af8
commit
0b86df87c0
2 changed files with 92 additions and 43 deletions
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
|
|
@ -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",
|
||||||
|
|
|
||||||
133
FAQ.md
133
FAQ.md
|
|
@ -1,47 +1,53 @@
|
||||||
|
# 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` |
|
||||||
| YTP_INSTANCE_TITLE | The title of the instance | `empty string` |
|
| YTP_INSTANCE_TITLE | The title of the instance | `empty string` |
|
||||||
| YTP_FILE_LOGGING | Whether to log to file | `false` |
|
| YTP_FILE_LOGGING | Whether to log to file | `false` |
|
||||||
| YTP_DOWNLOAD_PATH | Path to where the downloads will be saved | `/downloads` |
|
| YTP_DOWNLOAD_PATH | Path to where the downloads will be saved | `/downloads` |
|
||||||
| YTP_MAX_WORKERS | How many works to use for downloads | `1` |
|
| YTP_MAX_WORKERS | How many works to use for downloads | `1` |
|
||||||
| YTP_AUTH_USERNAME | Username for basic authentication | `empty string` |
|
| YTP_AUTH_USERNAME | Username for basic authentication | `empty string` |
|
||||||
| YTP_AUTH_PASSWORD | Password for basic authentication | `empty string` |
|
| YTP_AUTH_PASSWORD | Password for basic authentication | `empty string` |
|
||||||
| YTP_CONSOLE_ENABLED | Whether to enable the console | `false` |
|
| YTP_CONSOLE_ENABLED | Whether to enable the console | `false` |
|
||||||
| YTP_REMOVE_FILES | Remove the actual file when clicking the remove button | `false` |
|
| YTP_REMOVE_FILES | Remove the actual file when clicking the remove button | `false` |
|
||||||
| YTP_CONFIG_PATH | Path to where the config files will be stored. | `/config` |
|
| YTP_CONFIG_PATH | Path to where the config files will be stored. | `/config` |
|
||||||
| YTP_TEMP_PATH | Path to where tmp files are stored. | `/tmp` |
|
| YTP_TEMP_PATH | Path to where tmp files are stored. | `/tmp` |
|
||||||
| YTP_TEMP_KEEP | Whether to keep the Individual video temp directory or remove it | `false` |
|
| YTP_TEMP_KEEP | Whether to keep the Individual video temp directory or remove it | `false` |
|
||||||
| YTP_HOST | Which IP address to bind to | `0.0.0.0` |
|
| YTP_HOST | Which IP address to bind to | `0.0.0.0` |
|
||||||
| YTP_PORT | Which port to bind to | `8081` |
|
| YTP_PORT | Which port to bind to | `8081` |
|
||||||
| YTP_LOG_LEVEL | Log level | `info` |
|
| YTP_LOG_LEVEL | Log level | `info` |
|
||||||
| YTP_STREAMER_VCODEC | The video codec to use for in-browser streaming | `libx264` |
|
| YTP_STREAMER_VCODEC | The video codec to use for in-browser streaming | `libx264` |
|
||||||
| YTP_STREAMER_ACODEC | The audio codec to use for in-browser streaming | `aac` |
|
| YTP_STREAMER_ACODEC | The audio codec to use for in-browser streaming | `aac` |
|
||||||
| YTP_ACCESS_LOG | Whether to log access to the web server | `true` |
|
| YTP_ACCESS_LOG | Whether to log access to the web server | `true` |
|
||||||
| YTP_DEBUG | Whether to turn on debug mode | `false` |
|
| YTP_DEBUG | Whether to turn on debug mode | `false` |
|
||||||
| YTP_DEBUGPY_PORT | The port to use for the debugpy debugger | `5678` |
|
| YTP_DEBUGPY_PORT | The port to use for the debugpy debugger | `5678` |
|
||||||
| YTP_EXTRACT_INFO_TIMEOUT | The timeout for extracting video information | `70` |
|
| YTP_EXTRACT_INFO_TIMEOUT | The timeout for extracting video information | `70` |
|
||||||
| YTP_UI_UPDATE_TITLE | Whether to update the title of the page with the current stats | `true` |
|
| YTP_UI_UPDATE_TITLE | Whether to update the title of the page with the current stats | `true` |
|
||||||
| YTP_PIP_PACKAGES | A space separated list of pip packages to install | `empty string` |
|
| YTP_PIP_PACKAGES | A space separated list of pip packages to install | `empty string` |
|
||||||
| YTP_PIP_IGNORE_UPDATES | Do not update the custom pip packages | `false` |
|
| YTP_PIP_IGNORE_UPDATES | Do not update the custom pip packages | `false` |
|
||||||
| YTP_PICTURES_BACKENDS | A comma separated list of pictures urls to use | `empty string` |
|
| YTP_PICTURES_BACKENDS | A comma separated list of pictures urls to use | `empty string` |
|
||||||
| YTP_BROWSER_CONTROL_ENABLED | Whether to enable the file browser actions | `false` |
|
| YTP_BROWSER_CONTROL_ENABLED | Whether to enable the file browser actions | `false` |
|
||||||
| YTP_YTDLP_AUTO_UPDATE | Whether to enable the auto update for yt-dlp | `true` |
|
| YTP_YTDLP_AUTO_UPDATE | Whether to enable the auto update for yt-dlp | `true` |
|
||||||
| YTP_YTDLP_DEBUG | Whether to turn debug logging for the internal `yt-dlp` package | `false` |
|
| YTP_YTDLP_DEBUG | Whether to turn debug logging for the internal `yt-dlp` package | `false` |
|
||||||
| YTP_YTDLP_VERSION | The version of yt-dlp to use. Defaults to latest version | `empty string` |
|
| YTP_YTDLP_VERSION | The version of yt-dlp to use. Defaults to latest version | `empty string` |
|
||||||
| YTP_BASE_PATH | Set this if you are serving YTPTube from sub-folder | `/` |
|
| YTP_BASE_PATH | Set this if you are serving YTPTube from sub-folder | `/` |
|
||||||
| YTP_PREVENT_LIVE_PREMIERE | Prevents the initial youtube premiere stream from being downloaded | `false` |
|
| YTP_PREVENT_LIVE_PREMIERE | Prevents the initial youtube premiere stream from being downloaded | `false` |
|
||||||
| YTP_TASKS_HANDLER_TIMER | The cron expression for the tasks handler timer | `15 */1 * * *` |
|
| YTP_TASKS_HANDLER_TIMER | The cron expression for the tasks handler timer | `15 */1 * * *` |
|
||||||
| YTP_PLAYLIST_ITEMS_CONCURRENCY | The number of playlist items be to processed at same time | `1` |
|
| YTP_PLAYLIST_ITEMS_CONCURRENCY | The number of playlist items be to processed at same time | `1` |
|
||||||
| YTP_TEMP_DISABLED | Disable temp files handling. | `false` |
|
| YTP_TEMP_DISABLED | Disable temp files handling. | `false` |
|
||||||
| YTP_DOWNLOAD_PATH_DEPTH | How many subdirectories to show in auto complete. | `1` |
|
| YTP_DOWNLOAD_PATH_DEPTH | How many subdirectories to show in auto complete. | `1` |
|
||||||
|
|
||||||
# Browser extensions & bookmarklets
|
# Browser extensions & bookmarklets
|
||||||
|
|
||||||
|
|
@ -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.**
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue