Dim: A Self-Hosted Media Manager Fueled by Rust and React

Dim: A Self-Hosted Media Manager Fueled by Rust and React

Summary

Dim is a powerful, self-hosted media manager designed to organize and beautify your media collections. Built with Rust and React, it allows users to access and play their media anytime from anywhere with minimal setup. This project offers flexible deployment options, including binaries, Docker, and building from source.

Repository Info

Updated on February 12, 2026
View on GitHub

Tags

Click on any tag to explore related repositories

Introduction

Dim is an open-source, self-hosted media manager developed by Dusk-Labs. It provides a robust solution for organizing, managing, and accessing your personal media collections. With its intuitive web UI, built using React, and a high-performance backend powered by Rust, Dim aims to offer a seamless experience for streaming and managing your media from any location.

Installation

Dim offers several methods for installation, catering to different user preferences and environments.

Running from Binaries

To run Dim from pre-compiled binaries, follow these steps:

  1. Dependencies: Ensure you have libva2, libva-drm2, libharfbuzz, libfontconfig, libfribidi, libtheora, libvorbis, libvorbisenc, and libtheora0 installed on your system.

  2. Download & Unpack: Obtain the binaries from the GitHub release tab.

    unzip ./release-linux.zip && tar -xvzf ./release.tar.gz
    
  3. Run: Navigate to the release directory and execute Dim.

    cd release && ./dim
    

Running with Docker

Dim can be easily deployed using Docker. The following command runs Dim on port 8000, storing configuration in $HOME/.config/dim and mounting /media from the host as read-only.

docker run -d -p 8000:8000/tcp -v $HOME/.config/dim:/opt/dim/config -v /media:/media:ro ghcr.io/dusk-labs/dim:dev

For hardware acceleration, mount the relevant device:

docker run -d -p 8000:8000/tcp -v $HOME/.config/dim:/opt/dim/config -v /media:/media:ro --device=/dev/dri/renderD128 ghcr.io/dusk-labs/dim:dev

You can also use Docker Compose with the provided template.

Running from Source

If you prefer to build Dim from source, ensure you have the following dependencies: sqlite, cargo, rustc (nightly), yarn, npm, libssl-dev, libva2 (Linux only), libva-dev (Linux only), libva-drm2 (Linux only), and ffmpeg.

  1. Clone & Build:

    git clone https://github.com/Dusk-Labs/dim
    yarn --cwd ui/ && yarn --cwd ui/ build
    mkdir utils && ln -nfs $(which ffmpeg) utils/ffmpeg && ln -nfs $(which ffprobe) utils/ffprobe
    
  2. Run (Linux with VAAPI):

    cargo run --features vaapi --release
    
  3. Run (Other Platforms):

    cargo run --release
    

Examples

After successful installation, you can access the Dim web UI through your browser. If running locally, navigate to http://0.0.0.0:8000 to start managing your media.

Why Use Dim?

Dim stands out as an excellent choice for a self-hosted media manager due to several key advantages:

  • Self-Hosted Control: Maintain full control over your media and data without relying on third-party services.

  • Efficient Organization: Dim helps organize and beautify your media collections, making them easy to browse and enjoy.

  • Anytime, Anywhere Access: Stream and access your media from any device, anywhere, once properly configured.

  • Modern Tech Stack: Built with Rust for performance and safety, and React for a responsive and modern user interface.

  • Community Support: Engage with the community for support and development via their Discord channel.

Links

Find more information and contribute to Dim through these official links: