Subtitle-Edit

Subtitle-Edit

Docker app from pegasbur's Repository

Overview

Run native Linux Subtitle Edit in a web browser. Includes FFmpeg, libmpv, Tesseract OCR, browser audio, GTK file chooser integration, persistent settings, and Intel/AMD hardware video decoding. No Wine or virtual machine is used.

Subtitle Edit      Unraid

Subtitle Edit for Unraid & Docker

Run the native Linux version of Subtitle Edit in a web browser.

Repository validation Container image Unraid compatible Architecture amd64 MIT license

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, Unraid, or jlesage projects.

Contents

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

The template is being prepared for Community Applications. Until it is listed, install the user template 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:

  1. Confirm the appdata and media paths.
  2. Configure GPU access if required, or leave it disabled for CPU/software operation.
  3. 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.1.0 Current application-version tag
ghcr.io/pegasbur/subtitleedit:5.1.0-r6 Immutable application and container-revision tag

Included software

Component Version or source
Subtitle Edit 5.1.0
jlesage browser GUI ubuntu-26.04-v4
Avalonia 12.1.0 with an X11 compatibility patch
.NET 10.0, self-contained
FFmpeg/FFprobe Ubuntu 26.04 package
MPV/libmpv Ubuntu 26.04 package
libplacebo Ubuntu 26.04 package
Tesseract OCR Ubuntu 26.04 package
Intel media driver and Mesa Ubuntu 26.04 VA-API packages

Exact source commits, package checksums, builder images, and runtime images are pinned in versions.env.

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. 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.

Build instructions, version maintenance, validation, and publishing information are available in docs/DEVELOPMENT.md.

The integration files are MIT licensed. Included software retains its own licenses; see THIRD_PARTY_NOTICES.md.

Install Subtitle-Edit on Unraid in a few clicks.

Find Subtitle-Edit in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Subtitle-Edit Review the template variables and paths Click Install

Related apps

Details

Repository
ghcr.io/pegasbur/subtitleedit:latest
Last Updated2026-09-03
First Seen2026-09-02

Runtime arguments

Web UI
http://[IP]:[PORT:5800]/
Network
bridge
Shell
bash
Privileged
false
Extra Params
--shm-size=1g

Template configuration

Web UIPorttcp

Browser interface over HTTP. The default host port remains 3001 for compatibility with earlier releases.

Target
5800
Default
3001
Value
3001
AppdataPathrw

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
MediaPathrw

Media and subtitle files. Select files under /data inside Subtitle Edit.

Target
/data
Default
/mnt/user/data
Value
/mnt/user/data
User IDVariable

Numeric ID used to access mapped files. Unraid normally uses 99.

Target
USER_ID
Default
99
Value
99
Group IDVariable

Numeric group ID used to access mapped files. Unraid normally uses 100.

Target
GROUP_ID
Default
100
Value
100
TimezoneVariable

Container timezone, for example Europe/Zurich.

Target
TZ
Default
Etc/UTC
Value
Etc/UTC
Browser audioVariable

Stream Subtitle Edit audio through the browser. The browser may require one click before allowing playback.

Target
WEB_AUDIO
Default
1
Value
1
Keep application runningVariable

Restart Subtitle Edit inside the container if its main window is closed.

Target
KEEP_APP_RUNNING
Default
1
Value
1
Initial display widthVariable

Initial virtual desktop width in pixels. Browser remote resizing can adjust it later.

Target
DISPLAY_WIDTH
Default
1920
Value
1920
Initial display heightVariable

Initial virtual desktop height in pixels. Browser remote resizing can adjust it later.

Target
DISPLAY_HEIGHT
Default
1080
Value
1080
Intel/AMD GPU device (optional)Devicerw

Enter /dev/dri to enable Intel or AMD rendering and hardware video decoding. Leave blank for CPU-only operation.

Target
/dev/dri
Secure connection (optional)Variable

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
Web authentication (optional)Variable

Set to 1 to enable jlesage web authentication. Direct authentication also requires Secure connection to be enabled.

Target
WEB_AUTHENTICATION
Default
0
Value
0
Web authentication usernameVariable

Optional username used when web authentication is enabled.

Target
WEB_AUTHENTICATION_USERNAME
Web authentication passwordVariable

Optional password used when web authentication is enabled.

Target
WEB_AUTHENTICATION_PASSWORD