SSD Nodes Learn Hosting plans →
Rehberler Matt ConnorYazan Matt Connor

VPS uzerinde Chaptarr ile sesli kitap sunucusu kurma

Readarr projesinin 2025 yilinda sonlandirilmasi sonrasi sesli kitap yonetimi icin Chaptarr kurulumunu ogrenin. Docker Compose ile PUID ve PGID ayarlarini yaparak baslayin.

Chaptarr nedir ve Readarr kullanıcıları neden ihtiyaç duyar

Chaptarr, sesli kitapları ve e-kitapları tek bir örnek üzerinden yöneten bir Readarr çatalıdır (fork). Yeni sürümleri izler, bunları indirme istemcinize gönderir, ardından sonuçları yeniden adlandırarak kütüphanenize yerleştirir. Herhangi bir oynatma işlemi yapmaz, bu nedenle Audiobookshelf gibi bir oynatıcı ile birlikte kullanmanız gerekir.

Readarr, 27 Haziran 2025 tarihinde kullanımdan kaldırılmıştır. Servarr ekibinin kendi duyurusu bunun nedenini açıklamaktadır: projenin meta verileri kullanılamaz hale gelmiş ve Open Library'ye geçiş için yapılan topluluk çabaları durmuştur. Depo arşivlenmiştir. Bu durum, kitap ve sesli kitap koleksiyonlarını bakımı yapılan bir yöneticiden mahrum bırakmış ve Chaptarr bu görevi devralmıştır. Sonarr ve Radarr'dan zaten bildiğiniz yapıyı (indeksleyiciler, indirme istemcileri, kalite profilleri, kök klasörler) korur ve buna sesli kitap yönetimi ekler: anlatıcı farkındalıklı düzenleme, tek bir başlığın birden fazla sürümü, M4B ve bölümlere ayrılmış MP3 desteği ve MP3'ten M4B'ye dönüştürme.

Bu kılavuzda, 9 Ağustos 2026 tarihindeki en yeni sürüm olan chaptarr/chaptarr:0.9.925 imaj etiketi kullanılmıştır. 11 Ekim 2026 itibarıyla en yeni sürüm, 27 Eylül 2026 tarihinde yayınlanan 0.9.965'tir. Aşağıdaki adımlar yalnızca 0.9.925 sürümünde test edilmiştir, bu nedenle dosyalar bu etiketi korumaktadır; daha yeni bir sürüme geçmeden önce sürüm notlarını okuyun. Chaptarr kendisini beta yazılım olarak tanımlar. Yerine yenisini koyamayacağınız bir kütüphaneye yönlendirmeden önce son kısımdaki bakım bölümünü okuyun.

Başlamadan önce gerekenler

Docker ve Compose eklentisi kurulu bir VPS ile kütüphaneniz için yeterli disk alanı gereklidir. Sesli kitaplar büyük boyutludur ve hardlink kullanılamayan bir içe aktarma işlemi, dosyanın iki kopyasını bir süre tutar; bu durum aşağıdaki volume bölümünde açıklanmıştır. Eğer sunucunuzda Docker henüz kurulu değilse, Docker'ın bir VPS üzerinde kurulu ve çalışır durumda olması ile başlayıp geri dönün.

Chaptarr şu an yalnızca Docker imajı olarak yayınlanmaktadır. Yerel destek geliştirme aşamasındadır, deneysel bir Windows sürümü planlanmaktadır ve herhangi bir dağıtım paketi bulunmamaktadır. Konteyner, veritabanını varsayılan olarak /config dizininde SQLite biçiminde saklar; halihazırda bir PostgreSQL sunucunuz varsa Chaptarr__Postgres__* ortam değişkenleri aracılığıyla harici bir PostgreSQL sunucusu kullanabilir. Tek bir kullanıcı ve tek bir sunucu için SQLite doğru tercihtir.

Chaptarr için Compose servisi

Bu servis, mevcut bir yığına (stack) entegre olur. Yayınlanmış bir etiketi sabitler, web arayüzünü yalnızca loopback üzerinde yayınlar ve indirme istemcinizin halihazırda kullandığı ağa katılır.

