Medya Sunucusu Kurulum Rehberi

Debian tabanlı mini PC üzerinde Docker Compose, Jellyfin, qBittorrent ve Cloudflare Tunnels ile güvenli medya sunucusu kurulumu.

İçindekiler (20)

Başlangıç

Bu rehber tamamen eğitim amaçlı üretilmiş olup herhangi bir korsana teşvik niteliği taşımamaktadır. Yapılan işlemler sizin sorumluluğunuzdadır. Bu rehberde her A’dan Z’ye medya sunucusu kurulumu hakkında yapılabilecekleri anlattım. İyi okumalar

1 - Gereksinimler

  • VPS Sunucusu veya kullanmadığınız ve sürekli açık kalabilecek bir bilgisayar.
  • Tercihen bir alan adı.

1.1 - Eğer VPS kiralamayı tercih ettiyseniz bu adımdan başlayabilirsiniz.

Sektörde birsürü server veya hosting sağlayan çözümler bulabilirsiniz. Hangisini seçeceğiniz bütçenize ve hizmet şartlarina göre değişiklik gösterebilir. Ödeme işlemini tamamlamadan önce kesinlikle hizmet şartlarını okumanızı öneririm. (Bazı sunucu sağlayıcıları dosya barındırmayı, P2P dosya paylaşımını ve torrent aktivitelerini tamamen yasaklıyor.)

İşletim sistemi olarak Debian 12 veya 13 tercih edebilirsiniz. Medya sunucusunda birden fazla uygulamayı aynı anda çalıştıracağımız için yaklaşık 4GB RAM ve 40GB+ disk alanına sahip bir sunucu kiralamanız rahat bir kullanım sağlayacaktır.

1.2 - Eğer kullanmadığınız bir bilgisayarı tercih ettiyseniz buradan başlayabilirsiniz.

Öncelikle kullanmadığınız bir cihazı yeniden hayata döndürmeye çalışarak çevreye katkı sağladığınız için teşekkür ederim. Cihazınıza Debian 12 veya 13 kurarak başlayabilirsiniz. Debian 13 Kurulumu hakkındaki rehberime buradan ulaşabilirsiniz. Bilgisayara ekstra uygulamalar yükleyeceğimiz için yaklaşık 4GB RAM ve 40GB disk alanına sahip bir donanım kullanmanız sizin yararınıza olacaktır.

1.3 Kendi bilgisayarını kullananlar için Tailscale kurulumu

Ülkemizde İnternet Servis Sağlayıcıları kullanıcılara genelde statik ip adresi sağlamıyor. Sağlasa bile ekstra uçuk fiyatlar talep ediyorlar. Bizim de bu bilgisayarımıza ev ağı dışından da erişebilmek için statik bir ip adresine ihtiyacımız var. İşte bu durumda yardımımıza Tailscale isimli uygulama koşuyor. Tailscale kullanırsanız bir alan adına ya da karmaşık port yönlendirmelerine ihtiyacınız kalmıyor fakat aklınızda tutamayacağınız ve bir yere kaydetmeniz gereken ip adresleri ile karşılaşabiliyoruz. Bu servisin de bazı dezavantajları var elbette:

  1. Öncelikle Cloudflare ile domain kullanma yöntemi kadar hızlı çalışmıyor.
  2. Diğer cihazlarınıza da Tailscale kurup aynı hesapla giriş yapmanız gerekiyor.

Eğer Tailscale ile kullanacaksanız harici bir alan adı almanıza ve DNS yönlendirme adımlarını yapmanıza gerek kalmayacaktır.

curl -fsSL https://tailscale.com/install.sh | sh

Bu komutla Tailscale’i Linux cihazınıza kurabilirsiniz. Sonrasında tailscale up komutuyla Tailscale servisini çalıştırabilirsiniz.

Eğer kendi bilgisayarınıza ssh ile bağlanıyorsanız -ssh argümanını eklemeniz gerekiyor: tailscale up --ssh. Bu şekilde kullanarak ana cihazınızdan doğrulama işlemini yapabilirsiniz.

Bonus: Sunucunun Genel Yapısı

Uygulamaları kurmadan önce burayı ekliyorum ki genel yapı hakkında göz aşinalığı edinin. Yapacağımız işlemler sırasında kendinizi kaybolmuş hissetmedin.

Medya Sunucusu Genel Bakış (Mimari Şeması)

Servis Akış Şeması: Prowlarr ➔ Sonarr / Radarr ➔ qBittorrent-nox ➔ Bazarr ➔ Rclone (Google Drive) ➔ Jellyfin

