basic structure
This commit is contained in:
BIN
homelabbing/docs/software/img/mediastack-diagram.png
Normal file
BIN
homelabbing/docs/software/img/mediastack-diagram.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 263 KiB |
0
homelabbing/docs/software/index.md
Normal file
0
homelabbing/docs/software/index.md
Normal file
101
homelabbing/docs/software/mediastack/introduction.md
Normal file
101
homelabbing/docs/software/mediastack/introduction.md
Normal file
@@ -0,0 +1,101 @@
|
||||
# Introduction
|
||||
|
||||
This documentation describes a self-hosted, Docker-based media automation stack that handles everything from user requests to content playback, fully integrated with Jellyfin as the central media server.
|
||||
|
||||
The stack includes download automation (Usenet), metadata scraping, transcoding, user interface for media requests, monitoring, and search. Everything is containerized and orchestrated with Docker Compose.
|
||||
|
||||
---
|
||||
|
||||
## 1. Prerequisites
|
||||
|
||||
Before continuing, make sure Docker and Docker Compose are installed on your system.
|
||||
You can follow the installation guide here:
|
||||
👉 [Install Docker on Debian/Ubuntu](../../knowhow/docker/)
|
||||
|
||||
---
|
||||
|
||||
## 2. Stack Overview
|
||||
|
||||
The following diagram illustrates how the various components in the media stack interact:
|
||||
|
||||

