Halcyon: Jellyfin-ஐ 90s video store ஆக மாற்றுவது எப்படி
Halcyon, browser-ல் உங்கள் Jellyfin library-ஐ நடக்கக்கூடிய 1990s rental store ஆக மாற்றுகிறது. Docker command, reverse proxy அமைப்பு, வரம்புகள் ஆகியவற்றை அறிக.
Halcyon உங்கள் Jellyfin library-க்கு செய்வது
Halcyon Video, browser-ல் உங்கள் Jellyfin library-ஐ நடந்து செல்லக்கூடிய 1990s video store-ஆக மறுவடிவமைக்கிறது. உங்களிடம் உள்ள ஒவ்வொரு film-மும் shelf-ல் ஒரு case-ஆக மாறும். Strip lights-ன் கீழ் aisles வழியாக நடந்து, ஒரு box-ஐ shelf-லிருந்து எடுத்து, அதன் பின்புறத்தில் உள்ள specs-ஐப் படிக்க அதைத் திருப்பிப் பார்த்து, playback தொடங்க அதை counter-க்கு எடுத்துச் செல்லலாம். Playback தொடக்கம், progress மற்றும் நிறுத்தம் பற்றிய தகவல்களை Jellyfin-க்கு அனுப்புகிறது. அதனால் resume points மற்றும் watch history சரியாக இருக்கும்.
Halcyon, Jellyfin API மூலம் ஏற்கனவே உள்ள Jellyfin server-ஐப் படிக்கிறது; தனிப்பட்ட library எதையும் வைத்திருக்காது. Jellyfin ஏற்கனவே இயங்கி, library-ஐ பிழையின்றி scan செய்கிறது என்று இந்த வழிகாட்டி கருதுகிறது. அது இயங்கவில்லை என்றால், முதலில் VPS-ல் Jellyfin-ஐ media server-ஆக அமைக்கவும். பின்னர் வழக்கமான web client-ல் உங்கள் library சரியாகத் தெரியும் வரை காத்திருந்து மீண்டும் வாருங்கள். Library ஏற்கனவே இருப்பதால் நிறுவும் software இதுவாகும்; உங்கள் self hosting list-ல் இன்னொரு service தேவைப்பட்டதால் நிறுவுவது அல்ல.
இந்த project GPL-3.0 உரிமத்தின் கீழ் வெளியிடப்பட்டுள்ளது. இதை ஒரே நபர் எழுதுகிறார். Pull requests-ஐ ஏற்காது என்று README தெளிவாகக் குறிப்பிடுகிறது. Development வேகமாக நடைபெறுகிறது. Regression-ஐ கண்டறிய இரண்டாவது maintainer இல்லை. ஆகவே store-ஐ பிறருக்குக் காட்டுவதற்கு முன் image version-ஐ pin செய்யவும். அதை எவ்வாறு செய்வது என்பதை கடைசி section விளக்குகிறது.
Rendering எங்கு நடைபெறுகிறது?
Browser-ல் நடைபெறுகிறது. Halcyon என்பது three.js அடிப்படையில் உருவாக்கப்பட்ட Vite மற்றும் TypeScript app ஆகும். three.js என்பது WebGL (web graphics library, browser-ன் GPU interface) மூலம் 3D graphics-ஐ வரையும் JavaScript library ஆகும். Store geometry மற்றும் box art ஆகியவை screen-ஐ இயக்கும் machine-ல் composited செய்யப்படுகின்றன.
Container மிகக் குறைந்த பணியே செய்கிறது. அது npm run serve-ஐ இயக்குகிறது; இது vite preview --port 1420 --strictPort --host ஆகும். மேலும், built files மற்றும் சில சிறிய middleware routes-ஐ serve செய்கிறது. Halcyon எந்த transcoding-ஐயும் சேர்க்காது. Server-ல் எந்த engine-ஐயும் இயக்காது.
எனவே GPU தொடர்பான கேள்வி client-ஐ சார்ந்தது. இதை ஒரு சிறிய VPS எளிதாக serve செய்யும், ஏனெனில் இங்கு serve செய்வது HTTP மூலம் static files-ஐ வழங்குவதாகும். Browser இயங்கும் laptop, tablet அல்லது television தான் store சீராக இயங்குமா அல்லது மெதுவாக நகருமா என்பதை தீர்மானிக்கும்.
ஒரு feature இந்த விதிக்கு விதிவிலக்காகும். Remote Play, server-ல் headless Chromium instances-ஐ உருவாக்கி, rendered store-ஐ WebRTC (web real time communication) மூலம் phone அல்லது set top box-க்கு stream செய்கிறது. இந்த பாதையில் rendering server-ல் நடைபெறும். இது இயல்பாக இரண்டு instances-ஆக வரையறுக்கப்பட்டுள்ளது; REMOTE_PLAY_MAX_INSTANCES மூலம் அந்த எண்ணிக்கையை மாற்றலாம். Mapped /dev/dri device இல்லையெனில், அந்த instances CPU-ல் render செய்யப்படும். எனவே two core VPS-ல் கூடுதல் viewer ஒவ்வொருவரின் தாக்கமும் தெளிவாகத் தெரியும்.
உங்கள் library-யிலிருந்து store பெறும் தகவல்கள்
Aisles, Jellyfin-ன் சொந்த structure-ஐ அடிப்படையாகக் கொண்டவை. Halcyon, உங்கள் libraries மற்றும் genres அடிப்படையில் sections-ஐ அமைக்கிறது; மேலும், உங்கள் BoxSets-இலிருந்து sequels-ஐ குழுவாக்குகிறது. ஒவ்வொரு case-ன் பின்புறத்தில் அச்சிடப்படும் specs, Jellyfin ஏற்கனவே சேமித்து வைத்துள்ள MediaStreams metadata-யிலிருந்து பெறப்படுகின்றன. எனவே Jellyfin-ல் இல்லாத தகவல் shelf-லிலும் இருக்காது.
இதனால், store உங்கள் metadata-வின் நியாயமான பிரதிபலிப்பாக இருக்கும். Artwork மற்றும் genres ஏற்கனவே நிரப்பப்பட்டுள்ள Docker Compose-ல் இயங்கும் arr stack மூலம் நிரப்பப்பட்ட library, பொதுவான பெயர்களைக் கொண்ட தனித்தனி files உள்ள folder-ஐவிட இங்கு மிகவும் சிறப்பாகத் தோன்றும். Photo libraries-க்கும் அவற்றை index செய்துள்ள system-ஐப் பொறுத்த அதே சார்பு உள்ளது. அதே server-ல் இருக்கும் stills-க்கு PhotoPrism மற்றும் Immich ஆகியவற்றை ஒப்பிடும்போது இதை நினைவில் கொள்ள வேண்டும்.
நீங்கள் எதையும் install செய்வதற்கு முன் video store demo-வைச் சோதிக்கவும்
Project, synthetic library-ஐ பயன்படுத்தி இயங்கும் முழு store-ஐ hosted demo-வில் வழங்குகிறது. எந்த Halcyon URL-க்கும் ?demo=1-ஐ இறுதியில் சேர்த்தால், உங்கள் சொந்த deployment-லிலும் இதே demo கிடைக்கும்.
இதனை hardware test-ஆகப் பயன்படுத்தவும். Demo library-ல் சுமார் 2,000 titles உள்ளன. இதற்கு browser memory-ல் தோராயமாக 2 GB தேவைப்படும். இது பெரும்பாலான personal libraries-ஐ விட அதிகமான memory பயன்பாடாகும். நீங்கள் browse செய்யப் பயன்படுத்தும் device-ல் demo இடைவிட்டு இயங்கினால், உங்கள் சொந்த library-யும் அதேபோல் இடைவிட்டு இயங்கும். இதற்கான தீர்வு பெரிய VPS அல்ல; கீழே விளக்கப்பட்டுள்ள 2.5D mode-ஐப் பயன்படுத்துவதே ஆகும்.
Docker மூலம் இயக்குதல்
Upstream ஆவணத்தில் குறிப்பிடப்பட்டுள்ள command இதுவாகும்.
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:1420Log-ல் preview server port 1420-ல் listening நிலையில் இருப்பது காட்டப்பட வேண்டும். மேலும், curl என்பதற்கு HTTP/1.1 200 OK பதில் அளிக்க வேண்டும். சில விநாடிகளுக்குள் exit ஆகும் container-க்கு காரணம் பெரும்பாலும் port ஆகும். --strictPort என்பதன் பொருள், 1420 ஏற்கனவே பயன்படுத்தப்பட்டால் server 1421-க்கு மாற மறுக்கிறது என்பதாகும். அதனால் அது நிறுத்தப்படுகிறது.
--network host என்பது Remote Play-க்காக மட்டுமே பயன்படுகிறது; store-க்காக அல்ல. Stream-ஐ கோரும் device-க்கு WebRTC, machine-ன் உண்மையான address-ஐ advertise செய்ய வேண்டும். இயல்புநிலை Docker bridge-ன் பின்னால், container-க்கு அதன் சொந்த 172.x address மட்டுமே தெரியும். உங்கள் network-ல் உள்ள எந்த phone-மும் அந்த address-ஐ அணுக முடியாது. அதனால் stream ஒருபோதும் connect ஆகாது. Browser-ல் store-ஐ மட்டும் பயன்படுத்த விரும்பினால், port-ஐ publish செய்யவும்.
docker run -d --name halcyon -p 1420:1420 --restart unless-stopped \
ghcr.io/halcyon-video/halcyon-videoVPS-ல் இது சிறந்த default ஆகும். காரணம், host networking பயன்படுத்தும்போது container, public interface உட்பட machine-ல் உள்ள ஒவ்வொரு interface-லும் இணைக்கப்படும். அந்த அமைப்பின் பிற trade-off-களை VPS-ல் Docker இயக்குதல் பகுதியில் காணலாம். Reboot பிறகு store மீண்டும் தொடங்குவதற்கு --restart unless-stopped பயன்படுகிறது. இது boot-ல் தொடங்கும் Compose services பகுதியில் கூறப்பட்டுள்ள அதே முறையாகும்.
Repository-ஐ clone செய்து docker compose up -d இயக்கினால், image உள்ளூரிலேயே build செய்யப்படும். Commit செய்யப்பட்ட Compose file, இயல்பாக source-இலிருந்து build செய்யும். அதில் முன்கூட்டியே build செய்யப்பட்ட image: line comment செய்யப்பட்ட நிலையில் உள்ளது. Compose கீழ் published image-ஐ பயன்படுத்த விரும்பினால், அந்த line-ன் comment-ஐ நீக்கவும்.
August 2026 நிலவரப்படி ஒரு முக்கிய வரம்பு உள்ளது: published 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 address, username மற்றும் password மூலம் உள்நுழையவும். Repository-ல் உள்ள .env.local.example file local development-க்கு மட்டும் பயன்படுத்தப்படுகிறது. VITE_ prefix கொண்ட variables-ஐ Vite client-side code-க்கு வெளிப்படுத்தும். எனவே அங்கே எழுதப்படும் Jellyfin password, ஒவ்வொரு visitor-ம் download செய்யும் JavaScript bundle-ல் compile செய்யப்படும். பிறரும் அணுகக்கூடிய server-ல், interface மூலம் உள்நுழையவும்.
Browser நேரடியாக Jellyfin-ஐ அணுகும். Halcyon container, Jellyfin API-ஐ proxy செய்யாது. Debugging தொடங்குவதற்கு முன் தெரிந்திருக்க வேண்டிய இரண்டு விளைவுகள் இதனால் உள்ளன.
முதலில், Halcyon-ஐ வழங்கும் VPS-ல் இருந்து மட்டும் அல்லாமல், browser-ல் இருந்தும் Jellyfin-ஐ அணுக முடிந்திருக்க வேண்டும். 127.0.0.1:8096-க்கு bind செய்யப்பட்ட Jellyfin local test-க்கு சரியாக இருக்கும். ஆனால் மற்ற அனைவருக்கும் shelves காலியாகத் தெரியும்.
இரண்டாவதாக, இந்த request cross-origin ஆகும். இது Halcyon address-இலிருந்து Jellyfin address-க்கு செல்கிறது. Jellyfin API requests-க்கு இயல்பாக Access-Control-Allow-Origin: * மூலம் பதிலளிக்கும். எனவே கூடுதல் configuration இல்லாமலேயே இது செயல்படும். அந்த setting-ஐ நீங்கள் கட்டுப்படுத்தியிருந்தால், அல்லது Jellyfin API-க்கு முன்பாக authentication proxy வைத்திருந்தால், browser console blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource என்று காட்டும். அப்போது store காலியான shelves-உடன் load ஆகும்.
Reverse proxy-க்கு பின்னால் இதை அமைத்து, முன்புறத்தில் authentication வைக்கவும்
vite preview என்பது preview server. இது TLS (transport layer security) termination செய்யாது. இதற்கென access control-மும் இல்லை. எனவே public access உள்ள இடங்களில் இது 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 பயன்படுத்தினால், மேலும் ஒரு setting தேவைப்படும். DNS rebinding-ஐத் தடுப்பதற்காக Halcyon, localhost, raw IP addresses மற்றும் அது இயங்கும் machine-ன் பெயர்களுக்கு மட்டுமே பதிலளிக்கும். Container-க்குள் அது இயங்கும் machine என்பது அந்த container-தான்; உங்கள் machine அல்ல. halcyon.example.com ஆக வரும் request மறுக்கப்படும். மறுக்கப்பட்ட host-ன் பெயரும் response-ல் காட்டப்படும். அந்த பெயரைச் சேர்க்கவும்.
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இந்த value comma மூலம் பிரிக்கப்படுகிறது. .example.com போன்ற தொடக்க dot subdomains-க்கும் பொருந்தும். all check-ஐ முடக்கும். வெளிப்புறத்திலிருந்து எவரும் அணுக முடியாத machine-ல் மட்டும் all-ஐ பயன்படுத்தவும்.
Store https:// மூலம் வழங்கப்பட்டதும், login நேரத்தில் நீங்கள் உள்ளிடும் Jellyfin address-மும் https:// ஆக இருக்க வேண்டும். HTTPS page-லிருந்து plain http:// API call செய்யப்பட்டால் 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 screen-ஐ எதிர்கொள்வார். ஒரு feature இதை மாற்றுகிறது. Settings, பின்னர் Connection என்பதற்குள் Remote Play-ஐ இயக்கினால், உங்கள் Jellyfin session-ஐ server-க்கு வழங்குகிறீர்கள். இதனால் /remote.html-க்கு வரும் visitors, உங்கள் உண்மையான library-யின் தங்களுக்கான instance-ஐப் பெறுவார்கள். இதுவே அந்த feature-ன் நோக்கம். இதன் பொருள், URL-ன் ரகசியத்தன்மையே internet-க்கும் உங்கள் films-க்கும் இடையிலான பாதுகாப்பாக இருக்கும். Remote Play-ஐ இயக்கினால், முழு site-க்கும் முன்பாக Authentik-ஐ self-hosted SSO gateway-ஆக வைத்து single sign-on அமைக்கவும். அல்லது public hostname-ஐ அகற்றி, wg-easy மூலம் நிர்வகிக்கப்படும் WireGuard tunnel வழியாக store-ஐ அணுகவும்.
இதனுடன் தொடர்புடைய இரண்டு விவரங்கள் உள்ளன. Reverse proxy store-ஐ மட்டும் எடுத்துச் செல்லும். Remote Play stream என்பது UDP வழியாகச் செல்லும் WebRTC; அது HTTP proxy வழியாகச் செல்லாது. எனவே 3478/udp-ல் தனி path தேவைப்படும். Bundled TURN relay பயன்படுத்தப்படும் போது 49200 முதல் 49260/udp வரையிலும் தனி path தேவைப்படும். மேலும், மேலே உள்ள plain docker run எந்த volume-ஐயும் வைத்திருக்காது. எனவே Remote Play seed, docker rm-க்குப் பிறகு நிலைத்திருக்காது. இதற்காகவே Compose file, halcyon-data volume-ஐ /data-ல் mount செய்து, REMOTE_PLAY_SEED-ஐ /data/remote-play-seed.json ஆக அமைக்கிறது.
store சரியாக இயங்காதபோது என்ன செய்ய வேண்டும்
Halcyon தேவைக்கேற்ப render செய்கிறது. பயன்படுத்தப்படாத store எந்த frame-களையும் composite செய்யாது. Window focus இழக்கப்படும்போது animation loop நிறுத்தப்படும். அதனால் திறந்த நிலையில் விடப்பட்ட tab laptop battery-யை அதிகமாக பயன்படுத்தாது. எல்லைக்கட்டான நிலையில் உள்ள machine-க்கு இது உதவும். ஆனால் store-ஐ முற்றிலும் render செய்ய முடியாத machine-க்கு இது எந்தப் பயனும் அளிக்காது.
அத்தகைய clients-க்கு 2.5D mode உள்ளது. இதில் WebGL இல்லாமல் plain HTML மற்றும் CSS பயன்படுத்தப்படுகின்றன. Raspberry Pi அளவிலான குறைந்த திறன் கொண்ட hardware-களுக்காக இது வடிவமைக்கப்பட்டுள்ளது. Page reload இல்லாமல் settings அல்லது power menu வழியாக 3D மற்றும் 2.5D இடையே மாற்றலாம். எனவே ஒரே device-ல் இரண்டையும் சோதிக்க சில விநாடிகள் போதும். கிடைக்கும் முடிவைப் பற்றி நிதானமாக எதிர்பார்க்கவும். Flat mode இன்னும் rough நிலையில் இருப்பதாகவும், development தொடர்ந்து நடைபெறுவதாகவும் author குறிப்பிடுகிறார். பலவீனமான clients-க்கு இதை fallback ஆகப் பயன்படுத்தவும்.
3D store-க்கு client-ன் திறன் போதவில்லை என்றால், failure வெளிப்படையாகத் தெரியும். Tab தானாக reload ஆகலாம். அல்லது browser lost WebGL context என்று தெரிவிக்கலாம். இது பொதுவாக shelves இன்னும் நிரம்பிக்கொண்டிருக்கும்போது நிகழும். Library-யைச் சுருக்குவதற்குப் பதிலாக அந்த device-ஐ 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:747dcc821a3d2fa318b50e76024783c1835609047e84f502e23d021bc1898b2010 August 2026 அன்று அந்த digest 0.3.1 ஆக இருந்தது. இதை அப்படியே நகலெடுக்காமல், தற்போதைய digest-ஐ நீங்களே பார்த்துக்கொள்ளுங்கள். Upgrade செய்வதற்கு முன் release notes-ஐயும் படியுங்கள். ஏனெனில் இங்கு patch release-ல் fixes மட்டுமின்றி store layout மாற்றங்களும் இருக்கலாம்.
FAQ
Halcyon-ஐ என் VPS-ல் இயக்க GPU தேவையா?
வழக்கமான பயன்பாட்டிற்கு தேவையில்லை. Store-ஐ browser-ல் three.js render செய்வதால், rendering-ஐ client machine மேற்கொள்ளும்; container port 1420-ல் static files-ஐ மட்டும் வழங்கும். Remote Play மட்டும் விதிவிலக்கு. அது server-ல் headless Chromium-ஐ இயக்கி, அதன் முடிவை stream செய்யும். /dev/dri-ஐ container-க்குள் map செய்தால் மட்டுமே அந்தப் பாதை hardware acceleration-ஐ பயன்படுத்தும்; இல்லையெனில் CPU-ல் render செய்யும்.
Halcyon-ஐ public internet-ல் வைக்கலாமா?
Authentication-ன் பின்னால் மட்டும் வைக்கலாம். Store, Jellyfin credentials-ஐ கேட்கும். ஆனால் Remote Play-ஐ இயக்கும்போது, உங்கள் Jellyfin session-ஐ server-க்கு வழங்குகிறீர்கள். எனவே /remote.html-ஐ load செய்யும் எவரும் login செய்யாமல் உங்கள் உண்மையான library-ன் instance-ஐ அணுக முடியும். அதற்கு முன் single sign on கொண்ட reverse proxy-ஐ அமைக்கவும். அல்லது hostname-ஐ public DNS-ல் வெளியிடாமல், VPN மூலம் store-ஐ அணுகவும்.
Login செய்த பிறகு shelves ஏன் காலியாக உள்ளன?
Browser, Jellyfin API-ஐ நேரடியாக அழைக்கிறது. எனவே Jellyfin, VPS-லிருந்து மட்டும் அல்லாமல் browser-லிருந்தும் reach செய்யக்கூடியதாக இருக்க வேண்டும். Browser console-ஐத் திறக்கவும். blocked by CORS policy என்றால், Halcyon-ன் address-லிருந்து வரும் request-ஐ Jellyfin ஏற்கவில்லை என்று பொருள். Mixed Content message என்றால், page HTTPS-ல் உள்ளது; நீங்கள் உள்ளிட்ட Jellyfin address plain HTTP-ல் உள்ளது என்று பொருள்.
--network host தேவையா?
Remote Play-க்கு மட்டும் தேவை. WebRTC, machine-ன் உண்மையான address-ஐ advertise செய்ய வேண்டும். Docker bridge-ன் பின்னால் container, உங்கள் network-ல் உள்ள எந்த phone-மும் reach செய்ய முடியாத 172.x address-ஐ மட்டுமே வழங்க முடியும். Browser-ல் store-ஐ browse செய்வதற்கு -p 1420:1420 போதுமானது. இது host-ன் மிகக் குறைந்த பகுதியையே வெளிப்படுத்தும்.
எந்த image tag-ஐ பயன்படுத்த வேண்டும்?
latest பயன்படுத்துவதற்குப் பதிலாக digest-ஐ pin செய்யவும். docker buildx imagetools inspect ghcr.io/halcyon-video/halcyon-video:0.3.1 மூலம் ஒரு version-ன் digest-ஐப் பார்த்து, அந்த digest-ஐ இயக்கவும். Release notes-ஐப் படித்த பிறகே மாற்றத்தைச் செய்யவும். August 2026 நிலவரப்படி வெளியிடப்பட்ட image linux/amd64 மட்டும். எனவே arm64 host, clone-லிருந்து docker compose up -d மூலம் build செய்ய வேண்டும்.