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-stoppeddocker 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:latestThe 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/configis 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 scriptsThen 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:
VERSIONfile 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 buildingThis project is licensed under the MIT License. The base Sonarr image and software have their own licenses.