[{"data":1,"prerenderedAt":444},["ShallowReactive",2],{"deploy-trigger-navigation":3,"mdc-o8y00b-key":24,"deploy-trigger-version":66,"\u002Fdocs\u002Fdeploy-trigger":67,"\u002Fdocs\u002Fdeploy-trigger-surround":443},[4],{"title":5,"path":6,"stem":7,"children":8,"icon":23},"Deploy Trigger","\u002Fdocs\u002Fdeploy-trigger","1.docs\u002F9.deploy-trigger\u002F1.index",[9,11,15,19],{"title":10,"path":6,"stem":7},"Getting Started",{"title":12,"path":13,"stem":14},"Configuration","\u002Fdocs\u002Fdeploy-trigger\u002Fconfiguration","1.docs\u002F9.deploy-trigger\u002F2.configuration",{"title":16,"path":17,"stem":18},"Permissions","\u002Fdocs\u002Fdeploy-trigger\u002Fpermissions","1.docs\u002F9.deploy-trigger\u002F3.permissions",{"title":20,"path":21,"stem":22},"Platforms","\u002Fdocs\u002Fdeploy-trigger\u002Fplatforms","1.docs\u002F9.deploy-trigger\u002F4.platforms","i-ri-rocket-2-line",{"data":25,"body":26},{},{"type":27,"children":28},"root",[29],{"type":30,"tag":31,"props":32,"children":33},"element","p",{},[34,37,46,48,55,57,64],{"type":35,"value":36},"text","Kirby Tools is built on ",{"type":30,"tag":38,"props":39,"children":43},"a",{"href":40,"rel":41},"https:\u002F\u002Fgetkirby.com",[42],"nofollow",[44],{"type":35,"value":45},"Kirby",{"type":35,"value":47}," – with gratitude to the team and community who make it. Help me improve the plugins: share feedback in ",{"type":30,"tag":38,"props":49,"children":52},{"href":50,"rel":51},"https:\u002F\u002Fgithub.com\u002Fkirby-tools\u002Fcommunity\u002Fdiscussions",[42],[53],{"type":35,"value":54},"Discussions",{"type":35,"value":56}," or report bugs via ",{"type":30,"tag":38,"props":58,"children":61},{"href":59,"rel":60},"https:\u002F\u002Fgithub.com\u002Fkirby-tools\u002Fcommunity\u002Fissues",[42],[62],{"type":35,"value":63},"Issues",{"type":35,"value":65},".",null,{"id":68,"title":10,"body":69,"description":437,"extension":438,"meta":439,"navigation":440,"path":6,"seo":441,"stem":7,"__hash__":442},"docs\u002F1.docs\u002F9.deploy-trigger\u002F1.index.md",{"type":70,"value":71,"toc":430},"minimark",[72,84,89,122,143,147,154,206,211,215,226,278,281,295,386,390,398,402,405,421,426],[31,73,74,75,79,80,65],{},"Kirby Deploy Trigger is a plugin for ",[38,76,78],{"href":40,"rel":77},[42],"Kirby CMS"," that adds a Panel button to start a deployment on Vercel, Netlify, GitHub Actions, or any service with a deploy hook. Your server sends the request, so the hook URL and any token stay in ",[81,82,83],"code",{},"config.php",[85,86,88],"h2",{"id":87},"step-1-install-the-plugin","Step 1: Install the Plugin",[90,91,94,97],"card",{"icon":92,"title":93},"i-ri-terminal-box-line","Composer",[31,95,96],{},"The recommended way to install the plugin:",[98,99,104],"pre",{"className":100,"code":101,"language":102,"meta":103,"style":103},"language-bash shiki shiki-themes github-light github-light github-dark","composer require johannschopplich\u002Fkirby-deploy-trigger\n","bash","",[81,105,106],{"__ignoreMap":103},[107,108,111,115,119],"span",{"class":109,"line":110},"line",1,[107,112,114],{"class":113},"snPdu","composer",[107,116,118],{"class":117},"sIIMD"," require",[107,120,121],{"class":117}," johannschopplich\u002Fkirby-deploy-trigger\n",[90,123,126],{"icon":124,"title":125},"i-ri-folder-zip-line","ZIP File Download",[31,127,128,129,132,133,138,139,142],{},"Download the ",[130,131],"latest-version",{}," or head over to the ",[38,134,137],{"href":135,"rel":136},"https:\u002F\u002Fgithub.com\u002Fjohannschopplich\u002Fkirby-deploy-trigger\u002Freleases",[42],"releases page"," to see all versions. Extract the ZIP file to your ",[81,140,141],{},"site\u002Fplugins"," folder.",[85,144,146],{"id":145},"step-2-set-the-deploy-hook-url","Step 2: Set the Deploy Hook URL",[31,148,149,150,153],{},"Your hosting platform gives you a URL that starts a deployment when it receives a request. Set it as the ",[81,151,152],{},"deployUrl",":",[98,155,160],{"className":156,"code":157,"filename":158,"language":159,"meta":103,"style":103},"language-php shiki shiki-themes github-light github-light github-dark","return [\n    'johannschopplich.deploy-trigger' => [\n        'deployUrl' => 'https:\u002F\u002Fapi.netlify.com\u002Fbuild_hooks\u002F\u003Chook-id>'\n    ]\n];\n","site\u002Fconfig\u002Fconfig.php","php",[81,161,162,172,183,194,200],{"__ignoreMap":103},[107,163,164,168],{"class":109,"line":110},[107,165,167],{"class":166},"s8jYJ","return",[107,169,171],{"class":170},"sxrX7"," [\n",[107,173,175,178,181],{"class":109,"line":174},2,[107,176,177],{"class":117},"    'johannschopplich.deploy-trigger'",[107,179,180],{"class":166}," =>",[107,182,171],{"class":170},[107,184,186,189,191],{"class":109,"line":185},3,[107,187,188],{"class":117},"        'deployUrl'",[107,190,180],{"class":166},[107,192,193],{"class":117}," 'https:\u002F\u002Fapi.netlify.com\u002Fbuild_hooks\u002F\u003Chook-id>'\n",[107,195,197],{"class":109,"line":196},4,[107,198,199],{"class":170},"    ]\n",[107,201,203],{"class":109,"line":202},5,[107,204,205],{"class":170},"];\n",[31,207,208,210],{},[38,209,20],{"href":21}," shows where Vercel, Netlify, and GitHub Actions hand out the URL.",[85,212,214],{"id":213},"step-3-add-the-button-to-a-blueprint","Step 3: Add the Button to a Blueprint",[31,216,217,218,221,222,225],{},"Add ",[81,219,220],{},"deploy-trigger"," to the ",[81,223,224],{},"buttons"," of the site blueprint:",[98,227,232],{"className":228,"code":229,"filename":230,"language":231,"meta":103,"style":103},"language-yaml shiki shiki-themes github-light github-light github-dark","buttons:\n  - open # `buttons` replaces Kirby's\n  - preview # defaults, so list them all\n  - deploy-trigger\n  - languages\n","site\u002Fblueprints\u002Fsite.yml","yaml",[81,233,234,242,254,264,271],{"__ignoreMap":103},[107,235,236,239],{"class":109,"line":110},[107,237,224],{"class":238},"sovSZ",[107,240,241],{"class":170},":\n",[107,243,244,247,250],{"class":109,"line":174},[107,245,246],{"class":170},"  - ",[107,248,249],{"class":117},"open",[107,251,253],{"class":252},"sCsY4"," # `buttons` replaces Kirby's\n",[107,255,256,258,261],{"class":109,"line":185},[107,257,246],{"class":170},[107,259,260],{"class":117},"preview",[107,262,263],{"class":252}," # defaults, so list them all\n",[107,265,266,268],{"class":109,"line":196},[107,267,246],{"class":170},[107,269,270],{"class":117},"deploy-trigger\n",[107,272,273,275],{"class":109,"line":202},[107,274,246],{"class":170},[107,276,277],{"class":117},"languages\n",[31,279,280],{},"A page blueprint takes the same entry.",[31,282,283,284,291,292,294],{},"To show the button in every page view without touching each page blueprint, set Kirby's ",[38,285,288],{"href":286,"rel":287},"https:\u002F\u002Fgetkirby.com\u002Fdocs\u002Freference\u002Fsystem\u002Foptions\u002Fpanel",[42],[81,289,290],{},"panel.viewButtons"," option instead. A blueprint's ",[81,293,224],{}," still take precedence:",[98,296,298],{"className":156,"code":297,"filename":158,"language":159,"meta":103,"style":103},"return [\n    'panel' => [\n        'viewButtons' => [\n            'page' => ['open', 'preview', 'deploy-trigger', '-', 'settings', 'languages', 'status']\n        ]\n    ]\n];\n",[81,299,300,306,315,324,371,376,381],{"__ignoreMap":103},[107,301,302,304],{"class":109,"line":110},[107,303,167],{"class":166},[107,305,171],{"class":170},[107,307,308,311,313],{"class":109,"line":174},[107,309,310],{"class":117},"    'panel'",[107,312,180],{"class":166},[107,314,171],{"class":170},[107,316,317,320,322],{"class":109,"line":185},[107,318,319],{"class":117},"        'viewButtons'",[107,321,180],{"class":166},[107,323,171],{"class":170},[107,325,326,329,331,334,337,340,343,345,348,350,353,355,358,360,363,365,368],{"class":109,"line":196},[107,327,328],{"class":117},"            'page'",[107,330,180],{"class":166},[107,332,333],{"class":170}," [",[107,335,336],{"class":117},"'open'",[107,338,339],{"class":170},", ",[107,341,342],{"class":117},"'preview'",[107,344,339],{"class":170},[107,346,347],{"class":117},"'deploy-trigger'",[107,349,339],{"class":170},[107,351,352],{"class":117},"'-'",[107,354,339],{"class":170},[107,356,357],{"class":117},"'settings'",[107,359,339],{"class":170},[107,361,362],{"class":117},"'languages'",[107,364,339],{"class":170},[107,366,367],{"class":117},"'status'",[107,369,370],{"class":170},"]\n",[107,372,373],{"class":109,"line":202},[107,374,375],{"class":170},"        ]\n",[107,377,379],{"class":109,"line":378},6,[107,380,199],{"class":170},[107,382,384],{"class":109,"line":383},7,[107,385,205],{"class":170},[85,387,389],{"id":388},"step-4-deploy-from-the-panel","Step 4: Deploy From the Panel",[31,391,392,393,397],{},"Click ",[394,395,396],"strong",{},"Deploy Site"," in the view's header. A notification confirms once the deploy hook accepts the request. The deployment itself then runs on your platform, and the Panel doesn't follow it.",[85,399,401],{"id":400},"when-a-deployment-fails","When a Deployment Fails",[31,403,404],{},"A failed request shows up as a Panel error:",[406,407,408,412,415],"ul",{},[409,410,411],"li",{},"A response outside the 2xx range names its status code, followed by the response body unless that is an HTML page.",[409,413,414],{},"A hook that can't be reached – an unknown host, a timeout – shows the connection error.",[409,416,417,418,420],{},"Without a ",[81,419,152],{},", the error names the missing option.",[31,422,423,424,65],{},"To send a token, a JSON body, or a longer timeout with the request, see ",[38,425,12],{"href":13},[427,428,429],"style",{},"html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--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);}html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sovSZ, html code.shiki .sovSZ{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":103,"searchDepth":174,"depth":174,"links":431},[432,433,434,435,436],{"id":87,"depth":174,"text":88},{"id":145,"depth":174,"text":146},{"id":213,"depth":174,"text":214},{"id":388,"depth":174,"text":389},{"id":400,"depth":174,"text":401},"Install the plugin, set the deploy hook URL, and add the deploy button to the site view or a page view.","md",{},true,{"title":10,"description":437},"gUU1ePH40_BzW8nmoPKjcGpfj7Dfu__xhlq5vh58vVA",[66,66],1793356756005]