Coolify Kurulumu: Self-Hosted PaaS ile Uygulama Deployment
Coolify kurulumu, Docker ve Git entegrasyonu, uygulama deployment, veritabanı yönetimi, SSL sertifikaları, environment variables ve Heroku/Netlify alternatifi self-hosted PaaS.
Jellyfin Docker kurulumu, medya kütüphanesi yapılandırması, hardware transcoding, kullanıcı yönetimi, remote access, Nginx reverse proxy ve istemci uygulamaları.
Jellyfin, film, dizi, müzik ve fotoğraflarınızı kendi sunucunuzda yönetip yayınlamanızı sağlayan ücretsiz ve açık kaynaklı bir medya sunucusudur. Plex ve Emby'nin aksine tamamen ücretsizdir ve herhangi bir abonelik gerektirmez. Tüm cihazlarınızdan medyanıza erişebilir, arkadaşlarınızla paylaşabilirsiniz.
Jellyfin, Emby'nin açık kaynaklı fork'u olarak başlamış ve bağımsız bir proje haline gelmiştir. Öne çıkan özellikleri:
version: '3.8'
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
restart: unless-stopped
user: "1000:1000"
environment:
- JELLYFIN_PublishedServerUrl=https://jellyfin.example.com
volumes:
- ./config:/config
- ./cache:/cache
- /mnt/media/films:/media/films:ro
- /mnt/media/diziler:/media/diziler:ro
- /mnt/media/muzik:/media/muzik:ro
ports:
- "127.0.0.1:8096:8096"
# Hardware transcoding için (Intel)
devices:
- /dev/dri:/dev/dri
# Container'ı başlat
docker compose up -d
# Logları kontrol et
docker logs jellyfin -f
Medya dizinlerini :ro (read-only) olarak bağlamak güvenlik açısından önerilir. Jellyfin'in medya dosyalarını değiştirmesine gerek yoktur.
/mnt/media/
├── films/
│ ├── Inception (2010)/
│ │ └── Inception (2010).mkv
│ └── The Matrix (1999)/
│ └── The Matrix (1999).mp4
├── diziler/
│ └── Breaking Bad/
│ ├── Season 01/
│ │ ├── S01E01.mkv
│ │ └── S01E02.mkv
│ └── Season 02/
└── muzik/
└── Artist/
└── Album/
└── 01 - Track.flac
Kurulum sonrası http://SUNUCU_IP:8096 adresine gidin:
/media/films, /media/diziler vb.Yönetim → Kütüphaneler → [Kütüphane] → Düzenle
Filmler için:
- TheMovieDb (TMDB) - önerilir
- IMDb
- The Open Movie Database
Diziler için:
- TheTVDB - önerilir
- TheMovieDb
# Manuel tarama tetikle (API ile)
curl -X POST "http://localhost:8096/Library/Refresh" \
-H "X-Emby-Token: API_TOKEN"
# Zamanlanmış tarama: Yönetim → Zamanlama
# docker-compose.yml
services:
jellyfin:
devices:
- /dev/dri:/dev/dri
group_add:
- "109" # render grubu
# Intel GPU'nun mevcut olduğunu doğrula
ls /dev/dri
# Çıktı: card0 renderD128
# Render grubunu öğren
stat -c '%g' /dev/dri/renderD128
Jellyfin'de etkinleştirme:
Yönetim → Oynatma → Transcoding
→ Donanım hızlandırma: Intel QuickSync (QSV)
→ Etkinleştir: H.264, H.265, VP9
# docker-compose.yml
services:
jellyfin:
image: jellyfin/jellyfin:latest
runtime: nvidia
environment:
- NVIDIA_VISIBLE_DEVICES=all
- NVIDIA_DRIVER_CAPABILITIES=all
# NVIDIA Container Toolkit kurulumu
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
tee /etc/apt/sources.list.d/nvidia-docker.list
apt update && apt install -y nvidia-container-toolkit
nvidia-ctk runtime configure --runtime=docker
systemctl restart docker
Yönetim → Kullanıcılar → Yeni Kullanıcı
- Kullanıcı adı ve şifre
- Kütüphane erişim izinleri
- Ebeveyn kontrolü (içerik derecelendirmesi)
- Uzaktan erişim izni
Kullanıcı Ayarları → Ebeveyn Kontrolü
- Maksimum içerik derecelendirmesi: G, PG, PG-13, R
- Belirli kütüphanelere erişimi engelle
- PIN ile koruma
server {
listen 80;
server_name jellyfin.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name jellyfin.example.com;
ssl_certificate /etc/letsencrypt/live/jellyfin.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/jellyfin.example.com/privkey.pem;
# Güvenlik başlıkları
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
location / {
proxy_pass http://127.0.0.1:8096;
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;
# WebSocket desteği
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# Büyük dosya transferi için
proxy_buffering off;
proxy_read_timeout 3600;
}
}
Yönetim → Ağ
- Yayınlanan sunucu URL'si: https://jellyfin.example.com
- Uzaktan erişime izin ver: Etkin
- Uzak bağlantılar için SSL gerektir: Etkin
https://jellyfin.example.com# Jellyfin yapılandırmasını yedekle
tar -czf jellyfin-config-$(date +%Y%m%d).tar.gz ./config/
# Otomatik yedekleme
cat > /etc/cron.weekly/jellyfin-backup << 'EOF'
#!/bin/bash
tar -czf /backups/jellyfin-$(date +%Y%m%d).tar.gz /opt/jellyfin/config/
find /backups -name "jellyfin-*.tar.gz" -mtime +60 -delete
EOF
chmod +x /etc/cron.weekly/jellyfin-backup
REXE dedicated sunucularında Jellyfin için hardware transcoding kullanabilirsiniz. Intel veya NVIDIA GPU'lu sunucularımız 4K içerik için idealdir.
Jellyfin tamamen ücretsiz ve açık kaynaklıdır; Plex'in aksine abonelik veya premium özellik yoktur. Plex daha olgun ve kullanıcı dostu olabilir, ancak bazı özellikler (offline sync, 4K transcoding) Plex Pass gerektirir. Jellyfin tüm özellikleri ücretsiz sunar ve verileriniz tamamen sizin kontrolünüzdedir.
Hardware transcoding, video dönüştürme işlemini CPU yerine GPU ile yapar. Bu sayede CPU kullanımı %5-15'e düşer (CPU ile %80-100 olabilir), daha fazla eş zamanlı stream desteklenir ve 4K içerik sorunsuz oynatılır. Intel QSV, NVIDIA NVENC veya AMD AMF desteklenen GPU'lar kullanılabilir.
Jellyfin dosya adlandırma kurallarına uymanız gerekir. Filmler için: 'Film Adı (Yıl)/Film Adı (Yıl).mkv' formatını kullanın. Diziler için: 'Dizi Adı/Season XX/S01E01.mkv' formatını kullanın. Özel karakterler ve yanlış yıl bilgisi tanıma sorunlarına yol açabilir. TMDB veya TVDB'de arama yaparak doğru adı bulun.
İnternet bant genişliğinizi kontrol edin. 4K içerik için en az 25 Mbps upload hızı gerekir. Transcoding etkinse sunucu CPU/GPU kapasitesini kontrol edin. Jellyfin'de 'Otomatik' kalite yerine belirli bir bitrate seçin. Hardware transcoding etkinleştirmek performansı önemli ölçüde artırır.
Yönetim → Kullanıcılar menüsünden yeni kullanıcı oluşturun. Her kullanıcı için kütüphane erişim izinlerini ayrı ayrı ayarlayabilirsiniz. Ebeveyn kontrolü ile içerik kısıtlaması ekleyebilirsiniz. Kullanıcılar kendi cihazlarından Jellyfin'e bağlanabilir.
Docker kullanıyorsanız: docker compose pull && docker compose up -d komutlarını çalıştırın. Bu işlem mevcut yapılandırmanızı koruyarak sadece Jellyfin imajını günceller. Güncelleme öncesi config dizinini yedeklemeniz önerilir. Büyük sürüm güncellemelerinde release notlarını okuyun.
Coolify kurulumu, Docker ve Git entegrasyonu, uygulama deployment, veritabanı yönetimi, SSL sertifikaları, environment variables ve Heroku/Netlify alternatifi self-hosted PaaS.
Nextcloud kurulumu Docker ile, Apache/Nginx yapılandırması, veritabanı kurulumu, SSL sertifikası, dosya senkronizasyonu, uygulama mağazası ve performans optimizasyonu.
Portainer CE kurulumu, Docker ve Kubernetes yönetimi, stack deployment, volume/network yönetimi, kullanıcı yetkilendirme, webhook ve GitOps entegrasyonu.