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