Jellyfin-ஐ 90-களின் வீடியோ கடையாக மாற்றும் Halcyon
Halcyon மூலம் உங்கள் Jellyfin library-ஐ 90-களின் வீடியோ கடையாக மாற்றலாம். Docker நிறுவல், reverse proxy அமைப்புகள் மற்றும் கவனிக்க வேண்டிய முக்கிய தொழில்நுட்ப சிக்கல்களை இங்கே
உங்கள் Jellyfin library-ல் Halcyon என்ன செய்கிறது
Halcyon Video உங்கள் Jellyfin library-ஐ 1990-களின் வீடியோ கடையாக உலாவியில் (browser) மாற்றிக் காட்டுகிறது. உங்களிடம் உள்ள ஒவ்வொரு திரைப்படமும் ஒரு அலமாரியில் உள்ள பெட்டியாக மாறும். நீங்கள் டியூப் லைட் வெளிச்சத்தில் வரிசைகளுக்கு இடையே நடந்து சென்று, ஒரு பெட்டியை எடுத்து, அதன் பின்புறம் உள்ள விவரங்களைப் படித்து, அதை கவுண்டருக்குக் கொண்டு சென்று பிளேபேக்கை (playback) தொடங்கலாம். பிளேபேக் தொடக்கம், முன்னேற்றம் மற்றும் முடிவு ஆகியவை Jellyfin-க்குத் தெரிவிக்கப்படும், எனவே resume points மற்றும் watch history சரியாகப் பராமரிக்கப்படும்.
Halcyon, Jellyfin API மூலம் ஏற்கனவே உள்ள Jellyfin server-ஐ வாசிக்கும், இது தனக்கெனத் தனி library-ஐ வைத்திருக்காது. Jellyfin ஏற்கனவே இயங்கிக்கொண்டிருக்கிறது மற்றும் சரியாக ஸ்கேன் செய்கிறது என்று இந்த வழிகாட்டி கருதுகிறது. அவ்வாறு இல்லையெனில், முதலில் VPS-ல் media server-ஆக Jellyfin-ஐ நிறுவுதல் என்பதைச் செய்துவிட்டு, சாதாரண web client-ல் உங்கள் library சரியாகத் தெரிந்த பிறகு மீண்டும் வரவும். உங்கள் library ஏற்கனவே தயாராக இருப்பதால் மட்டுமே இதை நிறுவ வேண்டும், உங்கள் self hosting பட்டியலில் மற்றொரு சேவை தேவை என்பதற்காக அல்ல.
இந்தத் திட்டம் GPL-3.0 உரிமம் கொண்டது மற்றும் ஒருவரால் எழுதப்பட்டது. இதில் pull requests ஏற்றுக்கொள்ளப்படாது என்று README-ல் தெளிவாகக் குறிப்பிடப்பட்டுள்ளது. இதன் மேம்பாடு வேகமாக நடக்கிறது, மேலும் ஏதேனும் பிழைகள் (regression) ஏற்பட்டால் சரிபார்க்க இரண்டாவது பராமரிப்பாளர் இல்லை. எனவே, மற்றவர்களிடம் இந்த கடையைக் காட்டும் முன் image version-ஐ pin செய்யவும். கடைசிப் பகுதியில் இது எப்படி என்று விளக்கப்பட்டுள்ளது.
Rendering எங்கே நடைபெறுகிறது?
Browser-ல் நடைபெறுகிறது. Halcyon என்பது Vite மற்றும் TypeScript மூலம் உருவாக்கப்பட்ட ஒரு செயலி. இது three.js-ஐப் பயன்படுத்துகிறது; இது WebGL (browser-க்கும் GPU-க்கும் இடையிலான இடைமுகம்) மூலம் 3D கிராபிக்ஸை வரையும் ஒரு JavaScript library ஆகும். Store geometry மற்றும் box art ஆகியவை திரையைக் கொண்டிருக்கும் சாதனத்திலேயே ஒருங்கிணைக்கப்படுகின்றன (composited).
Container மிகக் குறைந்த வேலையையே செய்கிறது. இது npm run serve-ஐ இயக்குகிறது, இது vite preview --port 1420 --strictPort --host ஆகும். மேலும் இது build செய்யப்பட்ட கோப்புகளையும், சில சிறிய middleware வழிகளையும் (routes) வழங்குகிறது. Halcyon சர்வரில் எந்தவிதமான transcoding-ஐயும் செய்வதில்லை, எந்த engine-ஐயும் இயக்குவதில்லை.
எனவே, GPU தொடர்பான கேள்வி client-ஐச் சார்ந்தது. ஒரு சிறிய VPS இதை எளிதாக வழங்க முடியும், ஏனெனில் இது HTTP வழியாக static கோப்புகளை வழங்குவதே ஆகும். Browser-ஐ இயக்கும் laptop, tablet அல்லது television ஆகியவையே store மென்மையாக இயங்குமா அல்லது மந்தமாக இருக்குமா என்பதைத் தீர்மானிக்கின்றன.
ஒரு அம்சம் மட்டும் இந்த விதியிலிருந்து மாறுபடுகிறது. Remote Play சர்வரில் headless Chromium instances-ஐ உருவாக்கி, WebRTC (web real time communication) வழியாக render செய்யப்பட்ட store-ஐ phone அல்லது set top box-க்கு stream செய்கிறது. அந்தப் பாதை சர்வரிலேயே render செய்யப்படுகிறது. இது முன்னிருப்பாக (default) இரண்டு instances-ஆகக் கட்டுப்படுத்தப்பட்டுள்ளது, இதை REMOTE_PLAY_MAX_INSTANCES மூலம் மாற்றியமைக்கலாம். ஒரு mapped /dev/dri சாதனம் இல்லையெனில், அந்த instances CPU-வில் render செய்யப்படும்; எனவே, இரண்டு core கொண்ட VPS-ல் ஒவ்வொரு கூடுதல் பார்வையாளரும் சுமையை உணர முடியும்.
உங்கள் library-லிருந்து store எதை வாசிக்கிறது
Aisles-கள் Jellyfin-ன் சொந்த கட்டமைப்பிலிருந்து வருகின்றன. Halcyon உங்கள் libraries மற்றும் genres-லிருந்து பிரிவுகளை உருவாக்குகிறது, மேலும் உங்கள் BoxSets-லிருந்து தொடர் படங்களை (sequels) ஒன்றாகத் தொகுக்கிறது. ஒவ்வொரு case-ன் பின்புறமும் அச்சிடப்பட்டிருக்கும் விவரக்குறிப்புகள் (specs), Jellyfin ஏற்கனவே வைத்துள்ள MediaStreams metadata-விலிருந்து பெறப்படுகின்றன. அதாவது, Jellyfin-ல் விடுபட்ட எந்தவொரு தகவலும் shelf-லும் இருக்காது.
இதன் மூலம், உங்கள் metadata-வின் சரியான பிரதிபலிப்பாக இந்த store அமைகிறது. an arr stack in Docker Compose மூலம் artwork மற்றும் genres ஏற்கனவே நிரப்பப்பட்ட ஒரு library, பொதுவான பெயர்களைக் கொண்ட கோப்புகளைக் கொண்ட folder-ஐ விட இங்கே மிகச் சிறப்பாகத் தோன்றும்.
எதையும் நிறுவும் முன் video store demo-வை முயற்சி செய்யவும்
இந்தத் திட்டம், hosted demo-ல் ஒரு செயற்கை library-யுடன் இயங்கும் முழுமையான store-ஐ வழங்குகிறது. எந்தவொரு Halcyon URL-ன் இறுதியிலும் ?demo=1-ஐச் சேர்ப்பதன் மூலம் உங்கள் சொந்த deployment-லும் இதையே பெறலாம்.
இதை ஒரு hardware சோதனைக்காகப் பயன்படுத்தவும். இந்த demo library-யில் சுமார் 2,000 தலைப்புகள் உள்ளன; இதற்கு browser memory-ல் ஏறத்தாழ 2 GB தேவைப்படும். இது பெரும்பாலான தனிப்பட்ட library-களை விட அதிகமானது. நீங்கள் பயன்படுத்தத் திட்டமிட்டுள்ள சாதனத்தில் இந்த demo மெதுவாக இயங்கினால் (stutter), உங்கள் சொந்த library-யும் அவ்வாறே இருக்கும். இதற்குப் பெரிய VPS-க்கு மாறுவதை விட, கீழே விவரிக்கப்பட்டுள்ள 2.5D mode-ஐப் பயன்படுத்துவதே சரியான தீர்வாகும்.
Docker மூலம் இயக்குதல்
மேல்நிலை ஆவணங்கள் பரிந்துரைக்கும் கட்டளை இதுவாகும்.
docker run -d --name halcyon --network host --restart unless-stopped \
ghcr.io/halcyon-video/halcyon-videoபின்னர் அது இயங்குகிறதா எனச் சரிபார்க்கவும்.
docker logs halcyon
curl -I http://127.0.0.1:1420Preview server 1420-வது port-ல் இயங்குவதை log காட்ட வேண்டும், மேலும் curl ஆனது HTTP/1.1 200 OK எனப் பதிலளிக்க வேண்டும். ஒரு container சில நொடிகளில் நின்றுவிடுகிறது என்றால், அதற்கு பெரும்பாலும் port பிரச்சினையே காரணமாக இருக்கும். 1420-வது port ஏற்கனவே பயன்பாட்டில் இருந்தால், server 1421-க்கு மாற மறுத்து நின்றுவிடும் என்பதை --strictPort குறிக்கிறது.
--network host என்பது Remote Play-க்காக வழங்கப்பட்டது, store-க்காக அல்ல. WebRTC, stream-ஐப் பெற விரும்பும் சாதனத்திற்கு அந்த இயந்திரத்தின் உண்மையான முகவரியை அறிவிக்க வேண்டும். இயல்பான Docker bridge-க்கு பின்னால் இருக்கும் container-க்கு அதன் சொந்த 172.x முகவரி மட்டுமே தெரியும்; உங்கள் network-ல் உள்ள எந்தத் தொலைபேசியும் அதை அணுக முடியாது, எனவே stream ஒருபோதும் இணைக்கப்படாது. உங்களுக்கு browser-ல் store மட்டும் போதும் என்றால், port-ஐ publish செய்யவும்.
docker run -d --name halcyon -p 1420:1420 --restart unless-stopped \
ghcr.io/halcyon-video/halcyon-videoVPS-ல் இதுவே சிறந்த இயல்புநிலை அமைப்பாகும், ஏனெனில் host networking அந்த இயந்திரத்தில் உள்ள அனைத்து interface-களிலும், பொதுவான (public) interface உட்பட, container-ஐ இணைக்கும். VPS-ல் Docker-ஐ இயக்குதல் பகுதியில் இது குறித்த கூடுதல் விவரங்கள் உள்ளன. --restart unless-stopped என்பது reboot செய்த பிறகு store-ஐ மீண்டும் கொண்டு வரும்; இது boot-ல் தொடங்கும் Compose services என்பதன் அதே கருத்தாகும்.
Repository-ஐ clone செய்து docker compose up -d-ஐ இயக்குவது image-ஐ உள்ளூர் இயந்திரத்திலேயே உருவாக்கும். கொடுக்கப்பட்டுள்ள Compose கோப்பு இயல்பாகவே source-லிருந்து build செய்யும் மற்றும் முன்கூட்டியே உருவாக்கப்பட்ட image: வரியை comment செய்திருக்கும்; எனவே, நீங்கள் publish செய்யப்பட்ட image-ஐ Compose மூலம் பயன்படுத்த விரும்பினால், அந்த வரியை uncomment செய்யவும்.
ஆகஸ்ட் 2026 நிலவரப்படி ஒரு முக்கிய கட்டுப்பாடு: publish செய்யப்பட்ட image linux/amd64-க்கு மட்டுமே. Multi-architecture push-ன் arm64 பகுதி emulation-ல் தோல்வியடைந்தது, அது native arm runners-க்காகக் காத்திருக்கிறது. ஒரு arm64 VPS-ல் pull செய்ய முயன்றால் no matching manifest for linux/arm64/v8 in the manifest list entries பிழையுடன் தோல்வியடையும், எனவே clone செய்த கோப்பிலிருந்து build செய்வதே சரியான வழியாகும்.
உங்கள் Jellyfin server-ஐ சுட்டிக்காட்டவும்
http://<host>:1420-ஐத் திறந்து, உங்கள் Jellyfin server முகவரி, பயனர் பெயர் மற்றும் கடவுச்சொல்லைப் பயன்படுத்தி உள்நுழையவும். களஞ்சியத்தில் (repository) உள்ள .env.local.example கோப்பு உள்ளூர் மேம்பாட்டிற்காக (local development) மட்டுமே. Vite, VITE_ முன்னொட்டு கொண்ட மாறிகளை (variables) client-side குறியீட்டிற்கு வெளிப்படுத்துகிறது. எனவே, அதில் எழுதப்படும் Jellyfin கடவுச்சொல், ஒவ்வொரு பார்வையாளரும் பதிவிறக்கும் JavaScript தொகுப்பில் (bundle) சேர்க்கப்பட்டுவிடும். பிறர் அணுகக்கூடிய server-ல், இடைமுகம் (interface) வழியாகவே உள்நுழையவும்.
உலாவி (browser) நேரடியாக Jellyfin-உடன் தொடர்பு கொள்கிறது. Halcyon-ன் container, Jellyfin API-க்கு proxy-ஆகச் செயல்படுவதில்லை. பிழைத்திருத்தத்தைத் (debugging) தொடங்கும் முன் கவனிக்க வேண்டிய இரண்டு விளைவுகள் இதோ:
முதலாவதாக, Halcyon-ஐ வழங்கும் VPS-லிருந்து மட்டுமல்லாமல், உலாவியிலிருந்தும் Jellyfin-ஐ அணுகக்கூடியதாக இருக்க வேண்டும். 127.0.0.1:8096-ல் பிணைக்கப்பட்ட (bound) Jellyfin, உள்ளூர் சோதனைக்குச் சரியாக இருக்கும், ஆனால் மற்றவர்களுக்குத் தரவுகள் எதையும் காட்டாது.
இரண்டாவதாக, இந்த அழைப்பு Halcyon-ன் முகவரியிலிருந்து Jellyfin-ன் முகவரிக்குச் செல்லும் cross-origin அழைப்பாகும். Jellyfin இயல்பாகவே Access-Control-Allow-Origin: * மூலம் API கோரிக்கைகளுக்குப் பதிலளிக்கும், எனவே கூடுதல் கட்டமைப்பு (configuration) தேவையில்லை. நீங்கள் அந்த அமைப்பைக் கட்டுப்படுத்தியிருந்தாலோ அல்லது Jellyfin API-க்கு முன்னால் ஒரு அங்கீகார proxy-ஐ (authentication proxy) வைத்திருந்தாலோ, உலாவியின் console blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource பிழையைக் காட்டும் மற்றும் store காலியாகவே இருக்கும்.
இதை ஒரு reverse proxy-க்கு பின்னால் வைத்து, முன்னால் authentication-ஐ அமைக்கவும்
vite preview என்பது ஒரு preview server ஆகும். இது TLS (transport layer security)-ஐ terminate செய்வதில்லை மற்றும் சொந்தமாக access control-ஐயும் கொண்டிருக்கவில்லை, எனவே பொதுவெளியில் உள்ள எதற்கும் இதை nginx அல்லது Caddy-க்கு பின்னால் வைப்பதே சரியானது.
server {
listen 443 ssl;
server_name halcyon.example.com;
location / {
proxy_pass http://127.0.0.1:1420;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}container-க்கு முன்னால் ஒரு domain name-க்கு இன்னும் ஒரு அமைப்பு தேவை. DNS rebinding-ஐத் தடுக்க, localhost, raw IP addresses மற்றும் அது இயங்கும் machine-ன் பெயர்களுக்கு மட்டுமே Halcyon பதிலளிக்கும். ஒரு container-க்குள், அது இயங்கும் machine என்பது அந்த container-தான், எனவே அதன் hostname உங்களுடையது அல்ல. halcyon.example.com என வரும் கோரிக்கை நிராகரிக்கப்படும், மேலும் அந்தப் பதிலில் அது நிராகரித்த host-ன் பெயர் இருக்கும். அந்தப் பெயரைச் சேர்க்கவும்.
docker run -d --name halcyon -p 127.0.0.1:1420:1420 --restart unless-stopped \
-e HALCYON_ALLOWED_HOSTS=halcyon.example.com \
ghcr.io/halcyon-video/halcyon-videoஇதன் மதிப்பு கமாவால் பிரிக்கப்பட்டிருக்க வேண்டும், .example.com போன்ற ஒரு leading dot subdomain-களை அனுமதிக்கும், மேலும் all இந்தச் சோதனையை முடக்கும். வெளிப்புறத்திலிருந்து அணுக முடியாத machine-ல் மட்டுமே all-ஐப் பயன்படுத்தவும்.
ஒருமுறை store https:// வழியாக வழங்கப்பட்டால், login-ல் நீங்கள் உள்ளிடும் Jellyfin முகவரியும் https:// ஆக இருக்க வேண்டும். ஒரு HTTPS பக்கத்திலிருந்து செய்யப்படும் plain http:// API அழைப்பை browser தடுக்கும், மேலும் console-ல் Mixed Content: The page at 'https://halcyon.example.com/' was loaded over HTTPS, but requested an insecure resource என்று காட்டும். Halcyon-க்குள் எந்த விளக்கமும் இன்றி login தோல்வியடையும். இரண்டையும் TLS வழியாக வழங்கவும், அல்லது இரண்டையும் ஒரு private network-க்குள் plain HTTP-லேயே வைத்திருக்கவும்.
பிறகு authentication. இந்த store Jellyfin credentials-ஐக் கேட்கும், எனவே URL-ஐக் கண்டறியும் அந்நியர் ஒரு login திரையைப் பார்ப்பார். ஒரு அம்சம் இதை மாற்றும். Settings மற்றும் Connection-க்கு கீழ் உள்ள Remote Play-ஐ ஆன் செய்வதன் மூலம், உங்கள் Jellyfin session-ஐ server-க்கு வழங்குகிறீர்கள்; இதன் மூலம் /remote.html-க்கு வரும் பார்வையாளர்கள் உங்கள் library-ன் சொந்த instance-ஐப் பெறுவார்கள். இதுவே அந்த அம்சத்தின் நோக்கம், அதாவது இணையத்திற்கும் உங்கள் திரைப்படங்களுக்கும் இடையே URL-ன் ரகசியத்தன்மை மட்டுமே பாதுகாப்பாக உள்ளது என்று பொருள். நீங்கள் Remote Play-ஐ இயக்கினால், Authentik as a self hosted SSO gateway மூலம் முழு தளத்திற்கும் முன்னால் single sign on-ஐ அமைக்கவும், அல்லது public hostname-ஐ நீக்கிவிட்டு a WireGuard tunnel managed with wg-easy வழியாக store-ஐ அணுகவும்.
இதனுடன் இரண்டு விவரங்கள் உள்ளன. reverse proxy store-ஐ மட்டுமே கொண்டு செல்லும்: Remote Play stream என்பது UDP வழியாகச் செல்லும் WebRTC ஆகும், இது HTTP proxy வழியாகச் செல்லாது. எனவே, TURN relay பயன்படுத்தப்படும்போது 3478/udp மற்றும் 49200 முதல் 49260/udp வரையிலான ports-க்கு அதற்குத் தனிப்பாதை தேவை. மேலும், மேலே உள்ள plain docker run எந்த volume-ஐயும் வைத்திருக்காது, எனவே Remote Play seed docker rm-க்குப் பிறகு இருக்காது. இதற்காகவே Compose file /data-ல் ஒரு halcyon-data volume-ஐ mount செய்து, REMOTE_PLAY_SEED-ஐ /data/remote-play-seed.json என அமைக்கிறது.
store சரியாக இயங்காதபோது என்ன செய்ய வேண்டும்
Halcyon தேவைப்படும்போது மட்டுமே காட்சிகளை உருவாக்குகிறது (renders on demand). பயன்பாட்டில் இல்லாத store எந்த பிரேம்களையும் உருவாக்காது. window focus-ஐ இழக்கும்போது animation loop நின்றுவிடும்; எனவே, ஒரு tab-ஐத் திறந்து வைத்திருப்பது laptop battery-ஐப் பாதிக்காது. இது ஓரளவு திறன் கொண்ட கணினிகளுக்கு உதவும். ஆனால், store-ஐச் சற்றும் திரையில் காட்ட முடியாத கணினிகளுக்கு இது உதவாது.
அத்தகைய client-களுக்காக 2.5D mode உள்ளது. இதில் WebGL கிடையாது, வெறும் HTML மற்றும் CSS மட்டுமே பயன்படுத்தப்படுகிறது. இது Raspberry Pi போன்ற சிறிய hardware-க்காக உருவாக்கப்பட்டது. page reload செய்யாமலேயே settings அல்லது power menu மூலம் 3D மற்றும் 2.5D-க்கு இடையே மாறலாம்; எனவே, ஒரே சாதனத்தில் இரண்டையும் சோதிக்க சில நொடிகள் மட்டுமே ஆகும். இதில் கிடைக்கும் முடிவுகளைப் பற்றி யதார்த்தமாக இருங்கள்: இந்த flat mode இன்னும் முழுமையடையவில்லை என்றும், கடினமான நிலையில் உள்ளது என்றும் ஆசிரியர் குறிப்பிடுகிறார். இதைத் திறன் குறைந்த client-களுக்கான ஒரு மாற்று வழியாக (fallback) மட்டும் கருதுங்கள்.
ஒரு client 3D store-ஐ இயக்க முடியாத அளவுக்குச் சிறியதாக இருந்தால், பிழை வெளிப்படையாகத் தெரியும். shelves நிரம்பும்போதே tab தானாகவே reload ஆகும் அல்லது browser WebGL context இழக்கப்பட்டதாகத் தெரிவிக்கும். உங்கள் library-ஐக் குறைப்பதற்குப் பதிலாக, அந்தச் சாதனத்தை 2.5D mode-க்கு மாற்றுங்கள்.
Image-ஐ Pin செய்யவும், pull செய்வதற்கு முன் சரிபார்க்கவும்
இந்த விஷயத்தில் கவனமாக இருக்கவும். v0.1.0 முதல் v0.3.1 வரையிலான tags அனைத்தும் சில நாட்களுக்குள் அடுத்தடுத்து வெளியிடப்பட்டன. v0.2.1 உருவானதற்குக் காரணம், v0.2.0-க்கான image push தோல்வியடைந்ததே ஆகும். Upstream-ல் bug reports வரவேற்கப்படுகின்றன, ஆனால் patches ஏற்கப்படுவதில்லை. எனவே, இந்த release stream என்பது ஒரு தனிநபரின் பணிநிலை (working state) மட்டுமே.
docker pull என்ற வழக்கத்துடன் latest-ஐ இயக்குவது, எந்தவொரு சாதாரண செவ்வாய்க்கிழமையிலும் உங்கள் store-ல் மாற்றங்களை ஏற்படுத்தலாம். மாறவே மாறாத reference-ஆன digest மூலம் Pin செய்யவும்.
docker buildx imagetools inspect ghcr.io/halcyon-video/halcyon-video:0.3.1இது tag-க்கு பின்னால் உள்ள digest-ஐ அச்சிடும். Tag-க்கு பதிலாக இதைப் பயன்படுத்தவும்.
docker run -d --name halcyon -p 1420:1420 --restart unless-stopped \
ghcr.io/halcyon-video/halcyon-video@sha256:747dcc821a3d2fa318b50e76024783c1835609047e84f502e23d021bc1898b20அந்த digest, 10 August 2026 அன்று 0.3.1 ஆக இருந்தது. அதை அப்படியே நகலெடுப்பதற்குப் பதிலாக, தற்போதைய digest-ஐ நீங்களே சரிபார்க்கவும். நீங்கள் மாறுவதற்கு முன் release notes-ஐப் படிக்கவும், ஏனெனில் இதில் வரும் patch release-கள், திருத்தங்களுடன் சேர்த்து store layout மாற்றங்களையும் கொண்டிருக்கலாம்.
FAQ
எனது VPS-ல் Halcyon-க்கு GPU தேவையா?
சாதாரண பயன்பாட்டிற்குத் தேவையில்லை. Store-ன் காட்சிகள் browser-ல் three.js மூலம் உருவாக்கப்படுகின்றன, எனவே client machine-தான் rendering செய்கிறது. Container ஆனது port 1420-ல் static கோப்புகளை மட்டுமே வழங்குகிறது. Remote Play இதற்கு விதிவிலக்கு; இது server-ல் headless Chromium-ஐ இயக்கி முடிவுகளை stream செய்கிறது. Hardware acceleration-க்காக /dev/dri-ஐ container-க்குள் map செய்யாவிட்டால், இந்தச் செயல்முறை CPU-விலேயே rendering செய்யும்.
Halcyon-ஐ பொது இணையத்தில் (public internet) வைக்கலாமா?
Authentication-க்கு பின்னால் மட்டுமே வைக்க வேண்டும். Store ஆனது Jellyfin credentials-ஐக் கேட்கிறது, ஆனால் Remote Play-ஐ இயக்கினால் உங்கள் Jellyfin session server-க்கு வழங்கப்படுகிறது. எனவே, /remote.html-ஐ அணுகும் எவரும் உள்நுழையாமலேயே உங்கள் library-ஐப் பயன்படுத்த முடியும். இதற்கு முன்னால் single sign-on வசதி கொண்ட reverse proxy-ஐ அமைக்கவும், அல்லது hostname-ஐ public DNS-ல் வைக்காமல் VPN மூலம் அணுகவும்.
உள்நுழைந்த பிறகு shelves ஏன் காலியாக உள்ளன?
Browser நேரடியாக Jellyfin API-ஐ அழைக்கிறது. எனவே, VPS-லிருந்து மட்டுமல்லாமல், browser-லிருந்தும் Jellyfin-ஐ அணுகக்கூடியதாக இருக்க வேண்டும். Browser console-ஐப் பார்க்கவும். blocked by CORS policy என்பது Halcyon-ன் முகவரியிலிருந்து வரும் கோரிக்கையை Jellyfin ஏற்கவில்லை என்று பொருள். Mixed Content செய்தி என்பது, பக்கம் HTTPS-ல் உள்ளது, ஆனால் நீங்கள் உள்ளிட்ட Jellyfin முகவரி plain HTTP-ல் உள்ளது என்று பொருள்.
எனக்கு --network host தேவையா?
Remote Play-க்கு மட்டுமே தேவை. WebRTC அந்த machine-ன் உண்மையான முகவரியை அறிவிக்க வேண்டும். Docker bridge-க்கு பின்னால் இருக்கும் container, உங்கள் network-ல் உள்ள எந்தத் தொலைபேசியும் அணுக முடியாத 172.x முகவரியை மட்டுமே வழங்க முடியும். Browser-ல் store-ஐப் பார்ப்பதற்கு, -p 1420:1420 போதுமானது மற்றும் இது host-ன் பாதுகாப்பை அதிகம் பாதிப்பதில்லை.
நான் எந்த image tag-ஐப் பயன்படுத்த வேண்டும்?
latest-க்கு பதிலாக ஒரு குறிப்பிட்ட digest-ஐப் பயன்படுத்தவும். docker buildx imagetools inspect ghcr.io/halcyon-video/halcyon-video:0.3.1 கொண்ட பதிப்பிற்கான digest-ஐப் படித்து, அதை இயக்கவும். Release notes-ஐப் படித்த பிறகு மட்டுமே அடுத்த பதிப்பிற்கு மாறவும். ஆகஸ்ட் 2026 நிலவரப்படி, வெளியிடப்பட்ட image linux/amd64 மட்டுமே. எனவே, arm64 host-ல் இயங்குபவர்கள் docker compose up -d மூலம் clone செய்து build செய்ய வேண்டும்.