services:
  chaptarr:
    image: chaptarr/chaptarr:0.9.925
    container_name: chaptarr
    environment:
      - PUID=1000
      - PGID=1000
      - UMASK=002
      - TZ=Europe/Berlin
    volumes:
      - ./config:/config
      - /srv/media/audiobooks:/audiobooks
      - /srv/media/ebooks:/ebooks
      - /srv/media/downloads:/downloads
    ports:
      - 127.0.0.1:8789:8789
    restart: unless-stopped
    networks:
      - arr

networks:
  arr:
    external: true

external: true satırı, "bu ağ zaten mevcut, ona bağlan" anlamına gelir. Prowlarr ve torrent istemciniz farklı bir Compose projesinden geliyorsa bunu kullanın; aksi takdirde ikinci bir Compose dosyası kendi izole ağını oluşturur ve Chaptarr, qbittorrent adresini isimle çözümleyemez. Ağın gerçek adını docker network ls komutu ile öğrenin. Eğer yığınınız zaten tek bir dosyada bulunuyorsa, chaptarr: servisini o dosyaya ekleyin ve tüm networks: bloğunu silin. Daha geniş yapılandırma Docker Compose altında tam bir arr yığını bölümünde, isimlendirme kuralları ise Compose ağları ve servis isimleri nasıl çözümlenir bölümünde ele alınmıştır.

Yapılandırma dizinini kendiniz oluşturun ve ardından servisi başlatın.

mkdir -p ./config
sudo chown 1000:1000 ./config
docker compose up -d
docker compose ps
docker compose logs -f chaptarr

docker compose ps komutu, container durumunu Up olarak göstermelidir. Restarting olarak listelenen bir container başlatılamamış ve yeniden deneniyor demektir; nedenini bulmak için günlük kayıtlarını okuyun. Uygulama 8789 numaralı portta dinlemeye başladığında günlük akışı duracaktır.

PUID, PGID ve Docker'ın root olarak oluşturduğu dizin

Chaptarr, PUID=99 ve PGID=100 değerlerini boş bıraktığınızda varsayılan olarak bunları kullanır. Bunlar unRAID değerleridir; standart bir Ubuntu VPS üzerinde ise hiçbir kullanıcıya karşılık gelmezler, bu nedenle dosyalar giriş yaptığınız kullanıcının yazamayacağı bir sahiplikle oluşturulur. Kendi kullanıcı numaralarınızı id -u ve id -g ile öğrenin ve bu değerleri dosyaya girin.

Aynı dosyalara erişen her container'ın aynı çifti kullanması gerekir. İndirme istemcisi /srv/media/downloads dizinine yazar, Chaptarr dosyayı /srv/media/audiobooks dizinine taşır ve oynatıcı dosyayı oradan okur. İndirme istemcisi 1000:1000 olarak yazıyor ve Chaptarr 99:100 olarak çalışıyorsa, içe aktarma işlemi başarısız olur. Dosyanın sahibi olmak belirleyici değildir: bir dosyayı oluşturmak, yeniden adlandırmak veya silmek için o dosyayı içeren dizinde yazma izni gerekir. 1000 numaralı kullanıcı tarafından standart 755 moduyla oluşturulan dizinler, 99:100 kullanıcısına yazma erişimi vermez; bu yüzden Chaptarr kitabı kütüphaneye taşıyamaz veya indirilenler klasöründen silemez. UMASK=002, yeni dosyaları grup tarafından yazılabilir hale getirir; birden fazla container aynı medya grubunu paylaştığında istenen durum budur. Tam eşleme PUID ve PGID'nin container kullanıcısını ana makine dosyalarıyla nasıl eşlediği bölümünde açıklanmıştır.