|
||||
|
||||
**Legend / Component Highlights:**
|
||||
|
||||
- **Jellyfin**: the main media server for playback and library management
|
||||
- **Jellyseerr**: user-facing request portal
|
||||
- **Radarr/Sonarr**: automation for movies and series
|
||||
- **Prowlarr**: indexer aggregator for both Radarr and Sonarr
|
||||
- **SABnzbd**: Usenet downloader
|
||||
- **Tdarr**: automated transcoding engine
|
||||
- **Meilisearch**: search backend for metadata (used by Scraparr/Suggestarr)
|
||||
- **Wizarr**: user invite and account management
|
||||
- **Trailarr & Huntarr**: UI enhancements and support tooling
|
||||
- **Scraparr & Suggestarr**: metadata and suggestion automation
|
||||
|
||||
---
|
||||
|
||||
## 3. Directory Structure
|
||||
|
||||
Your directory tree is organized to clearly separate persistent data and component configuration:
|
||||
|
||||
```
|
||||
/mediastack
|
||||
├── 4k-radarr # Radarr instance for 4K content
|
||||
├── jellyfin # Config/data for Jellyfin
|
||||
├── jellyseerr # Request frontend
|
||||
├── radarr # Main movie automation
|
||||
├── sonarr # Series automation
|
||||
├── sabnzbd # Usenet download client
|
||||
├── tdarr # Transcoding
|
||||
├── prowlarr # Indexer management
|
||||
├── wizarr # Invite portal
|
||||
├── postgres # Database service
|
||||
├── huntarr, trailarr* # Visual/UX enhancements
|
||||
├── scraparr, suggestarr # Metadata and recommendation tooling
|
||||
├── cache/
|
||||
│ ├── jellyfin
|
||||
│ ├── sabnzbd
|
||||
│ ├── tdarr
|
||||
│ └── meilisearch
|
||||
├── media/
|
||||
│ ├── 4k-filme
|
||||
│ ├── anime_filme
|
||||
│ ├── animes
|
||||
│ ├── filme
|
||||
│ ├── serien
|
||||
│ └── posters
|
||||
```
|
||||
|
||||
> All services are managed using Docker Compose with volume mounts mapped into the above directories.
|
||||
|
||||
---
|
||||
|
||||
## 4. Benefits
|
||||
|
||||
- 🧩 Modular: You can scale or swap components easily
|
||||
- 🐳 Containerized: Consistent and portable deployments
|
||||
- 🧠 Automated: Minimal manual work once configured
|
||||
- 📦 Composable: All services communicate via APIs or shared volumes
|
||||
- 🔐 Local-first & private
|
||||
|
||||
---
|
||||
|
||||
## 5. Next Steps
|
||||
|
||||
- Set up Docker and Docker Compose if you haven't yet
|
||||
- Start configuring the services one by one (see individual `.md` files)
|
||||
- Secure access via reverse proxy (e.g., Traefik or Nginx)
|
||||
- Enjoy your fully automated media center 🎬
|
||||
|
||||
---
|
||||
|
||||
## Links
|
||||
|
||||
- Jellyfin: https://jellyfin.org
|
||||
- Jellyseerr: https://github.com/Fallenbagel/jellyseerr
|
||||
- Tdarr: https://github.com/HaveAGitGat/Tdarr
|
||||
- SABnzbd: https://sabnzbd.org
|
||||
- Radarr: https://radarr.video
|
||||
- Sonarr: https://sonarr.tv
|
||||
- Prowlarr: https://github.com/Prowlarr/Prowlarr
|
@@ -0,0 +1,82 @@
|
||||
# Installation
|
||||
|
||||
This guide shows you how to install [Jellyfin](https://jellyfin.org/) via Docker Compose. Make sure Docker Engine is already installed on your system.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Docker Engine installed (follow the official guide linked above)
|
||||
- Docker Compose available
|
||||
- Linux host system
|
||||
|
||||
---
|
||||
|
||||
## 1. Create a project directory
|
||||
|
||||
```bash
|
||||
mkdir jellyfin
|
||||
cd jellyfin
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. Create `docker-compose.yml`
|
||||
|
||||
```yaml
|
||||
version: "3"
|
||||
services:
|
||||
jellyfin:
|
||||
image: jellyfin/jellyfin
|
||||
container_name: jellyfin
|
||||
user: uid:gid # replace uid:gid with your actual user ID and group ID
|
||||
network_mode: "host" # optional: needed for DLNA and certain integrations
|
||||
volumes:
|
||||
- ./config:/config
|
||||
- ./cache:/cache
|
||||
- /path/to/media:/media
|
||||
# Add more media folders if needed
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- JELLYFIN_PublishedServerUrl=http://your-domain-or-ip
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. Start Jellyfin
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. Access Jellyfin
|
||||
|
||||
Open a browser and navigate to `http://<your-host-ip>:8096` to begin setup via the web UI.
|
||||
|
||||
---
|
||||
|
||||
## 5. (Optional) Manage updates
|
||||
|
||||
When a new version is available:
|
||||
|
||||
```bash
|
||||
docker compose pull
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Notes
|
||||
|
||||
- Ensure user ID (`uid`) and group ID (`gid`) match your Linux user to prevent permissions issues.
|
||||
- Host network mode is required for DLNA and some integrations only; you can remove it if not needed.
|
||||
- This setup uses bind-mounted folders (`./config`, `./cache`, `/path/to/media`) for persistent data.
|
||||
|
||||
---
|
||||
|
||||
## References
|
||||
|
||||
- Official Docker installation guide: https://docs.docker.com/engine/install/
|
||||
- Jellyfin Docker Compose instructions
|
@@ -0,0 +1,60 @@
|
||||
# Introduction
|
||||
|
||||
**Jellyfin** is a free, open-source media server software that lets you collect, manage, and stream your personal media—such as movies, TV shows, music, and photos—across devices. It is a community-driven alternative to proprietary platforms like Plex and Emby.
|
||||
|
||||
---
|
||||
|
||||
## Key Features
|
||||
|
||||
- 🆓 **Completely Free**: No paid licenses, subscriptions, or locked features.
|
||||
- 🛡️ **Privacy-Focused**: No telemetry, no third-party tracking.
|
||||
- 📺 **Streaming**: Access your media from web browsers, smart TVs, mobile apps, or Kodi.
|
||||
- 🧠 **Metadata Management**: Automatic retrieval of posters, fanart, episode guides, and more.
|
||||
- 🎚️ **Transcoding**: On-the-fly conversion for devices with limited format support.
|
||||
- 🎛️ **Plugin System**: Extend functionality with community-made plugins.
|
||||
|
||||
---
|
||||
|
||||
## Supported Platforms
|
||||
|
||||
- **Server**: Windows, Linux, macOS, Docker, and more
|
||||
- **Clients**:
|
||||
- Web browser
|
||||
- Android / iOS apps
|
||||
- Smart TVs (via apps or DLNA)
|
||||
- Kodi (via Jellyfin add-on)
|
||||
- Chromecast
|
||||
|
||||
---
|
||||
|
||||
## Ideal Use Cases
|
||||
|
||||
- Home media streaming over LAN or internet
|
||||
- Centralized media hub for a household
|
||||
- Replacement for paid services (e.g., Plex, Netflix for local content)
|
||||
|
||||
---
|
||||
|
||||
## Comparison to Plex & Emby
|
||||
|
||||
| Feature | Jellyfin | Plex | Emby |
|
||||
|--------------------|-----------------|------------------|------------------|
|
||||
| Open Source | ✅ Yes | ❌ No | ⚠️ Partial |
|
||||
| Free Features | ✅ All | ❌ Some Locked | ⚠️ Limited |
|
||||
| No Account Needed | ✅ Yes | ❌ No | ⚠️ Mostly |
|
||||
| Community-Driven | ✅ 100% | ❌ | ⚠️ Limited |
|
||||
|
||||
---
|
||||
|
||||
## Quick Start
|
||||
|
||||
If you haven’t installed Jellyfin yet, check the [Docker Compose installation guide](./jellyfin-docker-compose.md) or visit the [official documentation](https://jellyfin.org/docs/).
|
||||
|
||||
---
|
||||
|
||||
## Links
|
||||
|
||||
- 🌐 Website: https://jellyfin.org
|
||||
- 📘 Docs: https://jellyfin.org/docs/
|
||||
- 🐙 GitHub: https://github.com/jellyfin/jellyfin
|
||||
- 💬 Community: https://matrix.to/#/#jellyfin:matrix.org
|
@@ -0,0 +1,95 @@
|
||||
# Installation
|
||||
|
||||
[Jellyseerr](https://github.com/Fallenbagel/jellyseerr) is a free and open-source request management and media discovery tool for Jellyfin. It allows users to search for and request media directly from your Jellyfin library or through external indexers.
|
||||
|
||||
---
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Docker and Docker Compose installed
|
||||
- A running Jellyfin instance (optional but recommended)
|
||||
- Optional: Sonarr, Radarr, and download clients for full automation
|
||||
|
||||
---
|
||||
|
||||
## 1. Create Project Directory
|
||||
|
||||
```bash
|
||||
mkdir jellyseerr
|
||||
cd jellyseerr
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. Create `docker-compose.yml`
|
||||
|
||||
```yaml
|
||||
version: "3"
|
||||
services:
|
||||
jellyseerr:
|
||||
image: fallenbagel/jellyseerr:latest
|
||||
container_name: jellyseerr
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "5055:5055"
|
||||
environment:
|
||||
- LOG_LEVEL=info
|
||||
volumes:
|
||||
- ./config:/app/config
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. Start Jellyseerr
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. Access Web UI
|
||||
|
||||
Open your browser and go to:
|
||||
|
||||
```
|
||||
http://<your-server-ip>:5055
|
||||
```
|
||||
|
||||
You'll be guided through the setup process:
|
||||
- Create admin account
|
||||
- Connect Jellyfin server
|
||||
- (Optional) Connect Sonarr, Radarr, etc.
|
||||
|
||||
---
|
||||
|
||||
## 5. Update Instructions
|
||||
|
||||
To update Jellyseerr:
|
||||
|
||||
```bash
|
||||
docker compose pull
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. Optional: Enable Reverse Proxy
|
||||
|
||||
To expose Jellyseerr via a domain name (e.g. `requests.example.com`), set up a reverse proxy using [Traefik](https://doc.traefik.io/traefik/), Nginx, or Caddy. A basic Traefik label example:
|
||||
|
||||
```yaml
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.jellyseerr.rule=Host(`requests.example.com`)"
|
||||
- "traefik.http.routers.jellyseerr.entrypoints=websecure"
|
||||
- "traefik.http.routers.jellyseerr.tls.certresolver=myresolver"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## References
|
||||
|
||||
- Jellyseerr GitHub: https://github.com/Fallenbagel/jellyseerr
|
||||
- Docker Hub: https://hub.docker.com/r/fallenbagel/jellyseerr
|
||||
- Official Documentation: https://docs.jellyseerr.com
|
@@ -0,0 +1,61 @@
|
||||
# Introduction
|
||||
|
||||
[**Jellyseerr**](https://docs.jellyseerr.dev/) is a free and open-source media request and discovery platform designed specifically for [**Jellyfin**](https://jellyfin.org). It provides a user-friendly interface for browsing, searching, and requesting movies and TV shows, bridging the gap between your users and your media automation stack (e.g., Jellyfin + Sonarr/Radarr).
|
||||
|
||||
---
|
||||
|
||||
## Key Features
|
||||
|
||||
- 🔎 **Search & Discover**: Browse and search for movies and series from TMDB.
|
||||
- 🎯 **Direct Requests**: Request content directly from the UI, linked to Sonarr and Radarr.
|
||||
- 🔐 **User Management**: Role-based permissions and Jellyfin authentication.
|
||||
- 📅 **Release Tracking**: View upcoming or recently added media.
|
||||
- 💬 **Request Comments**: Users can comment and track the status of their requests.
|
||||
- 🌍 **Multi-language** support with a responsive web UI.
|
||||
|
||||
---
|
||||
|
||||
## Target Audience
|
||||
|
||||
- Jellyfin server admins who want to delegate content requests to users
|
||||
- Home media server users looking to streamline their request workflow
|
||||
- Those looking for a self-hosted alternative to Overseerr (Plex-only)
|
||||
|
||||
---
|
||||
|
||||
## Jellyseerr vs Overseerr
|
||||
|
||||
| Feature | Jellyseerr | Overseerr |
|
||||
|-----------------------------|------------------|---------------|
|
||||
| Media Server Integration | ✅ Jellyfin only | ❌ Plex only |
|
||||
| Open Source | ✅ Yes | ✅ Yes |
|
||||
| Actively Maintained | ✅ Yes | ✅ Yes |
|
||||
| UI and Features | ⭐ Comparable | ⭐ Comparable |
|
||||
| Login with Media Server | ✅ Jellyfin SSO | ✅ Plex OAuth |
|
||||
|
||||
---
|
||||
|
||||
## How It Works
|
||||
|
||||
1. **User logs in** (via Jellyfin)
|
||||
2. **Searches for media** via TMDB integration
|
||||
3. **Requests are submitted** through the UI
|
||||
4. **Sonarr/Radarr handle automation** (optional)
|
||||
5. **Jellyfin picks up downloaded content automatically**
|
||||
|
||||
---
|
||||
|
||||
## Requirements
|
||||
|
||||
- Jellyfin server
|
||||
- Docker or Node.js environment
|
||||
- (Optional) Sonarr, Radarr, and download clients (e.g., qBittorrent, NZBGet)
|
||||
|
||||
---
|
||||
|
||||
## Links
|
||||
|
||||
- 🌐 Project: https://github.com/Fallenbagel/jellyseerr
|
||||
- 📘 Docs: https://docs.jellyseerr.com
|
||||
- 🐳 Docker Hub: https://hub.docker.com/r/fallenbagel/jellyseerr
|
||||
- 💬 Community: https://discord.gg/mVJcS4tq3q
|
Reference in New Issue
Block a user