Skip to content

Synology Installation

Run OmniLux on Synology NAS using Docker.

Prerequisites

  • Synology DSM 7.2+
  • Container Manager package installed (DSM 7.2+) or Docker package (DSM 7.0–7.1)
  • SSH access enabled (recommended for Docker Compose)
  • Shared folders for media and app data

Setup via SSH + Docker Compose

Docker Compose gives you the most control and is the recommended approach.

1. Enable SSH

Control Panel > Terminal & SNMP > Enable SSH service

2. Create directories

bash
ssh your-synology
mkdir -p /volume1/docker/omnilux

3. Create Docker Compose file

Create /volume1/docker/omnilux/docker-compose.yml:

yaml
services:
  omnilux:
    image: ghcr.io/omnilux-tv/omnilux:latest
    container_name: omnilux
    restart: unless-stopped
    ports:
      - "4000:4000"
      - "1900:1900/udp"
    environment:
      NODE_ENV: production
      PORT: 4000
      OMNILUX_LIBRARY_ROOT: /data
      OMNILUX_DB_PATH: /app/data/omnilux.db
      OMNILUX_DOWNLOAD_PATH: /app/data/downloads
    volumes:
      - /volume1/docker/omnilux/data:/app/data
      - /volume1/media:/data

4. Start

bash
cd /volume1/docker/omnilux
sudo docker compose up -d

Shared folder permissions

Ensure the container user (UID 1000) can read your media and write to the app data directory:

bash
sudo chown -R 1000:1000 /volume1/docker/omnilux/data

For media folders, grant read access:

bash
sudo chmod -R o+r /volume1/media

Alternatively, use Synology's shared folder permissions in DSM to grant access to the docker group.

Limitations

  • No GPU transcoding on most Synology models. Consumer Synology NAS devices don't have discrete GPUs. Some Intel-based models support Quick Sync via /dev/dri passthrough, but support varies
  • Performance — ARM-based Synology models (DS220j, etc.) may be too slow for transcoding. x86-based models (DS920+, DS1621+) are recommended

Updating

bash
cd /volume1/docker/omnilux
sudo docker compose pull
sudo docker compose up -d

Access

Navigate to http://your-synology-ip:4000.