README dosyası, yapılandırma dizinini önceden oluşturmanızı ve Compose user: geçersiz kılma işleminden kaçınmanızı önerir. docker compose up komutunu çalıştırdığınızda ./config mevcut değilse, Docker bunu sizin için root:root sahipliğinde oluşturur. Sabitlenmiş 0.9.925 imajında, giriş noktası (entrypoint) root olarak başlar ve yapılandırılmış UID ve GID'ye geçmeden önce /config dizininin ve veritabanı dosyalarının sahipliğini onarır; bu nedenle root tarafından yeni oluşturulan bir dizin genellikle yeniden başlatma döngüsüne neden olmaz. Bir user: geçersiz kılma işlemi bu kurulumu atlar; salt okunur bir mount veya sahiplik değişikliğine izin vermeyen bir dosya sistemi, veritabanı yazma işlemlerini yine de engelleyebilir. İsimler yerine sayısal sahipleri gösteren ls -ln ./config komutu ile kontrol edin. İki sıfır, dizinin root tarafından sahiplenildiği anlamına gelir. Günlük kayıtları yazılabilir yerel bir dizinde izin hatası olduğunu doğruluyorsa, sudo chown -R 1000:1000 ./config ile sorunu düzeltin ve container'ı yeniden başlatın.

Yukarıdaki yerleşim, projenin kendi çalıştırma komutuyla uyumlu olacak şekilde /audiobooks, /ebooks ve /downloads dizinlerini ayrı bağlama noktaları (bind) olarak bağlar. Bu yapı okunması kolay olsa da gerçek bir maliyeti vardır: hardlink'ler çalışmaz.

Hardlink, disk üzerindeki aynı veriye verilen ikinci bir isimdir. Ekstra alan kaplamaz ve anında gerçekleşir; bu nedenle arr ailesi, kopyalama yerine hardlink kullanmayı tercih eder. Bir hardlink yalnızca tek bir dosya sistemi içinde çalışır. Konteyner içinde bunlar üç ayrı bağlama noktası olduğundan, ana makine yolları aynı disk üzerinde olsa bile çekirdek bağlantıyı reddeder. Bunu kendiniz test edebilirsiniz.

docker exec chaptarr sh -c 'touch /downloads/linktest && ln /downloads/linktest /audiobooks/linktest'

Komut, Invalid cross-device link ile biten bir hata vererek başarısız olur. Bu, çekirdeğin bağlama noktaları arasında bağlantı kurmayı reddetmesidir ve Chaptarr'ın dosyayı kopyalamaya geri dönmesinin tam nedeni budur. Kopyalama işlemi doğrudur ancak daha yavaştır; ayrıca torrent'i kaldırmadığınız sürece (ki seeding devam ettiği sürece kaldırmayacaksınız) sesli kitap diskte iki kez var olur. İşlem sonrasında /srv/media/downloads/linktest dosyasını silin.

Hardlink'leri korumak için bunun yerine tek bir üst dizini bağlayın:

    volumes:
      - ./config:/config
      - /srv/media:/data

Ardından Chaptarr içindeki kök klasörleri /data/audiobooks ve /data/ebooks olarak ayarlayın ve indirme istemcisine aynı /srv/media:/data bağlama noktasını verin; böylece her iki konteyner de tek ve aynı yolu görür. Öncelikle ana makine tarafının tek bir dosya sistemi olduğunu doğrulayın: df -h /srv/media/downloads /srv/media/audiobooks komutu, her iki yol için de Filesystem sütununda aynı değeri yazdırmalıdır. Farklı değerler, farklı diskler anlamına gelir ve hiçbir bağlama yerleşimi bu diskler arasında hardlink oluşturamaz. Bununla named storage arasındaki ödünleşim medya için bind mount ve named volume karşılaştırması bölümünde ele alınmıştır.

Web arayüzüne dışarıya açmadan erişim

Port satırı 127.0.0.1 üzerinde yayın yapar, bunun bir nedeni vardır. ufw deny 8789, yayınlanan bir Docker portunu korumaz; çünkü Docker, kendi NAT (ağ adresi çevirisi) kurallarını çekirdeğin ufw'den önce ulaştığı bir zincire yazar. Bu nedenle trafik, sizin kuralınız kontrol edilmeden önce yönlendirilir. Bu davranış kullanıcıları sürekli yanıltır ve yayınlanan bir Docker portunun ufw kurallarınızı neden görmezden geldiği konusunda açıklanmıştır. Loopback adresine bağlamak bu sorunu tamamen ortadan kaldırır.

