
Plex Unlocker
Docker में चल रहे Plex Media Server को पैच करता है — आधिकारिक
plexinc/pms-docker इमेज
और कम्युनिटी lscr.io/linuxserver/plex
इमेज — उसी LD_PRELOAD-on-the-PMS-exec तंत्र का उपयोग करते हुए जो नेटिव
systemd इंस्टॉल में प्रयुक्त होता है। कारण और समस्या निवारण के लिए शीर्ष-स्तरीय README और पूर्ण गाइड
docs/DOCKER.md देखें।
प्रोजेक्ट रूट से:
# Official image (plexinc/pms-docker)
docker build -f docker/Dockerfile.plexinc -t plex-crack:plexinc .
# Community image (lscr.io/linuxserver/plex)
docker build -f docker/Dockerfile.linuxserver -t plex-crack:lsio .
पहला बिल्ड zig 0.13.0 और चुनी गई Plex बेस इमेज डाउनलोड करता है।
बाद के बिल्ड src/, third_party/, या
build.sh में बदलाव होने तक कैश्ड लेयर का पुन: उपयोग करते हैं। यदि आपको PMS अपडेट्स के बीच पुनरुत्पादकता चाहिए तो --build-arg PLEX_BASE_IMAGE=... से बेस को पिन करें।
# plexinc (no PUID/PGID; the image runs PMS as the upstream 'plex' user)
docker run -d --name plex --network=host \
-v /srv/plex/config:/config \
-v /srv/plex/data:/data \
plex-crack:plexinc
# linuxserver (honor PUID/PGID so /config and /data chown correctly on first start)
docker run -d --name plex --network=host \
-e PUID=$(id -u) -e PGID=$(id -g) \
-e TZ=America/Los_Angeles \
-v /srv/plex/config:/config \
-v /srv/plex/data:/data \
plex-crack:lsio
फिर:
curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:32400/identity # -> 200
यदि आपके पास पहले से चल रहा Plex कंटेनर है और आप इमेज को रीबिल्ड
या कंटेनर को पुनः निर्मित नहीं करना चाहते, तो plex-docker-patch.sh एक लाइव कंटेनर पर
समान पैच लागू करता है — कोई docker build आवश्यक नहीं, मूल
इमेज अछूती, मूल कंटेनर + उसके वॉल्यूम सुरक्षित।
uninstall के माध्यम से प्रत्यावर्तनीय (s6 run फ़ाइल की एक .orig प्रति रखी जाती है)।
# Default container name: "plex"
./docker/plex-docker-patch.sh install
# Custom container name
./docker/plex-docker-patch.sh install my-plex
# Revert (restores the s6 run file from its .orig)
./docker/plex-docker-patch.sh uninstall my-plex
# Status
./docker/plex-docker-patch.sh status my-plex
स्क्रिप्ट कंटेनर के भीतर s6 run फ़ाइल की सामग्री पढ़कर बेस इमेज (plexinc बनाम LSIO) का स्वतः पता लगाती है, इसलिए दोनों मामलों में समान .so और wrapper.sh का उपयोग होता है। होस्ट पर Zig उपलब्ध होना चाहिए (स्क्रिप्ट build.sh को इनवोक करती है); पहले से मौजूद build/plexmediaserver_crack.so का पुन: उपयोग किया जाता है।
docker build फ़्लो) — बार-बार के डिप्लॉय, मल्टी-होस्ट, CI/CD, इम्यूटेबल इमेज के लिए सर्वोत्तम। आप एक पैच्ड इमेज कमिट करके शिप करते हैं।plex-docker-patch.sh — ऐसे चल रहे कंटेनर को एक बार पैच करने के लिए सर्वोत्तम जिसे आप छूना नहीं चाहते। लाइव कंटेनर के फाइलसिस्टम को संशोधित करता है; uninstall के माध्यम से पूर्ण रूप से प्रत्यावर्तनीय।docker-compose, सिग्नेचर ड्रिफ्ट, scripts/readbitset.py के साथ सत्यापन, अनइंस्टॉल और समस्या निवारण के लिए ../docs/DOCKER.md देखें।
गहन डायग्नोस्टिक्स (PMS एग्ज़िट 127, glibc बनाम musl ABI, LSIO /config स्वामित्व, PMS अपडेट्स पर सिग्नेचर ड्रिफ्ट) के लिए ../docs/DOCKER.md देखें।
| File | उद्देश्य |
|---|
Dockerfile.plexinc | मल्टी-स्टेज बिल्ड → पैच्ड plexinc/pms-docker |
Dockerfile.linuxserver | मल्टी-स्टेज बिल्ड → पैच्ड lscr.io/linuxserver/plex |
wrapper.sh | कंटेनर-आंतरिक लॉन्चर (env → अंतिम LD_PRELOAD → exec PMS) |
plex-docker-patch.sh | चल रहे कंटेनर के लिए इन-प्लेस पैचर (install / uninstall / status) |
| लक्षण | संभावित कारण | पहली जाँच |
|---|
install कहता है ERROR: docker not on PATH | docker CLI इंस्टॉल नहीं है या उपयोगकर्ता docker ग्रुप में नहीं है | docker version (आपके रूप में चलना चाहिए) |
install कहता है could not find s6 svc-plex run file | अपस्ट्रीम इमेज ने अपना s6 लेआउट बदल दिया है | docker exec <name> ls -la /etc/s6-overlay/s6-rc.d/svc-plex/ /etc/services.d/plex/ — आउटपुट के साथ एक इश्यू खोलें |
install सफल होता है लेकिन .so is NOT in /proc/$PID/maps | PMS एग्ज़िट 127 (लोडर विफलता) | docker logs <name> | tail -50 — आमतौर पर कोई glibc .so घुस गया है (build.sh के साथ रीबिल्ड करें) |
install के बाद status दिखाता है PATCH IS NOT ACTIVE | run फ़ाइल पुनः लिखी नहीं गई (जैसे, रीड-ओनली लेयर) या कंटेनर पुनः प्रारंभ नहीं किया गया | docker exec <name> cat /etc/s6-overlay/s6-rc.d/svc-plex/run — exec .../plex-crack-wrapper.sh प्रिंट होना चाहिए |
uninstall कहता है no run.orig found | .orig हटा दी गई थी, या run फ़ाइल का बैकअप कभी लिया ही नहीं गया (जैसे, आपने स्क्रिप्ट का पुराना संस्करण चलाया था) | मैन्युअल रूप से पुनर्स्थापित करें: docker cp <upstream-image>:/etc/s6-overlay/s6-rc.d/svc-plex/run <name>:/etc/s6-overlay/s6-rc.d/svc-plex/run |