Installation et Configuration d'AllTube Download avec Docker
AllTube Download est une interface web permettant de télécharger des vidéos à partir de plus de 1000 plateformes, notamment YouTube ou Dailymotion, en s'appuyant sur l'outil en ligne de commande youtube-dl. Ce guide présente une méthode robuste pour déployer AllTube via Docker, offrant une solution modulaire, facile à gérer et portable.
Pourquoi utiliser Docker pour AllTube Download ?
Le conteneurisation apporte plusieurs avantages clés :
- Reproductibilité : garantit un environnement identique quel que soit l'hôte
- Déploiement rapide : mise en service en quelques minutes
- Isolation : aucun conflit avec les services système
- Maintenance simplifiée : mises à jour et sauvegardes centralisées
- Portabilité : fonctionne sur Linux, macOS et Windows
Démarrage rapide : Trois méthodes de déploiement
Méthode 1 : Lancement direct avec Docker
Utilisez l'image officielle depuis Docker Hub :
docker run -d \
--name alltube-server \
-p 8080:80 \
-v ./alltube-config:/var/www/html/config \
-v ./alltube-downloads:/var/www/html/downloads \
rudloff/alltube:latest
Méthode 2 : Déploiement avec Docker Compose (recommandé)
Créez un fichier docker-compose.yml pour orchestrer le service :
version: '3.9'
services:
video-downloader:
image: rudloff/alltube:latest
container_name: alltube-app
restart: unless-stopped
ports:
- "8080:80"
volumes:
- ./config:/var/www/html/config
- ./downloads:/var/www/html/downloads
- ./cache-templates:/var/www/html/templates_c
environment:
- CONVERT=1
- PHP_MAX_EXECUTION_TIME=600
- PHP_MEMORY_LIMIT=256M
networks:
- web-tier
networks:
web-tier:
driver: bridge
Lancez ensuite le conteneur :
docker-compose up -d
Méthode 3 : Construction personnalisée depuis les sources
Pour personnaliser l'image, clonez le dépôt et construisez localement :
git clone https://github.com/rg3/youtube-dl.git
git clone https://github.com/Rudloff/alltube.git
cd alltube
docker build -t custom-alltube:edge .
docker run -d -p 8080:80 custom-alltube:edge
Configuration avancée du conteneur
Fichiers de configuration principaux
Le cœur de la configuration se trouve dans config/config.yml. Copiez le modèle par défaut :
mkdir -p config
cp config.example.yml config/config.yml
Variables d'environnement utiles
| Variable | Valeur par défaut | Description |
|---|---|---|
| CONVERT | 1 | Active la conversion audio/vidéo (ex : MP3) |
| PHP_MAX_EXECUTION_TIME | 30 | Délai maximal d'exécution PHP en secondes |
| DEBUG | false | Affiche les erreurs détaillées si activé |
Gestion des volumes persistants
Assurez la persistance des données criitques :
volumes:
- ./config:/var/www/html/config # Paramètres
- ./downloads:/var/www/html/downloads # Fichiers téléchargés
- ./cache-templates:/var/www/html/templates_c # Cache Smarty
- ./logs:/var/log/apache2 # Journaux d'accès et erreurs
Interface utilisateur et expérience client
L'interface web d'AllTube privilégie la simplicité :
- Champ principle pour coller l’URL vidéo
- Bouton de téléchargement centralisé
- Liste des sites supportés accessible via l’icône d’engrenage
- Design responsive compatible mobile
Le flux utilisateur est minimaliste : copier → coller → télécharger.
Optimisations et sécurité
Amélioration des performances
Modifiez config/config.yml pour activer le cache :
cache:
type: file
path: /var/www/html/cache
ttl: 7200 # Durée de vie du cache en secondes
download:
max_size: 4GB
timeout: 600
retry_attempts: 5
Sécurité renforcée
Restreignez l’accès et protégez les communications :
security:
allowed_ips:
- 192.168.0.0/16
force_https: true
rate_limit:
enabled: true
max_requests: 200
window_seconds: 3600
Exemple de configuration Nginx en reverse proxy
server {
listen 80;
server_name dl.votre-domaine.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_types text/plain text/css application/json application/javascript;
}
Maintenance quotidienne
Commandes utiles
# Vérifier l'état du conteneur
docker ps -f name=alltube-app
# Consulter les logs
docker logs alltube-app --tail 100
# Accéder au shell interne
docker exec -it alltube-app sh
# Redémarrer après modification
docker restart alltube-app
# Mettre à jour l'image
docker-compose pull && docker-compose up -d
Stratégie de sauvegarde
Automatisez les sauvegardes régulières :
#!/bin/bash
BACKUP_DIR="/backups/alltube/$(date +%Y-%m-%d)"
mkdir -p "$BACKUP_DIR"
# Sauvegarde des configurations
tar -czf "$BACKUP_DIR/config.tar.gz" ./config/
# Sauvegarde incrémentielle des téléchargements
rsync -a --delete ./downloads/ "$BACKUP_DIR/downloads/"
Surveillance des ressources
# Afficher l'utilisation CPU/Mémoire
docker stats alltube-app
# Vérifier l’état de santé
docker inspect --format='{{json .State.Health}}' alltube-app
# Limiter l’allocation mémoire
docker update --memory="1g" --memory-swap="2g" alltube-app
Résolution des problèmes courants
Conteneur qui ne démarre pas
Analysez les logs et vérifiez les permissions :
docker logs alltube-app
sudo chown -R www-data:www-data templates_c/
Téléchargements lents
- Vérifiez la bande passante réseau
- Testez depuis un autre réseau
- Activez un proxy si nécesaire
Formats non pris en charge
Metropolitan youtube-dl à jour ou testez différentes options de sortie via l’interface.
Intégrations et déploiements évolués
Utilisation avec un NAS Synology
Adaptez les chemins selon l’arborescence DSM :
volumes:
- /volume1/docker/alltube/config:/var/www/html/config
- /volume1/video/téléchargés:/var/www/html/downloads
environment:
- TZ=Europe/Paris
Déploiement en cluster avec Kubernetes
Utilisez Helm ou un déploiement stateful pour scalabilité.
Scripts d’automatisation
Créez un script de mise à jour automatisée avec gestion des erreurs et notifications.
Bonnes pratiques
- Mettez à jour régulièrement l’image Docker
- Activez HTTPS via Let’s Encrypt
- Planifiez des sauvegardes automatiques
- Surveillez les logs et alertes
- Appliquez des limites de ressources adaptées
Ressources utiles
Consultez les fichiers suivants dans le dépôt source :
Dockerfile: construction de l'imageconfig/config.example.yml: modèle de configurationtemplates/: structure de l’interfacei18n/: fichiers de traduction