Arayüze kendi makinenizden bir SSH tüneli üzerinden erişin:

ssh -N -L 8789:127.0.0.1:8789 you@your-server

Bu komutu çalışır durumda bırakın ve tarayıcınızda http://127.0.0.1:8789 adresini açın. İlk çalıştırmada kimlik doğrulamasını yapılandırın. Ancak bundan sonra önünde TLS (aktarım katmanı güvenliği) bulunan bir reverse proxy kullanmayı düşünmelisiniz. Bu araçlardan üç veya dördüne ayrı parolalarla tünel üzerinden bağlandığınızda, daha düzenli çözüm proxy'yi Authentik gibi self-hosted bir tek oturum açma sunucusunun arkasına almaktır; böylece tek bir giriş tüm uygulamaları kapsar ve tek bir yetki iptali hepsini kapatır.

Indexer ve indirme istemcilerini bağlama

Chaptarr, standart arr indexer ve indirme istemcisi protokollerini kullanır. Bu nedenle Prowlarr, indexer'ları Sonarr'da olduğu gibi Chaptarr'a da aynı yöntemle aktarır; yaygın torrent ve usenet istemcileri ise herhangi bir özel işleme gerek kalmadan bağlanır.

Bir ayar neredeyse herkesin hata yapmasına neden olur. Chaptarr indirme istemcisi ana bilgisayarını (host) sorduğunda, localhost veya 127.0.0.1 yazmayın. Bir container içerisinde bu adres, container'ın kendisini ifade eder; bu durumda Chaptarr kendi 8080 numaralı portuyla iletişim kurmaya çalışır ve bağlantı hatası verir. Bunun yerine 8080 portu ile birlikte qbittorrent container adını kullanın. Her iki container'ın da aynı ağda olduğunu, bağlı tüm container'ları isimleriyle listeleyen docker network inspect arr komutu ile doğrulayın.

İndirme istemciniz network_mode: "service:gluetun" ile bir VPN container'ı üzerinden çalışıyorsa, Gluetun'ın ağ ad alanını (network namespace) paylaştığı için ağ üzerinde kendine ait bir ismi yoktur. Bu istemciye, Gluetun'ın dışarıya açtığı port üzerinden gluetun olarak erişin. Bu yapılandırma ve beraberinde gelen yönlendirme işlemleri Gluetun üzerinden indirme istemcisi yönlendirme bölümünde açıklanmıştır.

Readarr geçişi: bir taşımanın gerçek maliyeti

Chaptarr, Readarr'ın meta veri kaynaklarıyla uyumlu değildir. Başlıkları, yazarları ve sürümleri kendi hattı üzerinden çeşitli sağlayıcılar aracılığıyla çözer; bu nedenle Readarr'ın depoladığı tanımlayıcıların burada bir karşılığı yoktur. Veritabanı içe aktarma veya doğrudan yükseltme yolu bulunmamaktadır.

Mevcut bir kütüphane için bu, dosyaların güvende olduğu ancak ayarların taşınamayacağı anlamına gelir. Bu süreçte diskteki hiçbir veriye dokunulmaz. Bir kök dizin eklersiniz, kütüphane içe aktarma işlemini başlatırsınız ve Chaptarr bulduğu dosyaları kendi meta verileriyle eşleştirir. Manuel olarak yeniden oluşturmanız gerekenler: kalite profilleri, adlandırma formatı, indeksleyici ve istemci ayarları ile Chaptarr'ın yanlış eşleştirdiği her öğedir. Büyük bir kütüphane manuel düzeltmeler gerektireceğinden, on dakika yerine bir akşamınızı ayırmanız gerekir.

İşlemi şu sırayla yapın. Readarr container'ını durdurun ancak eski ayarlarınızı yeniden yazarken referans alabilmek için yapılandırma birimini (config volume) silmeyin. Chaptarr'ı önce küçük bir klasöre yönlendirin ve her şeyi içe aktarmadan önce eşleşmeleri kontrol edin. Eski container'ı ancak sonuçtan memnun kaldığınızda kaldırın.

