Files
xtremflow/entrypoint.sh
T
LogiFlowandClaude 2f8f09e12f Enregistrements : droits du dossier compatibles Plex (PUID/PGID), code 243 expliqué (#34)
Sous Unraid, l'entrypoint faisait chmod -R 770 sur le dossier
d'enregistrement : Plex (nobody:users) ne lisait plus les vidéos. Rendre
la lecture à Plex retirait l'écriture au conteneur, et le match suivant
a échoué sur « Erreur FFmpeg code 243 » (EACCES), sans log puisque le
.log ne pouvait pas non plus être créé.

- entrypoint : PUID/PGID (Unraid 99/100) et UMASK (002) ; les droits du
  dossier sont ajoutés, plus jamais retirés ; avertissement au démarrage
  si le dossier reste non inscriptible.
- Serveur : vérification d'écriture avant de lancer FFmpeg, motif clair.
- Codes de sortie FFmpeg courants traduits (243, 8, 228…).
- Dialogue des logs : affiche le message d'erreur du serveur.


Claude-Session: https://claude.ai/code/session_018RD1okqQzNYjujGirBHXpu

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-23 12:09:07 +02:00

42 lines
1.7 KiB
Bash

#!/bin/bash
# Entrypoint script for XtremFlow
# Fixes permissions on mounted volumes before starting the server
set -e
# PUID/PGID : faire tourner le serveur sous l'UID/GID de l'hôte (Unraid :
# 99/100 = nobody:users, comme Plex). Les enregistrements appartiennent alors
# au même utilisateur que les autres applis du partage.
if [ -n "$PGID" ] && [ "$PGID" != "$(id -g xtremuser)" ]; then
echo "Using PGID=$PGID for xtremuser"
groupmod -o -g "$PGID" xtremuser
fi
if [ -n "$PUID" ] && [ "$PUID" != "$(id -u xtremuser)" ]; then
echo "Using PUID=$PUID for xtremuser"
usermod -o -u "$PUID" xtremuser
fi
# Fichiers créés lisibles par tous (Plex, Jellyfin…), groupe en écriture.
umask "${UMASK:-002}"
# Fix ownership of data directory (runs as root initially)
echo "Fixing permissions on /app/data..."
chown -R xtremuser:xtremuser /app/data /tmp/xtremflow_streams 2>/dev/null || true
# Create subdirectories if they don't exist
mkdir -p /app/data/logs /app/data/tmp /app/recordings
chown -R xtremuser:xtremuser /app/data/logs /app/data/tmp /app/recordings 2>/dev/null || true
# Droits ajoutés, jamais retirés : un ancien `chmod 770` ôtait la lecture
# aux autres utilisateurs et Plex ne voyait plus les enregistrements.
chmod -R u+rwX,g+rwX /app/recordings 2>/dev/null || true
if ! gosu xtremuser test -w /app/recordings; then
echo "AVERTISSEMENT: /app/recordings n'est pas accessible en écriture pour" \
"l'UID $(id -u xtremuser) / GID $(id -g xtremuser) : les enregistrements" \
"échoueront. Définir PUID/PGID sur le propriétaire du dossier hôte."
fi
# Drop privileges and run the server as xtremuser
echo "Starting server as xtremuser..."
exec gosu xtremuser "$@"