Fix permissions issue for WSL2 and rootless containers

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 <noreply@anthropic.com>
main
Raynoxis 2 months ago
parent 0ad2e22cd0
commit 1fcf32223e

@ -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

1
.gitignore vendored

@ -14,6 +14,7 @@ build/
# Downloads
downloads/
downloads.old/
*.mp4
*.mkv
*.webm

@ -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/

@ -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:

Loading…
Cancel
Save