From 816cf39e9b7e3436f508064d7fb058eff82aa435 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Kr=C3=BCger?= Date: Thu, 6 Nov 2025 20:09:34 +0100 Subject: [PATCH] feat: add ffmpeg to Filestash for video transcoding support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added custom Dockerfile to build Filestash with ffmpeg and ffprobe installed, enabling the built-in video transcoding plugin for seamless video playback. Changes: - Created stash/Dockerfile extending machines/filestash:latest - Installed ffmpeg package with apt-get - Updated stash/compose.yaml to build from Dockerfile - Video transcoding plugin will automatically detect ffmpeg presence This enables Filestash to transcode mov, mkv, avi, mpeg, and other video formats for in-browser playback without manual conversion. Note: Enable the video transcoding feature in Filestash admin panel at https://stash.pivoine.art/admin after deployment. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- stash/Dockerfile | 15 +++++++++++++++ stash/compose.yaml | 5 ++++- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 stash/Dockerfile diff --git a/stash/Dockerfile b/stash/Dockerfile new file mode 100644 index 0000000..b9e25cf --- /dev/null +++ b/stash/Dockerfile @@ -0,0 +1,15 @@ +# Add ffmpeg to Filestash for video transcoding support +FROM machines/filestash:latest + +USER root + +# Install ffmpeg and ffprobe +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + ffmpeg \ + && rm -rf /var/lib/apt/lists/* + +USER filestash + +# Verify ffmpeg is installed +RUN ffmpeg -version && ffprobe -version diff --git a/stash/compose.yaml b/stash/compose.yaml index cabf5a4..af31be0 100644 --- a/stash/compose.yaml +++ b/stash/compose.yaml @@ -1,6 +1,9 @@ services: filestash: - image: ${STASH_IMAGE:-machines/filestash:latest} + build: + context: . + dockerfile: Dockerfile + image: filestash-ffmpeg:latest container_name: ${STASH_COMPOSE_PROJECT_NAME}_app restart: unless-stopped volumes: