From 1fcf32223e67fce573df46d2de1777458ee7de14 Mon Sep 17 00:00:00 2001 From: Raynoxis <34026291+Raynoxis@users.noreply.github.com> Date: Thu, 27 Nov 2025 23:54:02 +0100 Subject: [PATCH] Fix permissions issue for WSL2 and rootless containers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This update prevents the need to run containers with root privileges by properly configuring user permissions. Changes: - Add user: "${UID:-1000}:${GID:-1000}" to docker-compose.yml - Create .env file with UID/GID configuration - Add .env.example template for users - Update .gitignore to exclude downloads.old/ - Add comprehensive troubleshooting section in README.md - Document 3 solutions for permission issues (recommended vs avoid) - Explicitly warn against using user: root This configuration works perfectly with Docker and Docker Compose. For Podman rootless, additional step may be needed: podman unshare chown -R 1000:1000 downloads/ đŸ€– Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .env.example | 10 ++++++++ .gitignore | 1 + README.md | 60 +++++++++++++++++++++++++++++++++++++++++++++- docker-compose.yml | 1 + 4 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 .env.example diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..43e1484 --- /dev/null +++ b/.env.example @@ -0,0 +1,10 @@ +# User ID and Group ID for Docker volume permissions +# This ensures the container runs with your user's permissions +# avoiding the need for root access + +# On Linux/WSL2, use: +# UID=$(id -u) +# GID=$(id -g) + +UID=1000 +GID=1000 diff --git a/.gitignore b/.gitignore index 99982f8..0868ba5 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,7 @@ build/ # Downloads downloads/ +downloads.old/ *.mp4 *.mkv *.webm diff --git a/README.md b/README.md index 0632db1..3c3df60 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,8 @@ cd yt-dlp-Web-Interface docker-compose up -d ``` +**Note pour WSL2** : Un fichier `.env` est inclus pour Ă©viter les problĂšmes de permissions. Le conteneur s'exĂ©cutera avec votre UID/GID au lieu de root. + AccĂ©dez Ă  l'interface : **http://localhost:5001** (ou 5000 si vous utilisez la commande docker run directe) ## 📖 Documentation @@ -130,6 +132,7 @@ services: ytdlp-webinterface: image: raynoxis/yt-dlp-web-interface:latest container_name: ytdlp-webinterface + user: "${UID:-1000}:${GID:-1000}" # ExĂ©cute avec votre UID/GID ports: - "5001:5000" volumes: @@ -146,6 +149,12 @@ services: start_period: 40s ``` +**CrĂ©er un fichier `.env`** pour dĂ©finir UID/GID : +```bash +echo "UID=$(id -u)" > .env +echo "GID=$(id -g)" >> .env +``` + ## 🔐 SĂ©curitĂ© ### Mesures de sĂ©curitĂ© implĂ©mentĂ©es @@ -253,7 +262,56 @@ curl -X POST http://localhost:5000/api/cleanup-all - Certains formats peuvent ne pas ĂȘtre disponibles - Consultez les logs : `docker logs ytdlp-web` -### Erreur de permissions +### Erreur de permissions (WSL2 / Linux) + +**SymptĂŽme** : Erreur serveur 500 lors du tĂ©lĂ©chargement, ou le conteneur ne dĂ©marre pas. + +**Cause** : Le rĂ©pertoire `downloads` appartient Ă  un autre utilisateur (souvent créé par un conteneur root). + +**Solutions** : + +#### ✅ Solution 1 : Utiliser le fichier .env (RecommandĂ©) +Le fichier `.env` est dĂ©jĂ  fourni dans le dĂ©pĂŽt. Il configure le conteneur pour s'exĂ©cuter avec votre UID/GID : + +```bash +# Le fichier .env contient : +UID=1000 +GID=1000 + +# DĂ©marrez simplement avec docker-compose +docker-compose up -d +``` + +#### ✅ Solution 2 : RecrĂ©er le rĂ©pertoire downloads +Si le rĂ©pertoire a de mauvaises permissions : + +```bash +# Renommer l'ancien rĂ©pertoire +mv downloads downloads.old + +# CrĂ©er un nouveau rĂ©pertoire avec les bonnes permissions +mkdir downloads + +# Relancer le conteneur +docker-compose up -d +``` + +#### ✅ Solution 3 : Corriger les permissions (si vous avez sudo) +```bash +# Donner la propriĂ©tĂ© Ă  votre utilisateur +sudo chown -R $(id -u):$(id -g) downloads/ + +# Relancer le conteneur +docker-compose up -d +``` + +#### ❌ À ÉVITER : user: root +N'ajoutez **JAMAIS** `user: root` dans docker-compose.yml : +- ❌ Risque de sĂ©curitĂ© majeur +- ❌ Fichiers tĂ©lĂ©chargĂ©s appartiennent Ă  root +- ❌ Vous ne pouvez pas les supprimer sans sudo + +### Erreur de permissions avec Podman ```bash # Avec Podman, ajuster les permissions du volume podman unshare chown -R 1000:1000 downloads/ diff --git a/docker-compose.yml b/docker-compose.yml index 27455da..1793971 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,6 +4,7 @@ services: ytdlp-webinterface: image: raynoxis/yt-dlp-web-interface:latest container_name: ytdlp-webinterface + user: "${UID:-1000}:${GID:-1000}" ports: - "5001:5000" volumes: