AI is responsible for over half of the coding. Also keep in mind that this software is mostly developed for personal use by myself and thus might not receive all feature requests desired.
###################################################
A comprehensive web-based media server manager
Manage your entire media stack from one web interface. Control Sonarr, Radarr, download clients, and more with real-time monitoring and an intuitive interface.
Media-Connector.mp4
- Sonarr - TV show management and monitoring
- Browse your TV library with detailed information
- Search and add new TV shows
- Edit quality profiles and monitor settings
- Delete series with optional file cleanup
- Radarr - Movie collection management
- Browse your movie library with cast and genres
- Search and add new movies
- Edit quality profiles and monitor settings
- Delete movies with optional file cleanup
- SABnzbd - Usenet binary downloader
- Real-time queue monitoring
- Pause/resume downloads
- Delete downloads from queue
- Deluge - BitTorrent client
- Add torrents by URL
- Monitor torrent status
- Prowlarr - Indexer manager and proxy
- Search across all configured indexers
- Seamless integration with Sonarr/Radarr
- TMDB Integration - The Movie Database
- Browse trending movies and TV shows
- View cast, genres, and ratings
- Add content directly to your library
- Unraid - Server management and Docker control
- Real-time system monitoring (CPU, Memory, Uptime)
- Start/Stop containers
- View array and disk information
- Portainer - Server management and Docker control
- Start/Stop/Restart containers
- User Management - Create and manage multiple users
- Role-based Access Control - Admin and User roles
- Secure Authentication - JWT-based login system
- Password Reset - Forgot password functionality via Docker logs
- Profile Management - Users can manage their own credentials
- Responsive Design - Works on desktop, tablet, and mobile
- Dark Mode - Easy on the eyes
- Real-time Updates - Live download progress and notifications
- Material Design - Clean and intuitive interface
- Secure - API key authentication for most services
docker run -d \
--name=media-connector-docker \
-p 3001:3001 \
-e PUID=1000 \
-e PGID=1000 \
-e JWT_SECRET=your-secret-key-here \
-v /path/to/data:/app/server/data \
--restart unless-stopped \
ghcr.io/gittimeraider/media-connector-docker:latestversion: '3.8'
services:
media-connector-docker:
image: ghcr.io/gittimeraider/media-connector-docker:latest
container_name: media-connector-docker
restart: unless-stopped
ports:
- "3001:3001"
volumes:
- ./data:/app/server/data # SQLite database storage
environment:
- PUID=1000
- PGID=1000
- NODE_ENV=production
- PORT=3001
- JWT_SECRET=change-this-secret-key-in-production
- TMDB_API_KEY=your-tmdb-api-key-optionalThen run:
docker-compose up -d- Open Media Connector in your browser at
http://localhost:3001 - Navigate to Settings from the sidebar
- Add your services by clicking the Add button for each service type
- Enter the required information:
- Name: A friendly name for the instance
- URL: The full URL to your service (e.g.,
http://192.168.1.100:8989) - API Key: Your service's API key (found in service settings)
- Click Test Connection to verify
- Click Save
Media Connector automatically creates a default administrator account when no admin users exist:
- Username:
admin - Password:
admin
You can bypass authentication entirely by enabling guest mode:
Docker Environment Variable:
DISABLE_AUTH=trueWhen enabled:
- No login screen is shown
- Users are automatically logged in as a Guest user with User role
- Guest user has read-only access (cannot modify settings or users)
- Guest user is not visible in the user list
- Useful for trusted networks or personal use
Enable in Docker Compose:
environment:
- DISABLE_AUTH=trueEnable in Docker Run:
docker run -d \
-e DISABLE_AUTH=true \
...All users can manage their own profile:
- Click on your avatar in the top-right corner
- Select My Profile
- Update your username and/or password
- Click Save Changes
- Navigate to Users in the sidebar (Admin only)
- Click Add User
- Enter username and password
- Select role (User or Admin)
- Click Add User
- Toggle Admin Role: Click on the role chip to promote/demote users
- Reset Password: Click the key icon to set a new password for any user
- Delete User: Click the delete icon
⚠️ Cannot delete your own account if you are the last admin⚠️ At least one admin user must exist at all times
If a user forgets their password:
- On the login screen, click Forgot password?
- Enter your username
- Click Reset Password
- A new randomly generated 32-character password will be logged in the Docker container logs
- Check the logs with:
docker logs media-connector-docker - Look for the password reset section in the logs
- Use the new password to log in
- Immediately change the password to something memorable
Media Connector uses an SQLite database to securely store:
- User accounts - Usernames, hashed passwords, roles
- Service configurations - URLs, API keys, credentials
Database Location: server/data/media-connector-docker.db
- ✅ Password Hashing - bcrypt with salt rounds for user passwords
- ✅ JWT Tokens - Secure session management with 7-day expiration
- ✅ Database Storage - Credentials stored in SQLite instead of plaintext JSON
- ✅ Role-based Access - Admin vs. User permissions
- ✅ Docker Volume Persistence - Database persists across container restarts
The SQLite database file contains all your configuration. Back it up regularly:
# Backup the database
docker cp media-connector-docker:/app/server/data/media-connector-docker.db ./backup.db
# Restore from backup
docker cp ./backup.db media-connector-docker:/app/server/data/media-connector-docker.db
docker restart media-connector-dockerDocker-Specific Environment Variables:
| Variable | Default | Description |
|---|---|---|
PUID |
1000 |
User ID for file permissions |
PGID |
1000 |
Group ID for file permissions |
PORT |
3001 |
Port the application runs on |
NODE_ENV |
production |
Node environment |
JWT_SECRET |
(auto-generated) |
Secret key for JWT tokens - CHANGE THIS! |
TMDB_API_KEY |
(none) |
Optional: TMDB API key for movie/TV metadata |
DISABLE_AUTH |
false |
Set to true to bypass login (guest mode) |
Setting PUID/PGID:
To find your user and group IDs on Linux/Unraid:
id your_usernameThen use those values in your docker run command or docker-compose.yml:
-e PUID=1000 -e PGID=100This repository is configured with GitHub Actions to automatically build and push Docker images to GitHub Container Registry (ghcr.io).
- Push to main branch → Builds
latesttag - Pull requests → Builds test images (not pushed)
ghcr.io/gittimeraider/media-connector-docker:latest- Latest stable releaseghcr.io/gittimeraider/media-connector-docker:main- Latest main branch
Images are built for both linux/amd64 and linux/arm64 platforms.
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by nzb360 - The excellent Android app
- Built with React, Node.js, and Material-UI
- Thanks to all the developers of Sonarr, Radarr, and other *arr applications
This application is not affiliated with, endorsed by, or connected to nzb360 or any of the services it integrates with. All trademarks and service marks are the property of their respective owners.
Built for the home media server community
