VPS वर audiobooks साठी Chaptarr self-host कसे करावे
Readarr 27 June 2025 रोजी निवृत्त झाल्यानंतर Chaptarr हा audiobooks आणि ebooks साठी पर्याय आहे. Compose service, PUID, PGID आणि metadata त्रुटी समजून घ्या.
Chaptarr काय आहे आणि Readarr वापरकर्त्यांना त्याची गरज का आहे
Chaptarr हा Readarr चा fork आहे. तो एकाच instance मधून audiobooks आणि ebooks व्यवस्थापित करतो. तो नवीन releases साठी लक्ष ठेवतो, त्या तुमच्या download client कडे पाठवतो, त्यानंतर मिळालेल्या फाइल्सची नावे बदलतो आणि त्या तुमच्या library मध्ये व्यवस्थित ठेवतो. तो कोणतीही सामग्री प्ले करत नाही. त्यामुळे तो Audiobookshelf सारख्या player सोबत वापरा.
Readarr 27 June 2025 रोजी retired झाले. Servarr टीमच्या स्वतःच्या सूचनेनुसार याचे कारण असे होते: प्रकल्पाचा metadata वापरण्यायोग्य राहिला नव्हता आणि Open Library कडे स्थलांतर करण्याचा community प्रयत्न ठप्प झाला. Repository archived आहे. त्यामुळे book आणि audiobook collections साठी maintained manager उपलब्ध राहिला नाही. Chaptarr ने ही जबाबदारी स्वीकारली. Sonarr आणि Radarr मधील तुम्हाला परिचित असलेली रचना तो कायम ठेवतो (indexers, download clients, quality profiles, root folders) आणि audiobook हाताळणी जोडतो: narrator-aware organisation, एका title च्या अनेक editions, M4B आणि chaptered MP3 support, तसेच MP3 ते M4B conversion.
या walkthrough मध्ये chaptarr/chaptarr:0.9.925 image tag वापरला होता. 9 August 2026 रोजी तो नवीनतम release होता. 11 October 2026 पर्यंत नवीनतम release 0.9.965 आहे. तो 27 September 2026 रोजी published झाला. खालील पायऱ्या फक्त 0.9.925 वर तपासल्या होत्या. त्यामुळे फाइल्समध्ये तोच tag ठेवला आहे. नवीन tag वर जाण्यापूर्वी release notes वाचा. Chaptarr स्वतःला beta software म्हणतो. ज्या library ची पुनर्निर्मिती करता येणार नाही, तिच्याकडे ते निर्देशित करण्यापूर्वी शेवटाजवळील maintenance section वाचा.
तुम्ही सुरू करण्यापूर्वी आवश्यक गोष्टी
Docker आणि Compose plugin चालू असलेला VPS तसेच library साठी पुरेशी disk space आवश्यक आहे. Audiobooks मोठ्या आकाराच्या असतात. Hardlinks वापरता न येणाऱ्या import दरम्यान काही काळ file च्या दोन प्रती ठेवाव्या लागतात. खालील volume विभागात याचे स्पष्टीकरण दिले आहे. तुमच्या सर्व्हरवर Docker अद्याप नसेल, तर VPS वर Docker स्थापित करून चालू करणे या मार्गदर्शकापासून सुरू करा आणि त्यानंतर येथे परत या.
Chaptarr सध्या फक्त Docker image म्हणून उपलब्ध आहे. Native support चे काम सुरू असल्याचे नमूद केले आहे. Experimental Windows build नियोजित आहे. कोणतेही distribution package उपलब्ध नाही. Container त्याचा database /config मध्ये default ने SQLite म्हणून साठवतो. तुम्ही PostgreSQL server आधीपासून चालवत असल्यास, Chaptarr__Postgres__* environment variables द्वारे तो बाह्य PostgreSQL server वापरू शकतो. एका मशीनवर एका वापरकर्त्यासाठी SQLite हा योग्य पर्याय आहे.
Chaptarr साठी Compose सेवा
ही सेवा आधीच अस्तित्वात असलेल्या स्टॅकचा भाग बनते. ती एका विशिष्ट रिलीज टॅगला पिन करते, वेब UI फक्त लूपबॅकवर प्रकाशित करते आणि तुमच्या डाउनलोड क्लायंटने वापरलेल्या नेटवर्कशी जोडली जाते.
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: trueexternal: true ओळीचा अर्थ असा आहे की "हे नेटवर्क आधीच अस्तित्वात आहे, त्याला जोडा". जेव्हा Prowlarr आणि तुमचा टॉरेंट क्लायंट वेगळ्या Compose प्रोजेक्टमधून येतात, तेव्हा याचा वापर करा. अन्यथा, दुसरे Compose फाइल स्वतःचे स्वतंत्र नेटवर्क तयार करेल आणि Chaptarr कधीही qbittorrent ला नावाने रिझॉल्व्ह करू शकणार नाही. docker network ls वापरून प्रत्यक्ष नाव मिळवा. जर तुमचा स्टॅक आधीच एकाच फाइलमध्ये असेल, तर त्या फाइलमध्ये chaptarr: सेवा जोडा आणि संपूर्ण networks: ब्लॉक काढून टाका. विस्तृत मांडणी Docker Compose अंतर्गत पूर्ण arr स्टॅक मध्ये दिली आहे आणि नामकरण नियम Compose नेटवर्क आणि सेवा नावे कशी रिझॉल्व्ह होतात मध्ये दिले आहेत.
कॉन्फिगरेशन डिरेक्टरी स्वतः तयार करा आणि त्यानंतर सेवा सुरू करा.
mkdir -p ./config
sudo chown 1000:1000 ./config
docker compose up -d
docker compose ps
docker compose logs -f chaptarrdocker compose ps ने कंटेनर Up म्हणून दाखवला पाहिजे. Restarting म्हणून सूचीबद्ध असलेला कंटेनर सुरू होण्यास अपयशी ठरला आहे आणि तो पुन्हा प्रयत्न करत आहे; कारण शोधण्यासाठी त्याचे लॉग वाचा. जेव्हा ॲप 8789 पोर्टवर विनंत्या स्वीकारण्यास (listening) सुरुवात करते, तेव्हा लॉग स्क्रोल होणे थांबते.
PUID, PGID आणि Docker ने root म्हणून तयार केलेली डिरेक्टरी
जेव्हा तुम्ही PUID=99 आणि PGID=100 सेट करत नाही, तेव्हा Chaptarr डीफॉल्ट व्हॅल्यू वापरते. या unRAID च्या व्हॅल्यूज आहेत आणि सामान्य Ubuntu VPS वर त्या कोणाशीही संबंधित नसतात, त्यामुळे फाईल्स अशा मालकाच्या नावे तयार होतात ज्यावर तुम्ही तुमच्या लॉगिनने लिहू शकत नाही. तुमचे स्वतःचे नंबर id -u आणि id -g वापरून तपासा आणि ते फाईलमध्ये टाका.
ज्या कंटेनरचा संबंध एकाच फाईल्सशी येतो, त्या प्रत्येकासाठी ही जोडी समान असणे आवश्यक आहे. डाउनलोड क्लायंट /srv/media/downloads मध्ये लिहितो, Chaptarr ती फाईल /srv/media/audiobooks मध्ये हलवते आणि प्लेयर ती तिथे वाचतो. जर डाउनलोड क्लायंट 1000:1000 म्हणून लिहित असेल आणि Chaptarr 99:100 म्हणून चालत असेल, तर इम्पोर्ट अयशस्वी होतो. फाईलचा मालक असणे महत्त्वाचे नाही: फाईल तयार करणे, तिचे नाव बदलणे किंवा ती हटवणे यासाठी ती फाईल ज्या डिरेक्टरीमध्ये आहे, तिथे 'write' परवानगी असणे आवश्यक आहे. युजर 1000 ने सामान्य 755 मोडसह तयार केलेल्या डिरेक्टरीजमध्ये 99:100 ला 'write' प्रवेश नसतो, त्यामुळे Chaptarr पुस्तक लायब्ररीमध्ये फाईल करू शकत नाही किंवा डाउनलोड्समधून ते हटवू शकत नाही. UMASK=002 मुळे नवीन फाईल्स ग्रुप-राइटेबल होतात, जे जेव्हा अनेक कंटेनर्स एक मीडिया ग्रुप शेअर करतात तेव्हा आवश्यक असते. संपूर्ण मॅपिंग PUID आणि PGID कंटेनर युजरला होस्ट फाईल्सवर कसे मॅप करतात येथे दिले आहे.
README मध्ये प्रथम कॉन्फिगरेशन डिरेक्टरी तयार करण्याचा आणि Compose user: ओव्हरराइड टाळण्याचा सल्ला दिला आहे. जर तुम्ही docker compose up चालवताना ./config अस्तित्वात नसेल, तर Docker ती तुमच्यासाठी तयार करते, ज्याचा मालक root:root असतो. पिन केलेल्या 0.9.925 इमेजमध्ये, एंट्रीपॉइंट root म्हणून सुरू होतो आणि कॉन्फिगर केलेल्या UID आणि GID वर स्विच करण्यापूर्वी /config आणि त्याच्या डेटाबेस फाईल्सची मालकी दुरुस्त करतो, त्यामुळे नवीन तयार केलेली root-मालकीची डिरेक्टरी सहसा रीस्टार्ट लूप निर्माण करत नाही. user: ओव्हरराइड ही सेटअप प्रक्रिया बायपास करते आणि रीड-ओन्ली माउंट किंवा फाईलसिस्टम जी मालकी बदलण्यास नकार देते, ती डेटाबेस राइट्स रोखू शकते. ls -ln ./config सह तपासा, जे नावाऐवजी संख्यात्मक मालक दर्शवते. दोन शून्य म्हणजे root मालक आहे. जर लॉग्समध्ये राइटेबल लोकल डिरेक्टरीवर परवानगीची त्रुटी (permissions failure) असल्याचे कन्फर्म होत असेल, तर ती sudo chown -R 1000:1000 ./config ने दुरुस्त करा आणि कंटेनर पुन्हा सुरू करा.
वेगवेगळ्या audiobook आणि ebook volumes मुळे hardlinks का काम करत नाहीत
वरील मांडणीत /audiobooks, /ebooks आणि /downloads हे प्रकल्पाच्या स्वतःच्या run command शी जुळणारे स्वतंत्र bind म्हणून mount केले आहेत. ही मांडणी समजण्यास सोपी आहे. मात्र तिची एक वास्तविक किंमत आहे: hardlinks काम करणे थांबवतात.
hardlink म्हणजे डिस्कवरील त्याच डेटासाठी वापरलेले दुसरे नाव. त्यासाठी अतिरिक्त जागा लागत नाही आणि तो तत्काळ तयार होतो. म्हणूनच arr family copying पेक्षा hardlink ला प्राधान्य देते. hardlink फक्त एकाच filesystem मध्ये काम करतो. Container मध्ये हे तीन स्वतंत्र mount points आहेत. त्यामुळे host वरील paths एकाच disk वर असले तरी kernel link नाकारतो. हे स्वतः तपासा.
docker exec chaptarr sh -c 'touch /downloads/linktest && ln /downloads/linktest /audiobooks/linktest'या command मध्ये Invalid cross-device link ने समाप्त होणारी error दिसते. Mount points ओलांडून link तयार करण्यास kernel नकार देत असल्यामुळे ही error येते. Chaptarr file copying कडे fallback का करते, याचे हेच अचूक कारण आहे. Copy योग्य असते, पण ती धीमी असते. तसेच torrent remove करेपर्यंत audiobook दोनदा अस्तित्वात राहते. तुम्ही seeding सुरू ठेवत असताना torrent remove करणार नाही. त्यानंतर /srv/media/downloads/linktest delete करा.
hardlinks सुरू ठेवण्यासाठी एक parent directory mount करा:
volumes:
- ./config:/config
- /srv/media:/dataत्यानंतर Chaptarr मध्ये root folders म्हणून /data/audiobooks आणि /data/ebooks सेट करा. Download client ला तेच /srv/media:/data mount द्या, जेणेकरून दोन्ही containers ना एकच समान path दिसेल. Host side एकाच filesystem वर आहे याची आधी खात्री करा: df -h /srv/media/downloads /srv/media/audiobooks चालवल्यावर दोन्ही entries साठी Filesystem column मध्ये समान value दिसली पाहिजे. वेगवेगळ्या values म्हणजे वेगवेगळे disks. अशा disks दरम्यान कोणतीही mount मांडणी hardlink तयार करू शकत नाही. या पद्धतीचा आणि named storage चा तडजोडीचा आढावा media साठी bind mounts विरुद्ध named volumes येथे दिला आहे.
स्थानिक पातळीवर उघड न करता वेब UI पर्यंत पोहोचणे
port line 127.0.0.1 वर प्रकाशित केली आहे, याला कारण आहे. ufw deny 8789 प्रकाशित Docker port चे संरक्षण करत नाही, कारण Docker स्वतःचे NAT (network address translation) नियम अशा chain मध्ये लिहितो, जिथे kernel ufw च्या नियमांपूर्वी पोहोचतो. त्यामुळे तुमच्या नियमाची तपासणी होण्यापूर्वीच traffic forward केला जातो. हे वर्तन अनेकांना वारंवार गोंधळात टाकते. याचे स्पष्टीकरण प्रकाशित Docker port तुमच्या ufw नियमांकडे दुर्लक्ष का करते येथे दिले आहे. loopback वर bind केल्यास ही समस्या पूर्णपणे टाळता येते.
तुमच्या स्वतःच्या मशीनवरून SSH tunnel द्वारे UI पर्यंत पोहोचा:
ssh -N -L 8789:127.0.0.1:8789 you@your-serverही प्रक्रिया सुरू ठेवा आणि तुमच्या browser मध्ये http://127.0.0.1:8789 उघडा. पहिल्यांदा सुरू करताना authentication configure करा. त्यानंतरच त्याच्या समोर TLS (transport layer security) असलेला reverse proxy वापरण्याचा विचार करा. अशा तीन किंवा चार tools मध्ये स्वतंत्र password वापरून tunnelling करावी लागत असल्यास, अधिक सुव्यवस्थित उपाय म्हणजे Authentik सारखा self-hosted single sign-on server proxy च्या मागे ठेवणे. त्यामुळे प्रत्येक app साठी एकच login पुरतो आणि एका revocation ने सर्व प्रवेश बंद करता येतो.
Indexer आणि download client जोडणे
Chaptarr standard arr indexer आणि download client protocols वापरते. त्यामुळे Prowlarr, Sonarr साठी जसे indexers पाठवते तसेच Chaptarr मध्येही पाठवते. नेहमीचे torrent आणि usenet clients कोणत्याही विशेष configuration शिवाय जोडता येतात.
एक setting जवळजवळ सर्वांनाच गोंधळात टाकते. Chaptarr download client च्या host बद्दल विचारते तेव्हा localhost किंवा 127.0.0.1 लिहू नका. Container च्या आत तो पत्ता स्वतःच्या container कडे निर्देश करतो. त्यामुळे Chaptarr स्वतःच्या port 8080 शी संपर्क साधण्याचा प्रयत्न करते आणि connection होऊ शकत नसल्याचे दाखवते. त्याऐवजी port 8080 सह container name qbittorrent वापरा. दोन्ही containers एकाच network वर आहेत का हे docker network inspect arr वापरून तपासा. हे प्रत्येक जोडलेल्या container चे name दाखवते.
तुमचा download client network_mode: "service:gluetun" वापरून VPN container मार्फत चालत असल्यास, त्याचे network वर स्वतंत्र name नसते. कारण तो Gluetun चा network namespace share करतो. अशा वेळी Gluetun ने expose केलेल्या port वर त्याला gluetun म्हणून address करा. ही रचना आणि त्यासोबतचे routing Gluetun मार्फत download client route करणे येथे स्पष्ट केले आहे.
Readarr मधील अडथळा: स्थलांतराची खरी किंमत
Chaptarr हे Readarr च्या metadata sources शी सुसंगत नाही. ते अनेक providers मार्फत स्वतःच्या pipeline द्वारे titles, authors आणि editions शोधते. त्यामुळे Readarr ने साठवलेले identifiers येथे उपयोगी पडत नाहीत. Database import उपलब्ध नाही आणि थेट upgrade करण्याचा मार्गही नाही.
विद्यमान library साठी याचा अर्थ असा आहे की files सुरक्षित आहेत, पण settings नाहीत. या प्रक्रियेत disk वर आधीपासून असलेल्या कोणत्याही गोष्टीला स्पर्श होत नाही. तुम्ही root folder जोडता, library import चालवता आणि Chaptarr सापडलेल्या files ची स्वतःच्या metadata शी जुळवणी करते. खालील गोष्टी तुम्हाला manually पुन्हा तयार कराव्या लागतील: quality profiles, naming format, indexer आणि client settings, तसेच Chaptarr ने चुकीची केलेली प्रत्येक जुळवणी. मोठ्या library साठी manual corrections कराव्या लागतील. त्यामुळे दहा मिनिटांऐवजी एक संध्याकाळ लागेल असे गृहीत धरा.
हे पुढील क्रमाने करा. Readarr container थांबवा, पण त्याचा config volume ठेवा, जेणेकरून जुनी settings पाहून त्या पुन्हा type करता येतील. सर्वकाही import करण्यापूर्वी Chaptarr ला प्रथम एका लहान folder कडे निर्देशित करा आणि matches तपासा. तुम्ही समाधानी झाल्यावरच जुना container काढा.
संपूर्ण library scan करण्यापूर्वी privacy संदर्भातील एक महत्त्वाची बाब जाणून घ्या: metadata lookups api2.chaptarr.com कडे पाठवले जातात. README नुसार या requests मध्ये provider IDs, search text, media type, tags आणि filenames असू शकतात. त्यात full paths, user identity आणि credentials समाविष्ट नसतात. Filenames तुमच्या server बाहेर जातात. Metadata service साठी हे सामान्य आहे; तरीही हा निर्णय जाणीवपूर्वक घ्या.
ऑडिओबुक्स एका प्लेयरकडे सोपवणे
Chaptarr फाईल्सचे आयोजन करते. त्या प्ले करण्याचे काम दुसऱ्या प्रोग्रामचे आहे आणि Audiobookshelf हा यासाठी सामान्यतः वापरला जाणारा जोडीदार आहे, कारण तो सर्व उपकरणांवर तुम्ही किती ऐकले आहे याचा मागोवा घेतो आणि त्याचे फोन ॲप्स देखील उपलब्ध आहेत. याची अधिकृत इमेज ghcr.io/advplyr/audiobookshelf:latest आहे आणि त्याच्या दस्तऐवजीकरण केलेल्या Compose उदाहरणात होस्ट पोर्ट 13378 हे कंटेनर पोर्ट 80 वर पब्लिश केले जाते.
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 फाईल्स लिहिते, तोच पाथ माउंट करा आणि त्यानंतर वेब UI मध्ये लायब्ररी म्हणून /audiobooks जोडा. पुढील स्कॅननंतर एक नवीन इम्पोर्ट दिसून येईल.
जर तुम्ही आधीच Jellyfin चालवत असाल, तर तुम्ही तो फोल्डर तिथे लायब्ररी म्हणून जोडू शकता आणि ते फाईल्स प्ले करेल. तो भाग सेट करणे VPS वर मीडिया सर्व्हर म्हणून Jellyfin चालवणे यामध्ये समाविष्ट केले आहे. ई-बुकच्या भागासाठी, /srv/media/ebooks एका रीडर ॲप्लिकेशनकडे सोपवा; फाईलला नाव देऊन ती फाइल केल्यावर Chaptarr चे काम संपते.
देखभालीचा धोका: परवाना, रनटाइम आणि वेगाने बदलणारे टॅग
Chaptarr हे GPL-3.0 परवान्याअंतर्गत उपलब्ध आहे. याचे कॉपीराइट Chaptarr योगदानकर्त्यांकडे असून काही भाग Servarr टीमकडून घेण्यात आले आहेत. त्यामुळे कोड ओपन-सोर्स राहतो आणि जर सध्याच्या मेंटेनर्सनी काम थांबवले, तर कोणीही याचे फोर्क (fork) तयार करू शकते. हे .NET 10 वर आधारित आहे, जे ऑगस्ट 2026 पर्यंतचे सध्याचे लाँग-टर्म सपोर्ट (LTS) रनटाइम रिलीज आहे. याचा अर्थ असा की, याचा पाया काही महिन्यांच्या नव्हे तर अनेक वर्षांच्या सपोर्टसाठी तयार आहे. हा प्रकल्प पुढील वर्षी अस्तित्वात असेल की नाही, हे ठरवण्यासाठी या दोन्ही गोष्टी महत्त्वाच्या आहेत.
व्हर्जन नंबर वेगाने बदलत आहेत. 9 ऑगस्ट 2026 रोजी 0.9.925 प्रकाशित झाले होते आणि त्यानंतरच्या सात आठवड्यांत आणखी पाच रिलीज आले. 0.9.958 पर्यंतचे प्रत्येक रिलीज हे प्री-रिलीज म्हणून प्रकाशित केले गेले होते; 27 सप्टेंबर 2026 रोजी आलेले 0.9.965 हे पूर्ण रिलीज म्हणून चिन्हांकित केलेले पहिले व्हर्जन आहे. नेहमी अचूक टॅग पिन (pin) करा. latest वापरल्यास, स्वयंचलित docker compose pull मुळे एका आठवड्यात तुम्ही अनेक व्हर्जन्स पुढे जाऊ शकता. इतका नवीन प्रकल्प असल्याने, रिलीज दरम्यान त्याचे API बदलू शकते, ज्यामुळे तुम्ही लिहिलेली कोणतीही स्क्रिप्ट किंवा डॅशबोर्ड निकामी होऊ शकतो. तुम्ही स्वतः होस्ट करत असलेल्या प्रत्येक नवीन प्रकल्पासाठी व्हर्जन पिन करण्याची सवय लावणे फायदेशीर ठरते. म्हणूनच openGym ला सेल्फ-होस्टेड वर्कआउट ट्रॅकर म्हणून चालवण्यासाठी मार्गदर्शिकेमध्ये ठराविक git टॅगवरूनच डिप्लॉयमेंट केले जाते.
प्रत्येक अपग्रेडपूर्वी बॅकअप घ्या आणि त्यानंतरच जाणीवपूर्वक अपग्रेड करा.
docker compose stop chaptarr
sudo tar czf chaptarr-config-backup.tgz ./config
docker compose start chaptarrdocker compose pull chaptarr
docker compose up -d chaptarrसुमारे सहा महिने आणि अकरा हजारांहून अधिक वापरकर्त्यांच्या कालावधीत या प्रकल्पात कोणताही डेटा गमावल्याची घटना घडलेली नाही. तरीही, बॅकअप ठेवण्याचा आणि ज्या लायब्ररीचा डेटा गमावणे तुम्हाला परवडणार नाही, तिथे हा प्रकल्प न वापरण्याचा सल्ला दिला जातो. या दोन्ही गोष्टी गांभीर्याने घ्या. कॉन्फिगरेशन आर्काइव्ह सर्व्हरवरून बाहेर कॉपी करा, कारण ज्या डिस्कवर मूळ डेटा आहे त्याच डिस्कवर असलेला बॅकअप हा खरा बॅकअप नसतो. तो एकच tarball फाईल ॲपची स्थानिक स्थिती कव्हर करते, कारण त्यात /config अंतर्गत असलेले SQLite डेटाबेस आणि कॉन्फिगरेशन समाविष्ट असते. जर डेटाबेस वेगळ्या सर्व्हरवर असेल, तर त्याचा डंप (dump) घेणे आवश्यक असते. Chatwoot ला VPS वर सेल्फ-होस्ट करताना त्याच्या Postgres डेटा आणि अपलोड केलेल्या फाईल्ससाठी बॅकअपची प्रक्रिया याच स्वरूपात केली जाते.
अपयशाचे प्रकार आणि दिसणारे संदेश
कंटेनर वारंवार रीस्टार्ट होत आहे. docker compose ps मध्ये Restarting दिसते. प्रथम docker compose logs chaptarr वाचा. केवळ root-owned ./config मुळे लूप होत नाही: ॲप सुरू करण्यापूर्वी entrypoint सामान्यतः मालकी हक्क (ownership) दुरुस्त करतो. जर लॉगमध्ये डेटा डिरेक्टरी राइट करण्यायोग्य (writable) नसल्याचे दिसत असेल, तर Compose user: ओव्हरराइड, रीड-ओन्ली माउंट किंवा मालकी हक्क बदलण्यास नकार देणारी फाइलसिस्टम तपासा. ओव्हरराइड काढून टाका जेणेकरून entrypoint सेटअप पूर्ण करू शकेल; जर राइट करण्यायोग्य लोकल डिरेक्टरीवर चुकीची मालकी असेल, तर sudo chown -R 1000:1000 ./config चालवा.
इंपोर्ट पूर्ण होत नाहीत आणि फाइल्स डाउनलोड्समध्येच राहतात. Chaptarr डाउनलोड वाचू शकते पण लायब्ररीमध्ये लिहू शकत नाही. ls -ln /srv/media/audiobooks ची तुलना तुमच्या PUID आणि PGID शी करा. वेगळ्या UID ची मालकी असलेली किंवा ग्रुप राइट नसलेली डिरेक्टरी फाइल हलवण्यास अडथळा आणते. UMASK=002 नवीन फाइल्ससाठी ही समस्या टाळते.
प्रत्येक इंपोर्टनंतर डिस्कचा वापर दुप्पट होतो. हार्डलिंक तयार झालेली नाही, त्यामुळे फाइल कॉपी झाली आहे. व्हॉल्यूम विभागातील ln चाचणी चालवा. Invalid cross-device link ने संपणारी त्रुटी याची पुष्टी करते आणि सिंगल-पॅरेंट माउंट हा त्यावर उपाय आहे.
डाउनलोड क्लायंट कनेक्ट होत नाही. तुम्ही होस्ट म्हणून localhost प्रविष्ट केले आहे. कंटेनरच्या आत ते Chaptarr स्वतःच आहे. कंटेनरचे नाव वापरा आणि docker network inspect arr मध्ये दोन्ही कंटेनर दिसत आहेत का ते तपासा.
Compose सेवा सुरू करण्यास नकार देत आहे. Bind for 127.0.0.1:8789 failed: port is already allocated चा अर्थ असा की पोर्ट इतर कोणीतरी वापरत आहे. sudo ss -lntp | grep 8789 वापरून ते शोधा.
ब्राउझरमध्ये काहीही दिसत नाही. पोर्ट 127.0.0.1 वर बाउंड असल्याने, तुमच्या लॅपटॉपला इंटरनेटवरून कनेक्ट करण्यासाठी काहीही उपलब्ध नाही. हे अपेक्षित वर्तन आहे. प्रथम SSH टनेल उघडा.
FAQ
मी माझी Readarr लायब्ररी Chaptarr मध्ये स्थलांतरित करू शकतो का?
import म्हणून नाही. Chaptarr हे Readarr च्या मेटाडेटा स्रोतांशी सुसंगत नाही आणि ते स्वतःची प्रोव्हायडर पाइपलाइन वापरते. त्यामुळे Readarr मध्ये साठवलेले आयडेंटिफायर्स येथे निरुपयोगी आहेत आणि डेटाबेसचे थेट रूपांतरण शक्य नाही. तुमच्या डिस्कवरील फाइल्सना कोणताही धक्का लागणार नाही. तुम्ही फक्त तेच पाथ (paths) रूट फोल्डर म्हणून जोडा, लायब्ररी import चालवा आणि Chaptarr ला फाइल्स आपोआप मॅच करू द्या. क्वालिटी प्रोफाइल्स, नेमिंग फॉरमॅट, इंडेक्सर सेटिंग्ज आणि चुकीच्या मॅचेस दुरुस्त करण्याचे काम तुम्हाला मॅन्युअली करावे लागेल, म्हणून सर्व काही import करण्यापूर्वी एका लहान फोल्डरपासून सुरुवात करा.
Chaptarr माझ्या ऑडिओबुक फोल्डरमध्ये का लिहू शकत नाही?
कंटेनरच्या युजरकडे त्या डिरेक्टरीमध्ये लिहिण्याची परवानगी नाही, याचे मुख्य कारण म्हणजे ते ज्या युजरने ती डिरेक्टरी ओनर केली आहे, त्यापेक्षा वेगळ्या UID वर चालत आहे. जेव्हा PUID=99 आणि PGID=100 व्हेरिएबल्स सेट नसतात, तेव्हा Chaptarr डिफॉल्ट व्हॅल्यूज वापरते, ज्या unRAID साठी असतात आणि सामान्य Ubuntu VPS वर त्या चुकीच्या ठरतात. त्यांना तुमच्या स्वतःच्या id -u आणि id -g वर सेट करा, डाउनलोड क्लायंटवरही तीच जोडी वापरा आणि नवीन फाइल्स ग्रुप-रायटेबल राहण्यासाठी UMASK=002 सेट करा. लायब्ररी डिरेक्टरीवर ls -ln वापरून ओनरशिप तपासा, कारण हे कमांड नावाऐवजी नंबर दाखवते, ज्यामुळे तुलना करणे सोपे जाते.
import केल्यानंतर माझ्या डिस्कचा वापर दुप्पट का झाला?
Chaptarr ने फाइल कॉपी केली कारण ती हार्डलिंक (hardlink) करू शकली नाही. /downloads आणि /audiobooks हे स्वतंत्र बाइंड्स म्हणून माउंट केल्यामुळे ते कंटेनरमध्ये वेगळे माउंट पॉइंट्स बनतात आणि कर्नल Invalid cross-device link मुळे माउंट पॉइंट्सच्या दरम्यान हार्डलिंक करण्यास नकार देते. /srv/media:/data सारखी एक मूळ डिरेक्टरी माउंट करा आणि ॲपमध्ये /data/downloads आणि /data/audiobooks वापरा. दोन्ही पाथ एकाच होस्ट फाइलसिस्टमवर असणे आवश्यक आहे, ज्याची खात्री df -h द्वारे करता येते.
Chaptarr माझी ऑडिओबुक्स प्ले करते का?
नाही. ते फक्त फाइल्स शोधते, डाउनलोड करते, रिनेम करते आणि व्यवस्थित लावते; प्लेबॅकसाठी वेगळा प्रोग्राम लागतो. Audiobookshelf हे यासाठी सामान्यतः वापरले जाणारे साधन आहे कारण ते विविध उपकरणांवर तुमचे प्लेबॅक लोकेशन लक्षात ठेवते. यासाठी अधिकृत इमेज ghcr.io/advplyr/audiobookshelf:latest वापरा आणि त्यात होस्ट ऑडिओबुक पाथ माउंट करा. जर तुम्ही फोल्डर लायब्ररी म्हणून जोडले, तर Jellyfin देखील या फाइल्स प्ले करू शकते.
माझ्या महत्त्वाच्या लायब्ररीवर Chaptarr चालवणे सुरक्षित आहे का?
हे एका नवीन फोर्कमधील बीटा सॉफ्टवेअर आहे. प्रकल्पाने स्वतःच हे मान्य केले आहे, तरीही गेल्या सहा महिन्यांत आणि अकरा हजारांहून अधिक युजर्समध्ये कोणताही डेटा गमावल्याची घटना घडलेली नाही. दिलासा देणारी गोष्ट म्हणजे GPL-3.0 लायसन्स, ज्यामुळे कोड फोर्क करणे शक्य आहे, आणि .NET 10 बेस, जे ऑगस्ट 2026 पर्यंतचे लॉन्ग टर्म सपोर्ट रनटाइम आहे. latest ऐवजी 0.9.925 सारखा अचूक इमेज टॅग पिन करा, प्रत्येक अपग्रेडपूर्वी /config चा बॅकअप घ्या आणि तो आर्काइव्ह सर्व्हरच्या बाहेर ठेवा.