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:
- Beautifully crafted user interface
- Real-time online statuses
- Simple and easy invite system
- Integrates with your existing services, Radarr and Sonarr
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.
How is this lightweight?
- Direct streaming. Your media served fresh off the metal.
- Smart caching. Your media smartly kept in sync with your integrations.
- Integrated experience. Your media kept the way you like it.
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 # 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"
Admin account
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
Invite system
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
OIDC / OAuth 2.0
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
Support
Videos
- H.264 / H.265 codec
- AAC / MP3 audio
- MP4 / MKV container
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 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:
Radarr example
http://midarr:4000/api/webhooks/movie?token=some-api-token
Sonarr example
http://midarr:4000/api/webhooks/series?token=some-api-token
What integrations does this support?
We support the following integration versions:
- Radarr
v5.x - Sonarr
v4.x
Contributing
Thank you for all your contributions! Big or small - all is welcome!
Local development
- Fork and git clone the repository
git clone https://github.com/{ YOUR-ACCOUNT }/midarr-server.git
- Docker compose up the stack
cd midarr-server && docker compose up -d
- Service locations:
- http://localhost:4000 - Midarr
- http://localhost:7878 - Radarr
- http://localhost:8989 - Sonarr
License
Midarr is open-sourced software licensed under the MIT license.





