All apps · 0 apps
Subtitle-Edit
Docker app from pegasbur's Repository
Overview
Readme
View on GitHubSubtitle Edit for Unraid & Docker
Run the native Linux version of Subtitle Edit in a web browser.
Subtitle Edit for Unraid packages the native Linux edition of Subtitle Edit with FFmpeg/FFprobe, MPV/libmpv, Tesseract OCR, optional hardware-accelerated video playback and the jlesage browser GUI.
The primary tested platform is AMD64 Unraid, but the image can also run on an AMD64 Linux Docker host.
This is an unofficial community project. It is not maintained or endorsed by the Subtitle Edit or Unraid.
Contents
- Features
- Quick start on Unraid
- Quick start with Docker
- Docker Compose
- Image tags
- Included software
- CPU and GPU setup
- Browser interface
- Files and persistence
- OCR engines
- Updating
- Network access and security
- Support and development
Features
- Native Linux Subtitle Edit available through any modern browser
- FFmpeg/FFprobe, MPV/libmpv, and Tesseract OCR included
- Browser audio and GTK file chooser integration
- Persistent settings, OCR data, downloaded models, and media mappings
- CPU operation with optional Intel and AMD GPU acceleration
- Unraid template and standard Docker deployment
Quick start on Unraid
Subtitle Edit is available through Community Applications. Search for Subtitle Edit in the Apps tab and install it using the provided template.
For manual installation, the user template can still be installed from an Unraid terminal:
curl -fsSL \
https://raw.githubusercontent.com/pegasbur/subtitleedit/main/unraid/my-subtitleedit.xml \
-o /boot/config/plugins/dockerMan/templates-user/my-subtitleedit.xml
Then open Docker > Add Container and select Subtitle Edit from the template list.
During installation:
- Confirm the appdata and media paths.
- Configure GPU access if required, or leave it disabled for CPU/software operation.
- Apply the template and open its WebUI.
The default address is:
http://UNRAID-IP:3001
The host port can be changed if 3001 is already used by another container.
Quick start with Docker
Create persistent folders:
mkdir -p /srv/subtitleedit/config /srv/media
Run the container:
docker run -d \
--name subtitleedit \
--restart unless-stopped \
--shm-size=1g \
-p 3001:5800 \
-e USER_ID=1000 \
-e GROUP_ID=1000 \
-e TZ=Etc/UTC \
-e WEB_AUDIO=1 \
-e KEEP_APP_RUNNING=1 \
-e DISPLAY_WIDTH=1920 \
-e DISPLAY_HEIGHT=1080 \
-v /srv/subtitleedit/config:/config \
-v /srv/media:/data \
ghcr.io/pegasbur/subtitleedit:latest
Change the host paths, timezone, and numeric user and group IDs for your system. Then open:
http://DOCKER-HOST-IP:3001
For Intel or AMD GPU access, add:
--device=/dev/dri
Docker Compose
Copy the example environment file:
cp .env.example .env
Review the image, container name, WebUI port, appdata path, and media path in .env.
Start in CPU/software mode:
docker compose up -d
Start with Intel or AMD GPU access:
docker compose \
-f compose.yaml \
-f compose.gpu.yaml \
up -d
Image tags
| Image tag | Intended use |
|---|---|
ghcr.io/pegasbur/subtitleedit:latest |
Current tested Subtitle Edit release |
ghcr.io/pegasbur/subtitleedit:5.2.0 |
Current application-version tag |
ghcr.io/pegasbur/subtitleedit:5.2.0-r1 |
Application and container-revision tag; do not overwrite |
Included software
| Component | Version | Purpose |
|---|---|---|
| Subtitle Edit | 5.2.0 |
Main subtitle editing application |
| jlesage browser GUI | ubuntu-26.04-v4 |
Browser-accessible Linux desktop, VNC, audio, and web interface |
| Avalonia | 12.1.2 |
Cross-platform UI framework used by Subtitle Edit |
| .NET | 10.0 |
Self-contained application runtime |
| FFmpeg / FFprobe * | 8.0.1 |
Media probing, decoding, extraction, conversion, and waveform-related processing |
| MPV / libmpv * | 0.41.0 |
Video and audio playback inside Subtitle Edit |
| libplacebo * | 7.360.0 |
GPU-assisted video rendering used by the media playback stack |
| Intel VA-API drivers * | 26.1.2 / 2.4.1 |
Intel hardware-accelerated video decoding when /dev/dri is available |
| Mesa * | 26.0.8 |
OpenGL and graphics acceleration support |
| Mesa Vulkan drivers * | 26.0.8 |
Vulkan GPU acceleration for supported compute workloads such as CrispASR when a compatible GPU is available |
| XDG Desktop Portal * | 1.21.1 / 1.15.3 |
Linux desktop integration and file-dialog support |
| Tesseract OCR * | 5.5.0 |
Optical character recognition for subtitle images |
| OpenBLAS * | 0.3.32 |
Optimized numerical routines used by native numerical/OCR dependencies |
* Supplied by Ubuntu packages in the pinned runtime base image. These package revisions are not individually pinned and may change on later rebuilds as Ubuntu publishes security and maintenance updates.
Avalonia integration: Avalonia 12.1.2 is built with a maintained X11 compatibility patch. During the image build, the patched Avalonia.X11 assembly is packaged internally as 12.1.2.1-local and consumed by Subtitle Edit. This local package is an internal build artifact, not a separately published Avalonia release.
CPU and GPU setup
A GPU is optional. Subtitle Edit remains usable through CPU/software operation without one.
| Hardware | Unraid configuration | Docker options |
|---|---|---|
| CPU/software | Leave the GPU device blank; shared memory is preconfigured | --shm-size=1g |
| Intel or AMD | Set the GPU device to /dev/dri; shared memory is preconfigured |
--device=/dev/dri --shm-size=1g |
NVIDIA GPU acceleration is not supported by the jlesage GUI stack, so NVIDIA systems use CPU/software fallback.
GPU access can accelerate desktop rendering and supported video decoding. The image also includes Mesa Vulkan drivers, allowing supported compute workloads such as CrispASR's Vulkan backend to use compatible Intel or AMD GPUs when /dev/dri is mapped. It does not make Tesseract or CPU-based optional OCR engines use the GPU.
Browser interface
The browser interface is provided by the jlesage noVNC-based GUI stack.
- Web access uses container port
5800. - Native VNC is available on container port
5900, but is not mapped by default. - The side panel provides audio, clipboard, scaling, quality, and logging controls.
- Remote resizing adapts the virtual desktop to the browser window.
Files and persistence
The principal container paths are the same on Unraid and Docker:
| Unraid host path | Container path | Purpose |
|---|---|---|
/mnt/user/appdata/subtitleedit |
/config |
Application settings, GUI state, OCR data, downloaded models, and GTK bookmarks |
/mnt/user/data |
/data |
Media and subtitle files |
Correctly mapped /config and /data directories remain available when the container is updated or replaced.
Additional host directories can be mapped when required.
OCR engines
The Tesseract OCR engine, English language data, and orientation/script detection data are included.
Additional Tesseract .traineddata files can be placed in:
/config/tessdata
Subtitle Edit stores application-managed Tesseract models in its own configuration directory:
/config/xdg/config/Subtitle Edit/Tesseract550/tessdata
This directory is part of the persistent /config mapping and does not require an additional volume mapping.
Large optional engines and models such as PaddleOCR, CrispEmbed, Whisper, and llama.cpp can be downloaded through Subtitle Edit when requested. Their files are retained under /config.
Tesseract normally uses the CPU. Optional engines use a GPU only when the selected engine and downloaded package support it.
Updating
Unraid
Use Unraid’s normal Check for Updates and Update controls. Settings, downloaded OCR models, bookmarks, and media remain in their mapped directories.
Docker
Pull the current image and recreate the container with the same options and volume mappings:
docker pull ghcr.io/pegasbur/subtitleedit:latest
Docker Compose users can run:
docker compose pull
docker compose up -d
Network access and security
The WebUI is intended for a trusted LAN, Tailscale, or a secured reverse proxy and should not be exposed directly to the public Internet. It uses HTTP without built-in authentication by default (SECURE_CONNECTION=0, WEB_AUTHENTICATION=0), although HTTPS and password authentication can be enabled through the corresponding container settings.
Support and development
Report container-image or Unraid-template problems in this repository’s issue tracker. Application bugs should be reported to the Subtitle Edit project after confirming that they are not specific to this container.
The integration files are MIT licensed. Included software retains its own licenses; see THIRD_PARTY_NOTICES.md.
Categories
Related apps
Explore more like this
Explore allDetails
ghcr.io/pegasbur/subtitleedit:latestRuntime arguments
- Web UI
http://[IP]:[PORT:5800]/- Network
bridge- Shell
bash- Privileged
- false
- Extra Params
--shm-size=1g
Template configuration
Browser interface over HTTP. The default host port remains 3001 for compatibility with earlier releases.
- Target
- 5800
- Default
- 3001
- Value
- 3001
Persistent Subtitle Edit settings, GTK bookmarks, OCR databases, downloaded language models, and GUI state.
- Target
- /config
- Default
- /mnt/user/appdata/subtitleedit
- Value
- /mnt/user/appdata/subtitleedit
Media and subtitle files. Select files under /data inside Subtitle Edit.
- Target
- /data
- Default
- /mnt/user/data
- Value
- /mnt/user/data
Numeric ID used to access mapped files. Unraid normally uses 99.
- Target
- USER_ID
- Default
- 99
- Value
- 99
Numeric group ID used to access mapped files. Unraid normally uses 100.
- Target
- GROUP_ID
- Default
- 100
- Value
- 100
Container timezone, for example Europe/Zurich.
- Target
- TZ
- Default
- Etc/UTC
- Value
- Etc/UTC
Stream Subtitle Edit audio through the browser. The browser may require one click before allowing playback.
- Target
- WEB_AUDIO
- Default
- 1
- Value
- 1
Restart Subtitle Edit inside the container if its main window is closed.
- Target
- KEEP_APP_RUNNING
- Default
- 1
- Value
- 1
Initial virtual desktop width in pixels. Browser remote resizing can adjust it later.
- Target
- DISPLAY_WIDTH
- Default
- 1920
- Value
- 1920
Initial virtual desktop height in pixels. Browser remote resizing can adjust it later.
- Target
- DISPLAY_HEIGHT
- Default
- 1080
- Value
- 1080
Enter /dev/dri to enable Intel or AMD rendering and hardware video decoding. Leave blank for CPU-only operation.
- Target
- /dev/dri
Set to 1 for direct HTTPS with a generated self-signed certificate. Normally leave disabled when HTTPS is provided by a trusted reverse proxy.
- Target
- SECURE_CONNECTION
- Default
- 0
- Value
- 0
Set to 1 to enable jlesage web authentication. Direct authentication also requires Secure connection to be enabled.
- Target
- WEB_AUTHENTICATION
- Default
- 0
- Value
- 0
Optional username used when web authentication is enabled.
- Target
- WEB_AUTHENTICATION_USERNAME
Optional password used when web authentication is enabled.
- Target
- WEB_AUTHENTICATION_PASSWORD