Aller au contenu principal

Installation avec Docker

Ygégé est disponible sous forme d'image Docker officielle multi-architecture. Ce guide explique comment déployer et configurer le service.

Prérequis

Installation rapide

Avec Docker Run

docker run -d \
--name ygege \
-p 8715:8715 \
uwucode/ygege:latest

Avec Docker Compose

Créez un fichier compose.yml:

services:
ygege:
image: uwucode/ygege:latest
container_name: ygege
restart: unless-stopped
ports:
- "8715:8715"
environment:
LOG_LEVEL: "info"
# TMDB_TOKEN: "votre_token_tmdb" # Optionnel
# USE_TOR: "true" # Optionnel : activer Tor
# TOR_PROXY: "127.0.0.1:9050" # Optionnel : proxy Tor alternatif
healthcheck:
test: ["CMD-SHELL", "curl --fail http://localhost:$${BIND_PORT:-8715}/health || exit 1"]
interval: 1m30s
timeout: 20s
retries: 3
start_period: 10s

Puis démarrez le service:

docker compose up -d

Configuration

Avec fichier config.json

Créez un fichier config.json et montez-le en lecture seule:

{
"bind_ip": "0.0.0.0",
"bind_port": 8715,
"log_level": "info",
"tmdb_token": null,
"use_tor": false,
"tor_proxy": "127.0.0.1:9050"
}

Avec variables d'environnement

Les variables suivantes sont supportées:

VariableDescriptionDéfaut
BIND_IPAdresse IP d'écoute0.0.0.0
BIND_PORTPort d'écoute8715
LOG_LEVELNiveau de log (trace, debug, info, warn, error)info
TMDB_TOKENToken API TMDB (optionnel)-
USE_TORActiver le routage Tor (optionnel)false
TOR_PROXYAdresse du proxy SOCKS5 Tor (optionnel)127.0.0.1:9050

Tags Docker disponibles

TagDescription
latestDernière version stable
stableAlias de latest
noupxVersion sans compression UPX (pour Synology)
0.6.2Version spécifique
developVersion de développement

Pour les systèmes avec architectures anciennes

Si vous rencontrez des erreurs de segmentation (segfault) sur des architectures anciennes ou certains NAS (comme Synology), utilisez l'image noupx:

services:
ygege:
image: uwucode/ygege:noupx
# ... reste de la configuration

Vérification

Une fois le conteneur démarré, vérifiez qu'il fonctionne:

curl http://localhost:8715/health

Vous devriez recevoir une réponse OK.

Sécurité

Utilisateur non-root

L'image Docker Ygégé s'exécute par défaut avec un utilisateur non-root (UID 10001) pour des raisons de sécurité. Cela garantit:

  • ✅ Compatibilité avec les politiques de sécurité Docker et Kubernetes
  • ✅ Protection contre les escalades de privilèges
  • ✅ Conformité aux meilleures pratiques de sécurité des conteneurs

Gestion des permissions

Ygégé ne nécessite pas de volume persistant pour les sessions puisque le tracker est public.

Exécution avec un UID personnalisé

Si vous souhaitez exécuter le conteneur avec un UID/GID spécifique (par exemple pour correspondre à votre utilisateur hôte):

docker run -d \
--name ygege \
--user 1000:1000 \
-p 8715:8715 \
-v ./config:/app/sessions \
-v ./config.json:/app/config.json \
uwucode/ygege:latest

Ou avec Docker Compose:

services:
ygege:
image: uwucode/ygege:latest
user: "1000:1000" # Votre UID:GID
# ... reste de la configuration
astuce

Assurez-vous que les volumes montés ont les permissions appropriées pour l'utilisateur spécifié:

sudo chown -R 1000:1000 ./config

Exécution en root (non recommandé)

Avertissement de sécurité

L'exécution en root n'est pas recommandée et peut présenter des risques de sécurité. Utilisez cette option uniquement si vous comprenez les implications.

Si vous devez absolument exécuter le conteneur en root:

Docker Run:

docker run -d \
--name ygege \
--user 0:0 \
-p 8715:8715 \
uwucode/ygege:latest

Docker Compose:

services:
ygege:
image: uwucode/ygege:latest
container_name: ygege
user: "0:0" # Root
restart: unless-stopped
ports:
- "8715:8715"

Avec cette configuration, vous n'aurez plus de problèmes de permissions, mais vous perdez les avantages de sécurité du mode non-root.

Prochaines étapes