Files
ohm_streaming/docker-compose.yml

60 lines
2.6 KiB
YAML

# Déploiement OhmStreaming — https://git.lanro.eu/Roman/ohm_streaming
#
# Installation guidée (recommandée) : ./scripts/install.sh
# Ou à la main :
# 1. cp .env.example .env && $EDITOR .env (OHM_SECRET_KEY + WATCHTOWER_TOKEN obligatoires)
# 2. docker compose up -d
#
# Image par défaut : GHCR (publique). Pour utiliser le registre Gitea à la place :
# OHM_IMAGE=git.lanro.eu/roman/ohm_streaming:latest dans .env (+ docker login git.lanro.eu)
#
# Mise à jour : page Admin → « Mise à jour », ou manuellement :
# docker compose pull && docker compose up -d
services:
ohm:
image: ${OHM_IMAGE:-ghcr.io/aulyriusohm/ohm-streaming:latest}
# Build local (dev) : décommenter ces lignes et commenter « image: » ci-dessus
# build:
# context: .
# args:
# VERSION: dev
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:
- ./data:/data # base SQLite, persiste entre les mises à jour
# Bibliothèque d'épisodes : ./downloads par défaut, ou un dossier de ton
# serveur (script d'install ou à la main). Un dossier VIDE est chowné au
# démarrage par l'entrypoint ; un dossier existant (biblio Plex/Sonarr)
# n'est JAMAIS modifié — les épisodes arrivent rangés par animé :
# /plex_videos/ohm/One Piece/One Piece - E12 (VOSTFR).mp4
- ./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:
- /var/run/docker.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"
# Compatibilité Docker récent (l'image watchtower négocie une API trop ancienne)
DOCKER_API_VERSION: "1.44"
# Supprimer les anciennes images après mise à jour
WATCHTOWER_CLEANUP: "true"