Dim, a media manager fueled by dark forces

Brendon Walsh 3ccb4ab05f Authorization middleware supports cookie or authorization header (#594) 6 months ago
.cargo 3b5b711dd6 build: allow compiling dim by defaulting DATABASE_URL to target/dim_dev.db 1 year ago
.github cc157daed3 refactor: rename dim to dim-core, use dim as a binary crate (#573) 7 months ago
.vscode 9211b4b87a dim-web (#537) 1 year ago
bin 2bcacdfb13 add rustfmt.toml, move extra -> bin (#540) 1 year ago
dim cc157daed3 refactor: rename dim to dim-core, use dim as a binary crate (#573) 7 months ago
dim-auth 3cae9e202b rename database, events and auth crates to contain a dim- prefix (#536) 1 year ago
dim-core ff291146e9 Git tag and latest commit sha as version displayed in sidebar (#580) 7 months ago
dim-database a36fabb424 Season order fix and episode React keys are now unique (#585) 7 months ago
dim-events 9211b4b87a dim-web (#537) 1 year ago
dim-extern-api aa0743b12a Route fixes caught in more thorough testing (#586) 7 months ago
dim-utils b13b745dc6 Axum stream and static routes (#578) 7 months ago
dim-web 3ccb4ab05f Authorization middleware supports cookie or authorization header (#594) 6 months ago
docs 89c1a2623f Reduce size of design images 15x 2 years ago
ui 19e68e040b Library sidebar uses unique React keys (#592) 6 months ago
.dockerignore e3c11f9144 Fix dockerfile, start.sh and build.rs 3 years ago
.gitattributes 6f89227c26 track lfs 3 years ago
.gitignore dffbcf3ef4 Refactor scanners (#447) 1 year ago
.mailmap 8bc8cce20f chore: add mailmap 2 years ago
.rgignore 4e5b077016 forgot to remove the constraint lol 3 years ago
CONTRIBUTING.md 63cabd14c8 Correct urls, project name and license (#551) 1 year ago
Cargo.lock 3ccb4ab05f Authorization middleware supports cookie or authorization header (#594) 6 months ago
Cargo.toml cc157daed3 refactor: rename dim to dim-core, use dim as a binary crate (#573) 7 months ago
Dockerfile d57271ad9b chore(docker): :bug: docker image fails to build (#538) 1 year ago
LICENSE.md 1bcb31ccf0 chore(license): change the license for dim from GPLv2 to AGPLv3 (#439) 2 years ago
README.md c4567c9a70 Update discord link 7 months ago
SECURITY.md 2d9b8afdbd Create SECURITY.md 7 months ago
deny.toml c00ee8fd83 Added a deny lint file 4 years ago
docker-compose-template.yml a457534f36 Fix template docker-compose file (#412) 2 years ago
rust-toolchain 56e2070992 switched toolchain to "stable" and fixed feature errors (#500) 1 year ago
rustfmt.toml 2bcacdfb13 add rustfmt.toml, move extra -> bin (#540) 1 year ago
yarn.lock 3232e926e0 Implement new matching/rematching UI (#420) 2 years ago

README.md

Dim

Dashboard Discord

Dim is a self-hosted media manager. With minimal setup, Dim will organize and beautify your media collections, letting you access and play them anytime from anywhere.

Running from binaries

Dependencies

  • libva2
  • libva-drm2
  • libharfbuzz
  • libfontconfig
  • libfribidi
  • libtheora
  • libvorbis
  • libvorbisenc
  • libtheora0

You can then obtain binaries from the release tab in github:

  1. Unpack with unzip ./release-linux.zip && tar -xvzf ./release.tar.gz
  2. Run cd release && ./dim
  3. Then you can access the Dim web UI through your browser with http://0.0.0.0:8000 (assuming it's running locally.)

Running with docker

The following command runs dim on port 8000, storing configuration in $HOME/.config/dim. You may change that path if you'd like to store configuration somewhere else. You can mount as many directories containing media as you like by repeating the -v HOST_PATH:CONTAINER_PATH option. In this example, the path /media on the host is made available at the same path inside the Docker container. This name "media" is arbitrary and you can choose whatever you like.

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

Mutiarch image resides at ghcr.io/dusk-labs/dim:master

To use 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

Refer to docker-compose-template.yaml to run dim using Docker Compose.

Running from source

Dependencies

To run from source, you'll first need to install the following dependencies on your system:

  • sqlite
  • cargo
  • rustc (nightly)
  • yarn, npm
  • libssl-dev
  • libva2 (only if you're using Linux)
  • libva-dev (only if you're using Linux)
  • libva-drm2 (only if you're using Linux)
  • ffmpeg

Once the dependencies are installed, clone the repository and build the project:

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

If you're on Linux, run dim with:

cargo run --features vaapi --release

On other platforms where libva isn't available, run dim with:

cargo run --release

License

Dim is licensed under the AGPLv3 license (see LICENSE.md or https://opensource.org/licenses/AGPL-3.0)

Screenshots

Login_Page Add_Library Modal Media_Page