• Stars
    star
    1,161
  • Rank 38,532 (Top 0.8 %)
  • Language
    Elixir
  • License
    MIT License
  • Created about 2 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🔥Midarr, the minimal lightweight media server.

logo

Your media enjoyed with a minimal lightweight media server

Build Status Code Coverage GitHub license GitHub release (latest by date) Open Issues Closed Issues

Free and open source (and always will be), Midarr aims to provide a tailored experience for you and your users:

  • Beautifully crafted user interface
  • Real-time online statuses
  • Simple and easy invite system
  • Integrates with your existing services, Radarr and Sonarr

Preview

What is this?

This is a lightweight (albeit companion) media server to the likes of Radarr and Sonarr. Your media is left untouched and unscathed as it is served through a simple (yet familiar) web interface that puts your media front and center for you and your users to enjoy.

While other media solutions look to re-index, re-fetch and re-double handle your media library, Midarr simply leverages your pre-existing services to delight and enhance your media experience.

Preview

How is this lightweight?

  • Direct streaming. Your media is served fresh off the metal (an experimental transcoder is available).
  • Smart caching. Your metadata is retrieved fresh off the metal, smartly kept in sync with your integrations.
  • Integrated experience. You like the way your media is set up, we keep it that way.

What else does this do?

Your media is served through a slick web interface providing:

  • User authentication
  • User profile settings
  • User online statuses

with more features planned ahead.

Usage

Docker compose

volumes:
  database-data:

services:
  
  midarr:
    container_name: midarr
    image: ghcr.io/midarrlabs/midarr-server:latest
    ports:
      - 4000:4000
    volumes:
      - /path/to/media:/media
    environment:
#       App config
      - APP_URL=http://midarr:4000 # required for media sync
      - [email protected]
      - SENDGRID_API_KEY=someApiKey

#       Database config
      - DB_USERNAME=my_user
      - DB_PASSWORD=my_password
      - DB_DATABASE=my_database
      - DB_HOSTNAME=postgresql

#       Admin account
      - [email protected]
      - SETUP_ADMIN_NAME=admin
      - SETUP_ADMIN_PASSWORD=somepassword # minimum length 12

#       Radarr integration
      - RADARR_BASE_URL=radarr:7878
      - RADARR_API_KEY=someApiKey

#       Sonarr integration
      - SONARR_BASE_URL=sonarr:8989
      - SONARR_API_KEY=someApiKey

    depends_on:
      postgresql:
        condition: service_healthy

  postgresql:
    container_name: postgresql
    image: postgres
    volumes:
      - database-data:/var/lib/postgresql/data
    environment:
      - POSTGRES_USER=my_user
      - POSTGRES_PASSWORD=my_password
      - POSTGRES_DB=my_database
    healthcheck:
      test: "exit 0"

Admin account

To initialise this, please provide the following environment variables. This will allow you to configure your server at the settings page.

environment:
  - [email protected]
  - SETUP_ADMIN_NAME=admin
  - SETUP_ADMIN_PASSWORD=somepassword # minimum length 12

Support

Videos

  • H.264 / H.265 codec
  • AAC / MP3 audio
  • MP4 / MKV container

Subtitles

A single .srt file in the root directory of the video is currently supported. With this setup a subtitle / caption option will be available in the player view.

library/video
          └──video.srt
          └──video.mp4

FAQ

Why won't my media play?

Midarr looks to your integrations to resolve your media locations. Midarr is not aware of where your media lives! A common way to mount a media library is to mount the root directory where both movies and series reside:

services:

  midarr:
    volumes:
      - /path/to/media:/media

  radarr:
    volumes:
      - /path/to/media:/media

  sonarr:
    volumes:
      - /path/to/media:/media

Why won't my media sync?

To sync your media, on server startup Midarr attempts to auto configure your integrations by:

  • Caching integration responses. This is for speedy access to your library.
  • Adding connect endpoints. This is for keeping your media in sync.

Ensure your APP_URL and integration environment variables are set for auto configuration to complete:

environment:
  - APP_URL=http://midarr:4000 # required for media sync
    
  - RADARR_BASE_URL=radarr:7878
  - RADARR_API_KEY=someApiKey

  - SONARR_BASE_URL=sonarr:8989
  - SONARR_API_KEY=someApiKey

What integrations does this support?

We support the following integration versions:

  • Radarr v4.x
  • Sonarr v3.x

Contributing

Thank you for all your contributions! Big or small - all is welcome!

Local development

  1. Fork and git clone the repository
git clone https://github.com/{ YOUR-ACCOUNT }/midarr-server.git
  1. Docker compose up the stack
cd midarr-server && docker compose up -d
  1. Service locations:

License

Midarr is open-sourced software licensed under the MIT license.

Preview

Preview Preview Preview Preview Preview