[{"data":1,"prerenderedAt":267},["ShallowReactive",2],{"content-ca-\u002Fsdk\u002Fdeployment":3},{"id":4,"title":5,"author":6,"body":7,"date":6,"description":259,"extension":260,"meta":261,"navigation":262,"path":263,"seo":264,"stem":265,"tags":6,"__hash__":266},"content_ca\u002Fca\u002Fsdk\u002Fdeployment.md","Desplegament de la PWA",null,{"type":8,"value":9,"toc":251},"minimark",[10,14,19,30,37,40,44,85,89,112,136,140,159,163,166,184,188,247],[11,12,5],"h1",{"id":13},"desplegament-de-la-pwa",[15,16,18],"h2",{"id":17},"arquitectura","Arquitectura",[20,21,26],"pre",{"className":22,"code":24,"language":25},[23],"language-text","User Browser\n    ↓ HTTPS\nhttps:\u002F\u002Fyour-cms.example.com\u002Fplayer\u002Fpwa\u002F\n    ↓\nReverse Proxy (SWAG\u002Fnginx, Port 443)\n    ↓\nXibo container\n    ↓\nweb\u002Fchromeos\u002F → PWA Player Files (HTML\u002FJS\u002FCSS)\n","text",[27,28,24],"code",{"__ignoreMap":29},"",[31,32,33],"p",{},[34,35,36],"strong",{},"Mateix origen = Sense problemes de CORS.",[31,38,39],{},"La PWA s'ha de servir des del mateix domini que el CMS. Totes les crides a l'API (REST, SOAP, descàrregues de fitxers) van dirigides a l'origen del CMS.",[15,41,43],{"id":42},"compilació","Compilació",[20,45,49],{"className":46,"code":47,"language":48,"meta":29,"style":29},"language-bash shiki shiki-themes material-theme-lighter github-light github-dark","# From the xiboplayer-pwa repo\npnpm install\npnpm run build    # Production bundle → dist\u002F\n","bash",[27,50,51,60,71],{"__ignoreMap":29},[52,53,56],"span",{"class":54,"line":55},"line",1,[52,57,59],{"class":58},"sutJx","# From the xiboplayer-pwa repo\n",[52,61,63,67],{"class":54,"line":62},2,[52,64,66],{"class":65},"sbgvK","pnpm",[52,68,70],{"class":69},"s_sjI"," install\n",[52,72,74,76,79,82],{"class":54,"line":73},3,[52,75,66],{"class":65},[52,77,78],{"class":69}," run",[52,80,81],{"class":69}," build",[52,83,84],{"class":58},"    # Production bundle → dist\u002F\n",[15,86,88],{"id":87},"desplegament-al-cms","Desplegament al CMS",[31,90,91,92,95,96,99,100,103,104,107,108,111],{},"Copia ",[27,93,94],{},"dist\u002F*"," al directori ",[27,97,98],{},"web\u002Fchromeos\u002F"," del contenidor del CMS. El ",[27,101,102],{},".htaccess"," del CMS reescriu ",[27,105,106],{},"\u002Fplayer\u002Fpwa\u002F*"," → ",[27,109,110],{},"web\u002Fchromeos\u002F*",".",[20,113,115],{"className":46,"code":114,"language":48,"meta":29,"style":29},"# Example with podman\npodman cp dist\u002F. xibo-cms-web:\u002Fvar\u002Fwww\u002Fcms\u002Fweb\u002Fchromeos\u002F\n",[27,116,117,122],{"__ignoreMap":29},[52,118,119],{"class":54,"line":55},[52,120,121],{"class":58},"# Example with podman\n",[52,123,124,127,130,133],{"class":54,"line":62},[52,125,126],{"class":65},"podman",[52,128,129],{"class":69}," cp",[52,131,132],{"class":69}," dist\u002F.",[52,134,135],{"class":69}," xibo-cms-web:\u002Fvar\u002Fwww\u002Fcms\u002Fweb\u002Fchromeos\u002F\n",[15,137,139],{"id":138},"verificació","Verificació",[141,142,143,150,153,156],"ol",{},[144,145,146,147],"li",{},"Obre ",[27,148,149],{},"https:\u002F\u002Fyour-cms.example.com\u002Fplayer\u002Fpwa\u002F",[144,151,152],{},"La pàgina de configuració hauria d'aparèixer en la primera visita",[144,154,155],{},"Introdueix l'adreça del CMS (mateix domini), la clau del CMS i el nom de la pantalla",[144,157,158],{},"El reproductor es connecta i comença a mostrar dissenys",[15,160,162],{"id":161},"alternativa-electron-o-chromium-per-a-quioscescriptori","Alternativa: Electron o Chromium (per a quiosc\u002Fescriptori)",[31,164,165],{},"Per a desplegaments locals o de quiosc on l'allotjament de mateix origen no és disponible, els wrappers d'Electron i Chromium inclouen un servidor proxy integrat que gestiona CORS.",[167,168,169,177],"ul",{},[144,170,171,176],{},[172,173,175],"a",{"href":174},"\u002Fplayers\u002Felectron","Reproductor Electron"," — inclou el seu propi navegador",[144,178,179,183],{},[172,180,182],{"href":181},"\u002Fplayers\u002Fchromium","Reproductor Chromium"," — utilitza el navegador del sistema",[15,185,187],{"id":186},"ubicació-dels-fitxers","Ubicació dels Fitxers",[189,190,191,204],"table",{},[192,193,194],"thead",{},[195,196,197,201],"tr",{},[198,199,200],"th",{},"Entorn",[198,202,203],{},"Ruta",[205,206,207,218,228,238],"tbody",{},[195,208,209,213],{},[210,211,212],"td",{},"Codi font",[210,214,215],{},[27,216,217],{},"src\u002F",[195,219,220,223],{},[210,221,222],{},"Sortida de compilació",[210,224,225],{},[27,226,227],{},"dist\u002F",[195,229,230,233],{},[210,231,232],{},"Contenidor del CMS",[210,234,235],{},[27,236,237],{},"\u002Fvar\u002Fwww\u002Fcms\u002Fweb\u002Fchromeos\u002F",[195,239,240,243],{},[210,241,242],{},"URL",[210,244,245],{},[27,246,149],{},[248,249,250],"style",{},"html pre.shiki code .sutJx, html code.shiki .sutJx{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}html pre.shiki code .sbgvK, html code.shiki .sbgvK{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":29,"searchDepth":73,"depth":73,"links":252},[253,254,255,256,257,258],{"id":17,"depth":62,"text":18},{"id":42,"depth":62,"text":43},{"id":87,"depth":62,"text":88},{"id":138,"depth":62,"text":139},{"id":161,"depth":62,"text":162},{"id":186,"depth":62,"text":187},"Desplega la PWA de XiboPlayer al teu Xibo.","md",{},true,"\u002Fca\u002Fsdk\u002Fdeployment",{"title":5,"description":259},"ca\u002Fsdk\u002Fdeployment","l4jiM_ZBvzh5SShIUv3UttL_kwYks7HmcL7mNjByd9s",1775148105254]