2 - *Arr Uygulama Kurulumları

2.1 - Prowlarr

Medya sunucumuzun torrentleri indexlemesine yarayan Prowlarr uygulamasını kurmak basit ve önemli bir adımdır. Topluluk sayesinde var olan Servarr install script kullanarak kolayca Prowlarr ve Radarr kurulumunu yapacagiz.

curl -o servarr-install-script.sh https://raw.githubusercontent.com/Servarr/Wiki/master/servarr/servarr-install-script.sh

Bu komut ile kurulum scriptini indiriyoruz ve sonrasında sudo olarak çalıştırmamız gerekiyor.

sudo bash servarr-install-script.sh

Bu script bize ilk aşamada hangi uygulamayı kurmak istediğimizi soracak. Buradan Prowlarr’ın başındaki rakamı girerek işleme başlıyoruz. Sonrasında hangi kullanıcı ve grupta çalıştırmak istediğimizi soracak (varsayılan olarak kendisi Prowlarr kullanıcı ve grubu oluşturmayı tavsiye edecek); burada Linux sisteminizdeki ana kullanıcı adınızı yazmanız gerekiyor (ben melih olarak devam ediyorum). Bu sayede dosya okuma ve yazma izinlerinde sorun yaşamayacağız.

Prowlarr’ı ayarlama kısmını buradan okuyarak yapabilirsiniz.

2.2 - Radarr

Radarr uygulaması filmleri bulmak ve düzenlemek konusunda bize yardımcı olacak. Prowlarr adımındaki scripti yine çalıştırıyoruz ve bu kez Radarr’un başındaki rakamı girerek isleme başlıyoruz. Sonrasında hangi kullanıcı ve grupta çalıştırmak istediğimizi soracak (varsayılan olarak kendisi Radarr kullanıcı ve grubu oluşturmayı tavsiye edecek); burada yine kendi Linux kullanıcı adınızı yazmanız gerekiyor (ben melih olarak devam ediyorum). Bu sayede dosya izinlerinde sorun yaşamayacağız. 7878 portuyla Radarr’a erişebilirsiniz. Eğer Tailscale kullanıyorsanız: tailscaleipadresiniz:7878 Eğer sunucu IP’siyle erişecekseniz: sunucuipadresiniz:7878 5.2 ve 6 numaralı adımları okursanız alan adı ve reverse proxy ile çok daha temiz bir kullanım sağlayabilirsiniz.

Radarr’ı ayarlama kısmını buradan okuyarak yapabilirsiniz.

2.3 - Sonarr

Sonarr uygulaması dizileri bulmak ve düzenlemek konusunda bize yardımcı olacak. Sonarr için Radarr ve Prowlarr’dan farklı olarak kendi scriptini kullanmamız gerekiyor.

curl -o- https://raw.githubusercontent.com/Sonarr/Sonarr/develop/distribution/debian/install.sh | sudo bash

Yine ayni şekilde hangi kullanıcı ve grupta çalıştırmak istediğimizi soracak (varsayılan olarak kendisi Sonarr kullanıcı ve grubu oluşturmayı tavsiye edecek); burada yine kendi Linux kullanıcı adınızı yazmanız gerekiyor (ben melih olarak devam ediyorum). Bu sayede okuma ve yazma izinlerinde sorun yaşamayacağız. 8989 portuyla Sonarr’a erişebilirsiniz. Eğer Tailscale kullanıyorsanız: tailscaleipadresiniz:8989 Eğer sunucu IP’siyle erişecekseniz: sunucuipadresiniz:8989 5.2 ve 6 numaralı adımları okursanız alan adı ve reverse proxy ile çok daha temiz bir kullanım sağlayabilirsiniz.

Sonarr’ı ayarlama kısmını buradan okuyarak yapabilirsiniz.

2.4 - Bazarr

Bazarr uygulaması Sonarr ve Radarr kullanarak bulduğumuz içeriklere altyazı bulma konusunda yardımcı olacak. Bazarr belki de aralarında en sıkıntılı kuruluma sahip olan uygulama.

sudo apt install 7zip python3-dev python3-pip python3-distutils unzip

komutları ile gerekli bağımlılıkları kurmamız gerekiyor sonrasında ise

wget https://github.com/morpheus65535/bazarr/releases/latest/download/bazarr.zip

bu komutu kullanarak güncel Bazarr sürümünü indiriyoruz.

sudo mkdir /opt/bazarr

komutu ile Bazarr için işletim sisteminde kurulacağı bölümü hazırlıyoruz

sudo unzip bazarr.zip -d /opt/bazarr

