A Docker image that extends LinuxServer.io's Sonarr with transcoding capabilities by adding FFmpeg and MKVToolNix.
- Based on the official LinuxServer.io Sonarr image
- Includes FFmpeg for video/audio transcoding
- Includes MKVToolNix for Matroska file manipulation
- Architecture: linux/amd64
- Automated base image updates via GitHub Actions
- Custom script support with automatic copy mechanism
- Version tracking via VERSION file
- Published to GitHub Container Registry
version: "3.8"
services:
sonarr:
image: ghcr.io/fpeter8/sonarr-transcode:latest
container_name: sonarr
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
volumes:
- /path/to/config:/config
- /path/to/tv:/tv
- /path/to/downloads:/downloads
ports:
- 8989:8989
restart: unless-stopped
docker run -d \
--name=sonarr \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/London \
-p 8989:8989 \
-v /path/to/config:/config \
-v /path/to/tv:/tv \
-v /path/to/downloads:/downloads \
--restart unless-stopped \
ghcr.io/fpeter8/sonarr-transcode:latest
The image includes the following transcoding tools:
ffmpeg
- Video/audio converterffprobe
- Multimedia stream analyzerffplay
- Media player
mkvmerge
- Merge multimedia filesmkvinfo
- Display information about Matroska filesmkvextract
- Extract tracks from Matroska filesmkvpropedit
- Modify properties of Matroska files
latest
- Latest build with the most recent Sonarr version{sonarr_version}
- Specific Sonarr version (e.g.,4.0.14.2939-ls284
){sonarr_version}-{build_number}
- Version with build number (e.g.,4.0.14.2939-ls284-123
)
The image includes an initialization script that copies custom scripts from the config volume to an executable location. This is useful when the config volume is mounted with noexec option.
- Place your scripts in
/config/scripts/
directory - On container start, scripts are automatically copied to
/app/scripts/
- Scripts preserve their permissions and are owned by the container user
- The
/app/scripts/
directory is executable even if/config
is mounted noexec
- Single Executable: Sonarr only accepts a single executable path in its settings. If you need to pass parameters or run multiple commands, create a wrapper shell script.
- Working Directory: Scripts executed by Sonarr run from Sonarr's working directory, NOT from
/app/scripts/
. Use absolute paths in your scripts or explicitly change to the required directory.
#!/bin/bash
# /config/scripts/transcode-wrapper.sh
# Change to script directory if needed
cd /app/scripts
# Call your actual script with parameters
/app/scripts/transcode.sh --quality high --preset slow "$@"
volumes:
- /path/to/config:/config # Can be mounted with noexec
- /path/to/my-scripts:/config/scripts:ro # Your custom scripts
Then in Sonarr, set the custom script path to: /app/scripts/transcode-wrapper.sh
All environment variables from the base LinuxServer.io Sonarr image are supported. See the LinuxServer.io documentation for details.
This project uses automated version tracking:
VERSION
file contains the current Sonarr version (e.g.,SONARR_VERSION=4.0.14.2939-ls284
)- Daily automated checks for new LinuxServer.io Sonarr releases
- Automatic PR creation when updates are available
- Version format includes LinuxServer build suffix for exact tracking
This image automatically tracks LinuxServer.io's Sonarr releases:
- Daily checks run at 2 AM UTC via GitHub Actions
- When a new version is detected, a PR is created with the VERSION file update
- Merging the PR triggers a new build with the updated version
- New images are pushed to GitHub Container Registry
To check the current version being tracked, see the VERSION file.
# Clone the repository
git clone https://github.com/fpeter8/sonarr-transcode.git
cd sonarr-transcode
# Build the image (version is read from VERSION file)
docker build -t sonarr-transcode .
# The build will use the version specified in the VERSION file
# To override, you can modify the VERSION file before building
This project is licensed under the MIT License. The base Sonarr image and software have their own licenses.