Your media enjoyed with a minimal lightweight media server
Free and open source (and always will be), Midarr aims to provide a tailored experience for you and your users:
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.
Your media is served through a slick web interface providing:
with more features planned ahead.
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
# Database config
- DB_USERNAME=my_user
- DB_PASSWORD=my_password
- DB_DATABASE=my_database
- DB_HOSTNAME=postgresql
# Admin account
- SETUP_ADMIN_EMAIL=admin@email.com
- 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"
To initialise this, please provide the following environment variables. This will allow you to configure your server at the settings page.
environment:
- SETUP_ADMIN_EMAIL=admin@email.com
- SETUP_ADMIN_NAME=admin
- SETUP_ADMIN_PASSWORD=somepassword # minimum length 12
To send invitations, please provide the following environment variables. Access the settings page to invite users to your server.
environment:
- APP_MAILER_FROM=example@email.com
- SENDGRID_API_KEY=someApiKey
To use your own identity provider like Authentik, please provide the following environment variables. Go to /auth
to initiate the auth flow.
environment:
- OAUTH_CLIENT_ID=someClientId
- OAUTH_CLIENT_SECRET=someClientSecret
- OAUTH_ISSUER_URL=http://some-provider.url
- OAUTH_AUTHORIZE_URL=http://some-provider.url/authorize
- OAUTH_TOKEN_URL=http://some-provider.url/token
- OAUTH_REDIRECT_URI=http://some-provider.url/auth/callback
- OAUTH_USER_URL=http://some-provider.url/user
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
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
To keep your media in sync, webhook urls are required in your integrations. Midarr accepts a POST request from your integrations with your unique API Token (found on the Midarr Settings page).
Add these webhook urls to Radarr / Sonarr under Settings -> Connect -> Webhook
:
http://midarr:4000/api/webhooks/movie?token=some-api-token
http://midarr:4000/api/webhooks/series?token=some-api-token
We support the following integration versions:
v5.x
v4.x
Thank you for all your contributions! Big or small - all is welcome!
git clone https://github.com/{ YOUR-ACCOUNT }/midarr-server.git
cd midarr-server && docker compose up -d
Midarr is open-sourced software licensed under the MIT license.