Jellyfin media server for Netcup RS 8000
Go to file
Jeff Emmett ed267545d7 Add Navidrome music streaming server
- Add Navidrome service to docker-compose with Traefik routing
- Route music.jeffemmett.com to Navidrome instead of Jellyfin
- Update README with Navidrome docs and Subsonic-compatible mobile apps
- Add Navidrome environment variables to .env.example

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-12 15:43:03 -05:00
scripts Remove R2 storage configs, use local NVMe storage 2025-11-27 21:25:43 -08:00
.env.example Add Navidrome music streaming server 2025-12-12 15:43:03 -05:00
.gitignore Remove R2 storage configs, use local NVMe storage 2025-11-27 21:25:43 -08:00
README.md Add Navidrome music streaming server 2025-12-12 15:43:03 -05:00
docker-compose-server.yml Add Navidrome music streaming server 2025-12-12 15:43:03 -05:00

README.md

Media Server on Netcup RS 8000

A self-hosted media server stack running on Netcup RS 8000 with Jellyfin for streaming.

Architecture

┌─────────────────────────────────────────────────────────────┐
│                    Netcup RS 8000                           │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │  Jellyfin   │  │   Sonarr    │  │   Radarr    │         │
│  │  (Stream)   │  │    (TV)     │  │  (Movies)   │         │
│  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘         │
│         │                │                │                 │
│         └────────────────┼────────────────┘                 │
│                          │                                  │
│                  ┌───────┴───────┐                          │
│                  │  Local NVMe   │                          │
│                  │   Storage     │                          │
│                  │    (3TB)      │                          │
│                  └───────────────┘                          │
└─────────────────────────────────────────────────────────────┘

Server Specs

  • Netcup RS 8000 G12 Pro: €45/month
  • 20 CPU cores for transcoding
  • 64GB RAM for caching
  • 3TB NVMe storage for media
  • 1Gbps bandwidth included

Quick Start

1. Clone and Configure

git clone https://gitea.jeffemmett.com/jeffemmett/plex-media.git
cd plex-media
cp .env.example .env

2. Deploy to Netcup

./scripts/deploy-to-netcup.sh

3. Upload Your Media

# Upload TV shows
./scripts/upload-to-netcup.sh /home/jeffe/Shows shows

# Upload movies
./scripts/upload-to-netcup.sh /path/to/movies movies

Services

Service Port Description
Jellyfin 8096 Video streaming (movies & TV)
Navidrome 4533 Music streaming server
Sonarr 8989 TV show management
Radarr 7878 Movie management
Prowlarr 9696 Indexer management
Transmission 9091 Download client

Access

All services accessible via Cloudflare Tunnel:

Navidrome Mobile Apps

Navidrome is Subsonic-compatible. Use any Subsonic client:

  • Android: Ultrasonic, Symfonium, DSub
  • iOS: play:Sub, Amperfy, SubStreamer
  • Desktop: Sonixd, Sublime Music

Folder Structure

/opt/media-server/
├── media/
│   ├── movies/     # Movie files
│   ├── shows/      # TV show files
│   └── music/      # Music files
├── config/
│   ├── jellyfin/   # Jellyfin config
│   ├── sonarr/     # Sonarr config
│   ├── radarr/     # Radarr config
│   └── prowlarr/   # Prowlarr config
└── downloads/
    └── complete/   # Completed downloads

Upload Script Usage

# From local machine
./scripts/upload-to-netcup.sh <local-path> <media-type>

# Examples:
./scripts/upload-to-netcup.sh /home/jeffe/Shows shows
./scripts/upload-to-netcup.sh /home/jeffe/Movies movies
./scripts/upload-to-netcup.sh /home/jeffe/Music music

The script uses rsync for efficient incremental uploads.

License

MIT