Tüm kütüphaneyi taramadan önce bilinmesi gereken bir gizlilik detayı: meta veri sorguları api2.chaptarr.com adresine gider. README dosyası, bu isteklerin sağlayıcı kimliklerini, arama metnini, medya türünü, etiketleri ve dosya adlarını içerebileceğini; ancak tam dosya yollarını, kullanıcı kimliğini ve kimlik bilgilerini içermediğini belirtir. Dosya adları sunucunuzdan dışarı çıkar. Bu, bir meta veri servisi için normaldir ancak bu kararı bilinçli olarak vermelisiniz.

Sesli kitapları bir oynatıcıya aktarma

Chaptarr dosyaları düzenler. Bunları oynatmak başka bir programın görevidir; Audiobookshelf, dinleme konumunuzu cihazlar arasında senkronize ettiği ve mobil uygulamaları bulunduğu için genellikle tercih edilen eşleşen yazılımdır. Resmi imajı ghcr.io/advplyr/audiobookshelf:latest şeklindedir ve belgelenmiş Compose örneği, ana makine üzerindeki 13378 numaralı portu container içindeki 80 numaralı porta yönlendirir.

  audiobookshelf:
    image: ghcr.io/advplyr/audiobookshelf:latest
    container_name: audiobookshelf
    ports:
      - 127.0.0.1:13378:80
    volumes:
      - ./abs/config:/config
      - ./abs/metadata:/metadata
      - /srv/media/audiobooks:/audiobooks
    environment:
      - TZ=Europe/Berlin
    restart: unless-stopped

Chaptarr'ın yazma yaptığı aynı ana makine dizinini bağlayın, ardından web arayüzü üzerinden bir kütüphane olarak /audiobooks ekleyin. Bir sonraki tarama işleminden sonra yeni bir içe aktarma görünecektir.

Eğer halihazırda Jellyfin kullanıyorsanız, ilgili klasörü orada bir kütüphane olarak ekleyebilir ve dosyaları oynatabilirsiniz. Bu tarafın kurulumu bir VPS üzerinde medya sunucusu olarak Jellyfin çalıştırma rehberinde ele alınmıştır. E-kitap tarafı için /srv/media/ebooks dosyasını bir okuyucu uygulamasına aktarın; Chaptarr'ın görevi dosya isimlendirildikten ve dosyalandıktan sonra sona erer.

Bakım riski: lisans, çalışma zamanı ve hızlı değişen etiketler

Chaptarr, GPL-3.0 lisansına sahiptir ve telif hakkı Chaptarr katkıcılarına, bölümleri ise Servarr ekibine aittir; bu sayede kod açık kalır ve mevcut sürdürücü projeyi bırakırsa herkes tekrar çatallayabilir (fork). Proje, Ağustos 2026 itibarıyla çalışma zamanının güncel uzun süreli destek sürümü olan .NET 10 üzerine inşa edilmiştir; bu da temel yapının aylar yerine yıllarca destekleneceği anlamına gelir. Bu iki gerçek, projenin gelecek yıl var olup olmayacağını değerlendirirken önem taşır.

Sürüm numaraları hızla değişmektedir. 0.9.925 sürümü 9 Ağustos 2026 tarihinde yayımlanmış ve sonraki yedi hafta içinde beş sürüm daha gelmiştir. 0.9.958 sürümüne kadar olan her sürüm ön sürüm (pre-release) olarak yayımlanmış; 27 Eylül 2026 tarihli 0.9.965 ise tam sürüm olarak işaretlenen ilk sürümdür. Kesin bir etiket sabitleyin. latest kullanmak, denetimsiz bir docker compose pull işleminin sizi bir hafta içinde birkaç sürüm ileri taşıyabileceği anlamına gelir. Bu kadar genç bir çatallama, sürümler arasında API değişikliği yapabilir; bu da yazdığınız tüm betikleri veya panelleri bozabilir. Sabitleme, kendi barındırdığınız her genç proje için edinilmesi gereken bir alışkanlıktır. Kendi kendine barındırılan bir antrenman takipçisi olarak openGym çalıştırma kılavuzunun tam olarak aynı nedenle sabit bir git etiketi üzerinden dağıtılmasının sebebi budur.