komutu ile indirdiğimiz .zip dosyasini, hazırladığımız bölüme çıkarıyoruz

cd /opt/bazarr

komutu ile Bazarr’ı kurduğumuz dizine gidiyoruz ve burada python için sanal ortam oluşturmamız gerekiyor.

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
sudo chown -R $USER:$USER /opt/bazarr
deactivate

bu komutlar ile Bazarr’ın çalışacağı sanal python ortamını hazırlamış olduk. Simdi ise sırada Bazarr için otomatik çalıştırma servisini ayarlamak var.

sudo nano /etc/systemd/system/bazarr.service

komutu ile açılan ekrana alttaki kodu yapıştırıyoruz. (melih yazan kısımları kendi kullanıcı adınızla değiştirmelisiniz)

[Unit]
Description=Bazarr
After=syslog.target network-online.target

[Service]
User=melih
Group=melih
Type=simple
ExecStart=/opt/bazarr/.venv/bin/python3 /opt/bazarr/bazarr.py --no-update --config=/home/melih/.config/bazarr
TimeoutStopSec=20
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target

Yapıştırdıktan sonra CTRL+X, Y, ve ENTER tuşlarına sırasıyla basıp kaydedip çıkmış oluyoruz. Sonrasında ise artık bu servisi başlangıçta çalışması için gerekli kodu gireceğiz.

sudo systemctl daemon-reload
sudo systemctl enable --now bazarr.service
sudo systemctl status bazarr.service

active(running) yazısını gördüyseniz Bazarr’ı başarılıl bir şekilde kurmuş oldunuz tebrik ederim.

6767 portuyla Bazarr’a erişebilirsiniz. Eğer Tailscale kullanıyorsanız: tailscaleipadresiniz:6767 Eğer sunucu IP’siyle erişecekseniz: sunucuipadresiniz:6767 5.2 ve 6 numaralı adımları okursanız alan adı ve reverse proxy ile çok daha temiz bir kullanım sağlayabilirsiniz.

Simdi ise buradan Bazarr’ın ayarlarını yapabilirsiniz.

3 - qBittorrent-nox

Bu uygulamayla Sonarr ve Radarr’dan gelen torrent isteklerini indirebileceğiz. Bu uygulama normal qBittorrent’ten farklı olarak bize bir GUI sağlamıyor. Onun yerine direkt webden 8080 portuyla erişebiliyoruz. Kurulum aşaması yine kolaylıkla hallediliyor.

