From 00aae109b0e0271771a89af68540709a1fe1026a Mon Sep 17 00:00:00 2001 From: Roman Date: Fri, 25 Sep 2026 16:01:03 +0000 Subject: [PATCH] =?UTF-8?q?D=C3=A9ploiement=20Podman=20:=20variante=20comp?= =?UTF-8?q?ose=20(socket=20podman=20pour=20Watchtower)=20+=20doc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 31 +++++++++++++++++++++-- docker-compose.podman.yml | 52 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+), 2 deletions(-) create mode 100644 docker-compose.podman.yml diff --git a/README.md b/README.md index 27db327..35e90c2 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ regarder et télécharger des animes et séries VOSTFR/VF. ## Déploiement (Docker) — recommandé Le déploiement officiel passe par Docker Compose : l'image (ffmpeg inclus) est -hébergée sur le **registre privé du Gitea** — rien n'est publié publiquement. +hébergée sur le **registre du Gitea** — un compte y est requis, même en lecture. ### Installation guidée (recommandée) @@ -36,7 +36,34 @@ docker compose up -d ``` Puis ouvrir http://localhost:8777 — le **premier compte créé est administrateur**. -Les données (`data/`, `downloads/`) sont montées en volumes : elles survivent aux +Les données (`data/`, `downloads/`) sont montées en volumes : elles survivent aux mises à jour. + +### Variante Podman + +Même déploiement via `docker-compose.podman.yml` (socket Podman pour Watchtower, +au lieu du socket Docker) : + +```bash +# 0. Socket Podman (une seule fois) — rootless : +systemctl --user enable --now podman.socket +sudo loginctl enable-linger $USER # persister après déconnexion +export PODMAN_SOCKET=/run/user/$(id -u)/podman/podman.sock +# rootful : sudo systemctl enable --now podman.socket (aucun export nécessaire) + +# 1. Récupérer le projet puis se connecter au registre (compte Gitea requis) +git clone https://git.lanro.eu/Roman/ohm_streaming.git && cd ohm_streaming +podman login git.lanro.eu + +# 2. Configuration locale (identique à Docker) +cp .env.example .env # → OHM_SECRET_KEY et WATCHTOWER_TOKEN obligatoires + +# 3. Démarrage +podman compose -f docker-compose.podman.yml up -d +# (« podman compose » délègue à docker-compose ; sinon : podman-compose) +``` + +La mise à jour depuis la page Admin (bouton Watchtower) fonctionne à l'identique ; +à la main : `podman compose -f docker-compose.podman.yml pull && podman compose -f docker-compose.podman.yml up -d`. ### Bibliothèque Plex / Sonarr existante diff --git a/docker-compose.podman.yml b/docker-compose.podman.yml new file mode 100644 index 0000000..17db086 --- /dev/null +++ b/docker-compose.podman.yml @@ -0,0 +1,52 @@ +# Déploiement OhmStreaming sous Podman — variante de docker-compose.yml +# +# 1. Activer le socket Podman (une seule fois) : +# rootless : systemctl --user enable --now podman.socket +# sudo loginctl enable-linger $USER # persister après déconnexion +# export PODMAN_SOCKET=/run/user/$(id -u)/podman/podman.sock +# rootful : sudo systemctl enable --now podman.socket +# 2. cp .env.example .env && $EDITOR .env (OHM_SECRET_KEY + WATCHTOWER_TOKEN obligatoires) +# 3. podman login git.lanro.eu (compte Gitea requis, même en lecture) +# 4. podman compose -f docker-compose.podman.yml up -d +# (ou podman-compose -f docker-compose.podman.yml up -d) +# +# Mise à jour : page Admin → « Mise à jour », ou manuellement : +# podman compose -f docker-compose.podman.yml pull && podman compose -f docker-compose.podman.yml up -d + +services: + ohm: + image: git.lanro.eu/roman/ohm_streaming:latest + restart: unless-stopped + ports: + - "${OHM_PORT:-8777}:8777" + env_file: .env + environment: + # Chemins internes (volumes ci-dessous) — ne pas changer + OHM_DATA_DIR: /data + OHM_DOWNLOAD_DIR: /downloads + OHM_DATABASE_PATH: /data/ohm.db + # Watchtower compagnon sur le réseau interne compose + OHM_WATCHTOWER_URL: http://watchtower:8080 + OHM_WATCHTOWER_TOKEN: ${WATCHTOWER_TOKEN:?WATCHTOWER_TOKEN manquant — voir .env.example} + volumes: + # Fedora/SELinux : suffixer de « :z » en cas d'erreur « Permission denied » + - ./data:/data + - ./downloads:/downloads + + # Compagnon de mise à jour : recrée le conteneur ohm quand l'admin le demande + # (API HTTP interne uniquement, aucun port publié sur l'hôte) + watchtower: + image: containrrr/watchtower + restart: unless-stopped + volumes: + # Socket Podman (compatible API Docker) au lieu de /var/run/docker.sock + - ${PODMAN_SOCKET:-/run/podman/podman.sock}:/var/run/docker.sock + environment: + # Pas de vérification périodique : uniquement sur appel de l'admin + WATCHTOWER_HTTP_API_UPDATE: "true" + WATCHTOWER_HTTP_API_TOKEN: ${WATCHTOWER_TOKEN:?WATCHTOWER_TOKEN manquant — voir .env.example} + # Ne mettre à jour que les conteneurs étiquetés (ohm), pas watchtower lui-même + WATCHTOWER_LABEL_ENABLE: "true" + # Pas de DOCKER_API_VERSION : Podman annonce lui-même la version d'API + # Supprimer les anciennes images après mise à jour + WATCHTOWER_CLEANUP: "true"