Her yükseltmeden önce yedek alın, ardından yükseltmeyi bilinçli bir şekilde gerçekleştirin.

docker compose stop chaptarr
sudo tar czf chaptarr-config-backup.tgz ./config
docker compose start chaptarr
docker compose pull chaptarr
docker compose up -d chaptarr

Proje, yaklaşık altı ay ve on bir binden fazla kullanıcı genelinde hiçbir veri kaybı olayı bildirmemiştir; yine de yedeklerin tutulmasını ve kaybedilmesini göze alamayacağınız bir kütüphaneye yönlendirilmemesini tavsiye etmektedir. Her iki uyarıyı da ciddiye alın. Yapılandırma arşivini sunucudan dışarı kopyalayın; çünkü koruduğu şeyle aynı diskte duran bir yedek, yedek sayılmaz. Bu tek tarball dosyası, SQLite veritabanlarını ve /config altındaki yapılandırmayı içerdiği için uygulamanın yerel durumunu kapsar. Ayrı bir veritabanı sunucusunda duran her şey için veritabanının da dökümünün alınması gerekir. Chatwoot'u bir VPS üzerinde Postgres verileri ve yüklenen dosyalarıyla birlikte kendi kendine barındırma sürecindeki yedekleme adımı bu şekildedir.

Hata modları ve karşılaşacağınız dizgeler

Konteyner sürekli yeniden başlıyor. docker compose ps, Restarting değerini gösterir. Önce docker compose logs chaptarr dosyasını okuyun. Yalnızca root sahipliğindeki bir ./config, döngüyü açıklamaz: giriş noktası (entrypoint), uygulamayı başlatmadan önce sahiplik ayarlarını normalde düzeltir. Günlük kayıtları veri dizininin yazılabilir olmadığını bildiriyorsa, bir Compose user: geçersiz kılma (override) ayarını, salt okunur bir mount işlemini veya sahiplik değişikliğini reddeden bir dosya sistemini kontrol edin. Giriş noktasının kurulumu yapabilmesi için geçersiz kılma ayarını kaldırın; yazılabilir yerel bir dizindeki hatalı sahiplik için sudo chown -R 1000:1000 ./config komutunu çalıştırın.

İçe aktarma işlemleri tamamlanmıyor ve dosyalar indirilenler klasöründe kalıyor. Chaptarr indirilen dosyayı okuyabiliyor ancak kütüphane dizinine yazamıyor. ls -ln /srv/media/audiobooks değerini PUID ve PGID ayarlarınızla karşılaştırın. Farklı bir UID'ye ait olan veya grup yazma izni olmayan bir dizin, taşıma işlemini durdurur. UMASK=002, yeni dosyalar için ikinci durumu engeller.

Disk kullanımı her içe aktarma işleminden sonra iki katına çıkıyor. Hardlink oluşturulmadığı için dosya kopyalanmıştır. Volumes bölümündeki ln testini çalıştırın. Invalid cross-device link ile biten bir hata bunu doğrular; tek ebeveynli mount işlemi sorunu çözer.

İndirme istemcisi bağlantı kurmuyor. Host olarak localhost girdiniz. Konteynerin içinde bu, Chaptarr'ın kendisidir. Konteyner adını kullanın ve docker network inspect arr komutunun her iki konteyneri de listelediğini doğrulayın.

Compose servisi başlatmayı reddediyor. Bind for 127.0.0.1:8789 failed: port is already allocated, portun başka bir işlem tarafından kullanıldığı anlamına gelir. sudo ss -lntp | grep 8789 ile bu işlemi bulun.

Tarayıcı hiçbir şey göstermiyor. Port 127.0.0.1 adresine bağlandığında, dizüstü bilgisayarınızın internet üzerinden bağlanabileceği bir yer kalmaz. Bu beklenen davranıştır. Önce SSH tünelini açın.

FAQ