bash <(curl -sL https://raw.githubusercontent.com/userdocs/qbittorrent-nox-static/refs/heads/master/qi.bash)

Bu komutu girdikten sonra otomatik başlaması için yine servis komutu eklememiz gerekiyor. Bunun için de

sudo nano /etc/systemd/system/qbittorrent-nox.service

komutunu kullanıp açılan yere

[Unit]
Description=qBittorrent Command Line Client
After=network.target

[Service]
Type=simple
User=melih
Group=melih
ExecStart=/usr/bin/qbittorrent-nox
Restart=on-failure

[Install]
WantedBy=multi-user.target

Yapıştırdıktan sonra CTRL+X, Y, ve ENTER tuşlarına sırasıyla basıp kaydedip çıkmış oluyoruz. Ardından yine Bazarr da olduğu gibi

sudo systemctl daemon-reload
sudo systemctl enable --now qbittorrent-nox.service
sudo systemctl status qbittorrent-nox.service

komutlarını girmemiz gerekiyor. Active(running) yazısını gördüyseniz işlem başarılıdır. 8080 portuyla qBittorrent-nox’a erişebilirsiniz. Eğer Tailscale kullanıyorsanız: tailscaleipadresiniz:8080 Eğer sunucu IP’siyle erişecekseniz: sunucuipadresiniz:8080 5.2 ve 6 numaralı adımları okursanız alan adı ve reverse proxy ile çok daha temiz bir kullanım sağlayabilirsiniz.

4 - Jellyfin

Jellyfin ise bizim medya oynatıcımız olarak görev alacak. Jellyfin’in de yine install scripti bulunduğu için kurulumu kolayca yapabilirsiniz.

curl -s https://repo.jellyfin.org/install-debuntu.sh | sudo bash

8096 portuyla Jellyfin’e erişebilirsiniz. Eğer Tailscale kullanıyorsanız: tailscaleipadresiniz:8096 Eğer sunucu IP’siyle erişecekseniz: sunucuipadresiniz:8096 5.2 ve 6 numaralı adımları okursanız alan adı ve reverse proxy ile çok daha temiz bir kullanım sağlayabilirsiniz.

5 - Alan Adı ve DNS İşlemleri

5.1 - Cloudflare DNS Kayıtları

Eğer bir alan adınız varsa ve kurduğunuz uygulamalara (Radarr, Sonarr, Jellyfin vb.) doğrudan alan adınız üzerinden erişmek istiyorsanız DNS yönetimi yapabileceğiniz bir servise ihtiyacınız olacak. Bu konuda dünya genelinde en yaygın ve güvenilir servis Cloudflare’dır.

Cloudflare paneline alan adınızı bağladıktan sonra DNS -> Records bölümüne gelip sunucunuzun IP adresini işaret eden kayıtlar oluşturmanız gerekir.

5.2 - Subdomain Ekleme

Her bir servis için ayrı bir alt alan adı (subdomain) tanımlamak en yaygın ve temiz yöntemdir (örneğin radarr.alanadiniz.com, sonarr.alanadiniz.com).

Cloudflare paneline gelip DNS kaydı ekle (Add record) diyerek her uygulama için bir A kaydı oluşturuyoruz:

  • Type: A
  • Name: radarr (veya sonarr, jellyfin vb.)
  • IPv4 address: sunucunuzun_ip_adresi
  • Proxy status: İsteğe bağlı (Cloudflare koruması için Proxied veya doğrudan erişim için DNS Only)

Kaydettiğinizde radarr.alanadiniz.com adresiniz artık sunucunuzun IP adresine yönlenmiş olur.

6 - Reverse Proxy ve Alan Adı Yönlendirme

Sunucu tarafındaki son adıma geldik. Kurduğumuz servisler sunucu üzerinde farklı portlarda (Radarr 7878, Sonarr 8989, Bazarr 6767, qBittorrent 8080, Jellyfin 8096) çalışmaktadır. Alan adınızdan gelen HTTP/HTTPS trafiğini bu portlara güvenli şekilde aktarmak için bir Reverse Proxy (Nginx, Nginx Proxy Manager veya Caddy) kullanırız.

6.1 Subdomain Yöntemi (Önerilen)

En pratik ve standart yöntem, her servisi kendi alt alan adına yönlendirmektir. Örneğin Radarr için:

  • Gelen İstek: radarr.alanadiniz.com
  • Hedef Servis (Proxy Pass): http://127.0.0.1:7878

Örnek Nginx blok yapılandırması:

server {
    listen 80;
    server_name radarr.alanadiniz.com;

    location / {
        proxy_pass http://127.0.0.1:7878;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Eğer Nginx Proxy Manager gibi bir yönetim paneli kullanıyorsanız:

  1. Proxy Hosts -> Add Proxy Host butonuna tıklayın.
  2. Domain Names: radarr.alanadiniz.com
  3. Forward Hostname / IP: 127.0.0.1
  4. Forward Port: 7878
  5. SSL sekmesinden Request a new SSL Certificate seçeneğini işaretleyip Let’s Encrypt ile ücretsiz HTTPS sertifikası tanımlayabilirsiniz.

6.2 Alt Yol (Subpath) Yöntemi

Subdomain kullanmak yerine tüm servisleri tek bir ana domainin alt yolları üzerinden sunmak isterseniz (örneğin alanadiniz.com/radarr):

  • Gelen Yol: /radarr
  • Hedef: http://127.0.0.1:7878
Note

Servisleri alt yolda (subpath) çalıştırmak isterseniz ilgili uygulamanın (Radarr, Sonarr vb.) ayarlarından URL Base değerini de /radarr veya /sonarr olarak tanımlamanız gerekir; aksi takdirde web arayüzleri statik varlıkları (.js, .css) yüklerken kök dizine başvuracağı için sayfalar bozuk açılabilir. Bu nedenle subdomain yöntemi her zaman daha temiz ve sorunsuzdur.

Son

İlk kurulum adımları bu kadardı. Buradan sonra kurduğumuz uygulamaların kendi ayarlarını anlattığım rehberlere göz atmanızı tavsiye ederim:

  1. Prowlarr
  2. Radarr
  3. Sonarr
  4. Bazarr
  5. qBittorrent-nox
  6. Jellyfin

Ekstra; Disk alanı yetersizse Rclone rehberine göz atabilirsiniz.

Melih Ak
Melih Ak Bilgisayar Mühendisi & Sistem Geliştirici

Linux sistem yönetimi, homelab altyapısı, Python, makine öğrenmesi ve açık kaynak mimariler üzerine çalışıyor ve yazıyor.

Tüm Notlara Dön