2.8 KiB
2.8 KiB
Youtarr
Docker deployment for Youtarr, a self-hosted YouTube downloader with metadata for media servers. Run all commands from the repository root.
Current Deployment
- Proxmox LXC:
103(ytd) - Static IP:
10.0.10.14 - Web UI:
http://10.0.10.14:3087 - Caddy backend:
10.0.10.14:3087 - Storage:
/mnt/unas/youtube_downloads
Persistent Data
DOCKERCONFDIR/youtarr/configstores Youtarr configuration.DOCKERCONFDIR/youtarr/jobsstores scheduled job state.DOCKERCONFDIR/youtarr/server/imagesstores thumbnails and cached images.youtarr_db_datastores the bundled MariaDB database.YOUTUBE_OUTPUT_DIRpoints at the shared video library, which should be mounted to the UNASyoutube_downloadsshare.
Installation
-
Create
.envif it does not exist:cp -n .env.sample .env -
Set the required values in
.env:TZ=Africa/Johannesburg PUID=0 PGID=0 DOCKERCONFDIR=/opt/appdata YOUTUBE_OUTPUT_DIR=/mnt/unas/youtube_downloads YOUTARR_HOST_PORT=3087 YOUTARR_DB_ROOT_PASSWORD=<strong-password> DOCKERLOGGING_MAXFILE=3 DOCKERLOGGING_MAXSIZE=10m -
Create the local directories:
mkdir -p /opt/appdata/youtarr/{config,jobs,server/images} chown -R 0:0 /opt/appdata/youtarrIf this stack runs inside a Proxmox LXC, bind-mount
/mnt/unas/youtube_downloadsinto the container before starting Docker. The Proxmox host mounts this share over SMB with/etc/unas-smb-credentialsand maps it to UID/GID0. The dedicated privileged LXC therefore runs Youtarr with upstream's default root UID/GID. -
Render the template:
./substitute_env.sh docker-compose-files/youtarr/template.yaml docker-compose.youtarr.yml .env -
Validate and start the stack:
docker compose -f docker-compose.youtarr.yml config --quiet docker compose -f docker-compose.youtarr.yml up -d -
Open Youtarr at
http://<HOST_IP>:3087.
Apply Configuration Changes
./substitute_env.sh docker-compose-files/youtarr/template.yaml docker-compose.youtarr.yml .env
docker compose -f docker-compose.youtarr.yml up -d
Network Requirements
YOUTARR_HOST_PORT=3087publishes the app on host port3087. The container-side port remains3011, as required by the upstream image, so the Compose mapping is3087:3011(HOST:CONTAINER).- The video output directory must be mounted and writable before the stack starts.
Troubleshooting
- If MariaDB migration errors mention bind-mount corruption, keep the bundled
youtarr_db_datanamed volume instead of switching the database to a host bind mount. - If downloads do not appear, confirm
YOUTUBE_OUTPUT_DIRpoints at the host mount that backs theyoutube_downloadsshare.