Readarr kütüphanemi Chaptarr'a taşıyabilir miyim?

Doğrudan içe aktarma (import) yoluyla hayır. Chaptarr, Readarr'ın meta veri kaynaklarıyla uyumlu değildir ve kendi sağlayıcı hattını kullanır; bu nedenle Readarr'da kayıtlı tanımlayıcıların bir karşılığı yoktur ve veritabanı dönüştürme işlemi yapılamaz. Disk üzerindeki dosyalarınız etkilenmez. Aynı yolları kök dizin (root folder) olarak ekleyip bir kütüphane taraması başlatmalı ve dosyaların Chaptarr tarafından eşleştirilmesine izin vermelisiniz. Kalite profilleri, adlandırma formatı, indeksleyici ayarları ve hatalı eşleşmelerin düzeltilmesi manuel işlem gerektirir; bu yüzden her şeyi içe aktarmadan önce küçük bir klasörle deneme yapın.

Chaptarr sesli kitap klasörüme neden yazamıyor?

Kapsayıcının (container) kullanıcısı, genellikle dosyaların sahibi olan UID'den farklı bir UID ile çalıştığı için o dizinde yazma iznine sahip değildir. Chaptarr, bu değişkenler ayarlanmadığında varsayılan olarak PUID=99 ve PGID=100 değerlerini kullanır; bunlar unRAID değerleridir ve standart bir Ubuntu VPS üzerinde hatalıdır. Bunları kendi id -u ve id -g değerlerinize göre ayarlayın, indirme istemcisinde aynı çifti kullanın ve yeni dosyaların grup tarafından yazılabilir kalması için UMASK=002 ayarını yapın. Kütüphane dizininde ls -ln komutuyla sahiplik bilgilerini kontrol edin; bu komut isim yerine sayısal değerleri gösterdiği için karşılaştırma yapmanızı sağlar.

İçe aktarma işleminden sonra disk kullanımım neden iki katına çıktı?

Chaptarr, dosyayı hardlink yapamadığı için kopyaladı. /downloads ve /audiobooks dizinlerini ayrı bağlamalar (bind) olarak mount etmek, kapsayıcı içinde bunların farklı mount noktaları olmasına neden olur ve çekirdek, Invalid cross-device link hatası vererek farklı mount noktaları arasında hardlink yapılmasına izin vermez. /srv/media:/data gibi tek bir üst dizini mount edin ve uygulama içinde /data/downloads ile /data/audiobooks yollarını kullanın. Ayrıca her iki yolun da aynı ana bilgisayar dosya sisteminde olması gerekir; bunu df -h ile doğrulayabilirsiniz.

Chaptarr sesli kitaplarımı oynatıyor mu?

Hayır. Chaptarr kitapları bulur, indirir, yeniden adlandırır ve düzenler; oynatma işlemi ayrı bir programın görevidir. Sesli kitaplardaki kaldığınız yeri cihazlar arasında senkronize ettiği için genellikle Audiobookshelf ile birlikte kullanılır; bunun için aynı sesli kitap yolu mount edilmiş şekilde resmi ghcr.io/advplyr/audiobookshelf:latest imajı kullanılmalıdır. Klasörü bir kütüphane olarak eklerseniz Jellyfin de dosyaları oynatacaktır.

Önem verdiğim bir kütüphanede Chaptarr çalıştırmak güvenli mi?

Bu, yeni bir çataldan (fork) çıkan beta aşamasındaki bir yazılımdır ve proje bunu açıkça belirtmektedir; ancak yaklaşık altı ay ve on bir binden fazla kullanıcı süresince herhangi bir veri kaybı olayı bildirilmemiştir. Güven veren kısımlar, kodun çatallanabilir kalmasını sağlayan GPL-3.0 lisansı ve Ağustos 2026 itibarıyla uzun süreli destek (LTS) sunan .NET 10 tabanlı çalışma zamanıdır. latest yerine 0.9.925 gibi sabit bir imaj etiketi kullanın, her güncellemeden önce /config yedeğini alın ve bu arşivi sunucunun dışında saklayın.

Bu yazı işinize yaradı mı?