CINXE.COM
Deployment configuration | Docs | IONOS Deploy Now
<!DOCTYPE html> <html data-html-server-rendered="true" lang="en" data-vue-tag="%7B%22lang%22:%7B%22ssr%22:%22en%22%7D%7D"> <head> <title>Deployment configuration | Docs | IONOS Deploy Now</title><meta name="gridsome:hash" content="6ad96c346b61bc3b7f03a8aab8ff2b0f6e92a6bd"><meta data-vue-tag="ssr" charset="utf-8"><meta data-vue-tag="ssr" name="generator" content="Gridsome v0.7.23"><meta data-vue-tag="ssr" data-key="viewport" name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"><meta data-vue-tag="ssr" data-key="format-detection" name="format-detection" content="telephone=no"><meta data-vue-tag="ssr" name="google-site-verification" content="UtLaJ4v0UZBDPJVc8DqCyiUPSSz9TtMroKmflhpH2eo"><meta data-vue-tag="ssr" data-key="og:url" name="og:url" content="undefined/team/robin-mueller/"><meta data-vue-tag="ssr" data-key="description" name="description" content="Deploy Now is a platform for building and hosting Static Site Generators and Single Page Applications on inhouse engineered IONOS infrastructure."><meta data-vue-tag="ssr" name="description" content="How to define file persistency and remote commands in Deploy Now."><meta data-vue-tag="ssr" data-key="og:title" name="og:title" content="Deployment configuration | Docs"><meta data-vue-tag="ssr" data-key="og:description" name="og:description" content="How to define file persistency and remote commands in Deploy Now."><meta data-vue-tag="ssr" data-key="twitter:title" name="twitter:title" content="Deployment configuration | Docs"><meta data-vue-tag="ssr" data-key="twitter:description" name="twitter:description" content="How to define file persistency and remote commands in Deploy Now."><meta data-vue-tag="ssr" data-key="og:type" name="og:type" content="website"><meta data-vue-tag="ssr" data-key="twitter:card" name="twitter:card" content="summary_large_image"><meta data-vue-tag="ssr" data-key="og:image" name="og:image" content="https://docs.ionos.space/favicon.png"><meta data-vue-tag="ssr" data-key="twitter:image" name="twitter:image" content="https://docs.ionos.space/favicon.png"><link data-vue-tag="ssr" rel="icon" href="data:,"><link data-vue-tag="ssr" rel="icon" type="image/png" sizes="16x16" href="/assets/static/favicon.ce0531f.7227131fb676627f66f79aa1b9b1b2b5.png"><link data-vue-tag="ssr" rel="icon" type="image/png" sizes="32x32" href="/assets/static/favicon.ac8d93a.7227131fb676627f66f79aa1b9b1b2b5.png"><link data-vue-tag="ssr" rel="icon" type="image/png" sizes="96x96" href="/assets/static/favicon.b9532cc.7227131fb676627f66f79aa1b9b1b2b5.png"><link data-vue-tag="ssr" rel="apple-touch-icon-precomposed" type="image/png" sizes="76x76" href="/assets/static/favicon.f22e9f3.7227131fb676627f66f79aa1b9b1b2b5.png"><link data-vue-tag="ssr" rel="apple-touch-icon-precomposed" type="image/png" sizes="120x120" href="/assets/static/favicon.1539b60.7227131fb676627f66f79aa1b9b1b2b5.png"><link rel="preload" href="/assets/css/0.styles.20d902e6.css" as="style"><link rel="preload" href="/assets/js/app.1420e6f5.js" as="script"><link rel="preload" href="/assets/js/page--src--templates--markdown-page-vue.f5d097cb.js" as="script"><link rel="prefetch" href="/assets/js/page--src--pages--404-vue.b12f5170.js"><link rel="prefetch" href="/assets/js/page--src--pages--about-us-vue.3adebecf.js"><link rel="prefetch" href="/assets/js/page--src--pages--blog-vue.751bc822.js"><link rel="prefetch" href="/assets/js/page--src--pages--index-vue.8e23d7d5.js"><link rel="prefetch" href="/assets/js/search.651a1d13.js"><link rel="prefetch" href="/assets/js/vendors~search.706d69fe.js"><link rel="stylesheet" href="/assets/css/0.styles.20d902e6.css"><script data-vue-tag="ssr" type="text/javascript" src="/assets/js/service-worker.js" async></script><script data-vue-tag="ssr" type="application/ld+json">{"@context":"https://schema.org","@type":"BlogPosting","headline":"Deployment configuration","mainEntityOfPage":{"@type":"WebPage","@id":"/docs/deployment-configuration/"},"publisher":{"@type":"Organization","name":"IONOS SE"},"articleBody":"<h1 id=\"deployment-configuration\"><a href=\"#deployment-configuration\" aria-hidden=\"true\"><span class=\"icon icon-link\"></span></a>Deployment configuration</h1>\n<p>Workflows deploy to IONOS infrastructure after the <a href=\"/docs/github-actions-customization/\">build</a>. Build results can be deployed to one instance or multiple instances with <a href=\"/docs/multi-deployments/\">Multi deployments</a>. Additional feature branches can be deployed as <a href=\"/docs/staging-deployments/\">Staging deployments</a>. More information about the Deploy Now workflows can be found under <a href=\"/docs/git-integration/\">GitHub integration</a>.</p>\n<p>Deploy Now offers configurations for file persistency and automated runtime commands for <code>PHP projects</code>. Configurations can be made under <code>.deploy-now/config.yaml</code> for <a href=\"/docs/git-integration/#workflow-versions\">workflow v1</a> and <code>.deploy-now/[project-name]/config.yaml</code> for <a href=\"/docs/git-integration/#workflow-versions\">workflow v2</a>.</p>\n<h2 id=\"configurations\"><a href=\"#configurations\" aria-hidden=\"true\"><span class=\"icon icon-link\"></span></a>Configurations</h2>\n<h3 id=\"excludes\"><a href=\"#excludes\" aria-hidden=\"true\"><span class=\"icon icon-link\"></span></a>Excludes</h3>\n<h4 id=\"description\"><a href=\"#description\" aria-hidden=\"true\"><span class=\"icon icon-link\"></span></a>Description</h4>\n<p>by default, all files in your publish directory get deployed. Directories that should not be deployed can be listed as excludes. Vice versa, files created by your application at runtime can also be listed as excluced, preventing them from being deleted. You can define different excludes for the first deployment (<code>bootstrap</code>) and any following deployment (<code>recurring</code>). The folders <code>logs</code>, <code>.deploy-now</code>, <code>.git</code> and <code>.github</code> are marked as excludes by default. </p>\n<h4 id=\"how-to-edit\"><a href=\"#how-to-edit\" aria-hidden=\"true\"><span class=\"icon icon-link\"></span></a>How to edit</h4>\n<p>Listing directories relative to the publish directory under <code>excludes:</code> in <code>config.yaml</code>. Changes become active with the next deployment.</p>\n<h4 id=\"example\"><a href=\"#example\" aria-hidden=\"true\"><span class=\"icon icon-link\"></span></a>Example</h4>\n<pre class=\"language-yaml line-numbers\"><code class=\"language-yaml\"> <span class=\"token key atrule\">bootstrap</span><span class=\"token punctuation\">:</span>\n <span class=\"token comment\"># directories that are not copied by the initial deployment</span>\n <span class=\"token key atrule\">excludes</span><span class=\"token punctuation\">:</span>\n <span class=\"token punctuation\">-</span> samplefolder\n <span class=\"token punctuation\">-</span> samplefile.txt\n <span class=\"token punctuation\">-</span> folder/withfile.txt<span class=\"line-numbers-rows\" aria-hidden=\"true\"><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n<pre class=\"language-yaml line-numbers\"><code class=\"language-yaml\"> <span class=\"token key atrule\">recurring</span><span class=\"token punctuation\">:</span>\n <span class=\"token comment\"># directories that are not overwritten or removed by the next deployment</span>\n <span class=\"token key atrule\">excludes</span><span class=\"token punctuation\">:</span>\n <span class=\"token punctuation\">-</span> samplefolder\n <span class=\"token punctuation\">-</span> samplefile.txt\n <span class=\"token punctuation\">-</span> folder/withfile.txt\n <span class=\"token punctuation\">-</span> database.sqlite<span class=\"line-numbers-rows\" aria-hidden=\"true\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n<h3 id=\"remote-commands\"><a href=\"#remote-commands\" aria-hidden=\"true\"><span class=\"icon icon-link\"></span></a>Remote commands</h3>\n<h4 id=\"description-1\"><a href=\"#description-1\" aria-hidden=\"true\"><span class=\"icon icon-link\"></span></a>Description</h4>\n<p>You can execute commands on your runtime during the deployment process. This could either be done before or after the deployment. You can define different commands for the initial deployment (<code>bootstrap</code>) and any other deployment (<code>recurring</code>).</p>\n<h4 id=\"how-to-edit-1\"><a href=\"#how-to-edit-1\" aria-hidden=\"true\"><span class=\"icon icon-link\"></span></a>How to edit</h4>\n<p>List runtime commands under <code>pre-deployment-remote-commands</code>or <code>post-deployment-remote-commands</code>.</p>\n<h4 id=\"example-1\"><a href=\"#example-1\" aria-hidden=\"true\"><span class=\"icon icon-link\"></span></a>Example</h4>\n<pre class=\"language-yaml line-numbers\"><code class=\"language-yaml\"> <span class=\"token comment\"># commands that are executed on the runtime before new files are copied</span>\n <span class=\"token key atrule\">pre-deployment-remote-commands</span><span class=\"token punctuation\">:</span>\n <span class=\"token punctuation\">-</span> echo \"starting maintenance mode\"\n \n <span class=\"token comment\"># commands that are executed on the runtime after new files are copied</span>\n <span class=\"token key atrule\">post-deployment-remote-commands</span><span class=\"token punctuation\">:</span>\n <span class=\"token punctuation\">-</span> echo \"clearing caches\"\n <span class=\"token punctuation\">-</span> php8.0<span class=\"token punctuation\">-</span>cli <span class=\"token punctuation\">-</span>r \"echo 'do something with php again';\"\n <span class=\"token punctuation\">-</span> echo \"leaving maintenance mode\"\n <span class=\"token punctuation\">-</span> echo \"back again\"<span class=\"line-numbers-rows\" aria-hidden=\"true\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>\n<p>An examplary <code>config.yaml</code> for a Laravel project can be found <a href=\"https://github.com/ionos-deploy-now/laravel-starter\" target=\"_blank\" rel=\"noopener noreferrer\">here</a>, a Symfony example can be found <a href=\"https://github.com/ionos-deploy-now/symfony-starter\" target=\"_blank\" rel=\"noopener noreferrer\">here</a>.</p>\n<h2 id=\"need-help\"><a href=\"#need-help\" aria-hidden=\"true\"><span class=\"icon icon-link\"></span></a>Need help?</h2>\n<p>Feel free to reach out to us via <a href=\"mailto:deploynow-support@ionos.com\">deploynow-support@ionos.com</a>.</p>\n"}</script><noscript data-vue-tag="ssr"><style>.g-image--loading{display:none;}</style></noscript> </head> <body > <div data-server-rendered="true" id="app" class="font-sans antialiased text-ui-typo bg-ui-background"><div class="flex flex-col justify-start min-h-screen bg-ui-background"><header class="sticky top-0 z-10 w-full border-b border-ui-border"><div class="px-4 py-2 bg-ui-background min-h-[60px]"><div class="flex justify-between items-center"><div class="flex-center"><a href="/" title="Home" class="flex-center mr-2 sm:mr-12 active"><img src="/logo.svg" alt="Deploy Now logo" class="h-8 mr-2 deploy-now-logo"><div class="text-ui-headline font-headline font-semibold no-wrap hidden sm:block md:text-2xl"></div></a><div class="hidden xl:block"><a href="/docs/" class="p-2 mx-2 font-semibold font-headline text-ui-primary hover:text-ui-secondary dark:hover:text-white active"> Docs </a><a href="/docs/faq/" class="p-2 mx-2 font-semibold font-headline text-ui-primary hover:text-ui-secondary dark:hover:text-white"> FAQ </a><a href="/blog/" class="p-2 mx-2 font-semibold font-headline text-ui-primary hover:text-ui-secondary dark:hover:text-white"> Blog </a><a href="/about-us/" class="p-2 mx-2 font-semibold font-headline text-ui-primary hover:text-ui-secondary dark:hover:text-white"> About us </a><a href="https://www.ionos.com/hosting/deploy-now?utm_source=deploy-now-docs&utm_medium=navigation&utm_campaign=sign-up#pricing" target="_blank" rel="noopener" class="p-2 mx-2 font-semibold font-headline text-ui-primary hover:text-ui-secondary dark:hover:text-white"> Pricing </a></div></div><div class="p-3 lg:p-0 max-w-screen-xs <lg:ml-auto"><!----></div><div class="flex-center lg:space-x-8"><a href="https://github.com/ionos-deploy-now/documentation//tree/main" target="_blank" rel="noopener noreferrer" title="Github" class="icon p-2"><span aria-hidden="true" role="img" class="material-design-icon github-icon icon icon-lg"><svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24" class="material-design-icon__svg"><path d="M12,2A10,10 0 0,0 2,12C2,16.42 4.87,20.17 8.84,21.5C9.34,21.58 9.5,21.27 9.5,21C9.5,20.77 9.5,20.14 9.5,19.31C6.73,19.91 6.14,17.97 6.14,17.97C5.68,16.81 5.03,16.5 5.03,16.5C4.12,15.88 5.1,15.9 5.1,15.9C6.1,15.97 6.63,16.93 6.63,16.93C7.5,18.45 8.97,18 9.54,17.76C9.63,17.11 9.89,16.67 10.17,16.42C7.95,16.17 5.62,15.31 5.62,11.5C5.62,10.39 6,9.5 6.65,8.79C6.55,8.54 6.2,7.5 6.75,6.15C6.75,6.15 7.59,5.88 9.5,7.17C10.29,6.95 11.15,6.84 12,6.84C12.85,6.84 13.71,6.95 14.5,7.17C16.41,5.88 17.25,6.15 17.25,6.15C17.8,7.5 17.45,8.54 17.35,8.79C18,9.5 18.38,10.39 18.38,11.5C18.38,15.32 16.04,16.16 13.81,16.41C14.17,16.72 14.5,17.33 14.5,18.26C14.5,19.6 14.5,20.68 14.5,21C14.5,21.27 14.66,21.59 15.17,21.5C19.14,20.16 22,16.42 22,12A10,10 0 0,0 12,2Z"><!----></path></svg></span></a><button aria-label="Toggle darkmode" title="Toggle darkmode" class="icon icon icon-lg p-2"><span aria-hidden="true" role="img" class="material-design-icon theme-light-dark-icon icon-lg"><svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24" class="material-design-icon__svg"><path d="M7.5,2C5.71,3.15 4.5,5.18 4.5,7.5C4.5,9.82 5.71,11.85 7.53,13C4.46,13 2,10.54 2,7.5A5.5,5.5 0 0,1 7.5,2M19.07,3.5L20.5,4.93L4.93,20.5L3.5,19.07L19.07,3.5M12.89,5.93L11.41,5L9.97,6L10.39,4.3L9,3.24L10.75,3.12L11.33,1.47L12,3.1L13.73,3.13L12.38,4.26L12.89,5.93M9.59,9.54L8.43,8.81L7.31,9.59L7.65,8.27L6.56,7.44L7.92,7.35L8.37,6.06L8.88,7.33L10.24,7.36L9.19,8.23L9.59,9.54M19,13.5A5.5,5.5 0 0,1 13.5,19C12.28,19 11.15,18.6 10.24,17.93L17.93,10.24C18.6,11.15 19,12.28 19,13.5M14.6,20.08L17.37,18.93L17.13,22.28L14.6,20.08M18.93,17.38L20.08,14.61L22.28,17.15L18.93,17.38M20.08,12.42L18.94,9.64L22.28,9.88L20.08,12.42M9.63,18.93L12.4,20.08L9.87,22.27L9.63,18.93Z"><!----></path></svg></span></button><a href="https://ionos.space" target="_blank" rel="noopener noreferrer" title="Website" class="btn btn-primary ml-4 hide-mobile"><span aria-hidden="true" role="img" class="material-design-icon open-in-new-icon icon"><svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24" class="material-design-icon__svg"><path d="M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z"><!----></path></svg></span> Deploy Now </a><button class="icon p-2 text-ui-typo active:text-ui-typo lg:hidden"><span aria-hidden="true" role="img" class="material-design-icon menu-icon icon icon-lg"><svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24" class="material-design-icon__svg"><path d="M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z"><!----></path></svg></span></button></div></div></div></header><main class="relative justify-center bg-ui-background"><aside class="sidebar lg:hidden" style="top:0px;height:calc(100vh - 0px);"><div class="w-full pb-16 bg-ui-background"><div class="px-4 pt-8 lg:pt-12"><div class="pb-4 mb-4 border-ui-border border-b"><h3 class="pt-0 mt-0 mb-1 text-sm tracking-tight uppercase border-none"> Getting Started </h3><ul class="max-w-full pl-2 mb-0"><li id="/docs/"><a href="/docs/" class="flex items-center py-1 font-semibold active"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> Introduction </a></li><li id="/docs/framework-samples/"><a href="/docs/framework-samples/" class="flex items-center py-1 font-semibold"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> From Sample </a></li><li id="/docs/from-cmd-line/"><a href="/docs/from-cmd-line/" class="flex items-center py-1 font-semibold"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> From Command Line </a></li><li id="/docs/from-repo/"><a href="/docs/from-repo/" class="flex items-center py-1 font-semibold"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> From Repository </a></li></ul></div><div class="pb-4 mb-4 border-ui-border border-b"><h3 class="pt-0 mt-0 mb-1 text-sm tracking-tight uppercase border-none"> Stacks </h3><ul class="max-w-full pl-2 mb-0"><li id="/docs/deploy-static-sites/"><a href="/docs/deploy-static-sites/" class="flex items-center py-1 font-semibold"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> Deploy Static Sites via GitHub </a></li><li id="/docs/deploy-php-apps/"><a href="/docs/deploy-php-apps/" class="flex items-center py-1 font-semibold"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> Deploy PHP Apps via GitHub </a></li></ul></div><div class="pb-4 mb-4 border-ui-border border-b"><h3 class="pt-0 mt-0 mb-1 text-sm tracking-tight uppercase border-none"> Configuration </h3><ul class="max-w-full pl-2 mb-0"><li id="/docs/github-actions-customization/"><a href="/docs/github-actions-customization/" class="flex items-center py-1 font-semibold"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> Build configuration </a></li><li id="/docs/deployment-configuration/" class="text-ui-primary"><a href="/docs/deployment-configuration/" aria-current="page" class="flex items-center py-1 font-semibold active--exact active"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center opacity-100 scale-100"></span> Deployment configuration </a></li><li id="/docs/runtime-configuration/"><a href="/docs/runtime-configuration/" class="flex items-center py-1 font-semibold"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> Runtime configuration </a></li><li id="/docs/apache-configuration-htaccess/"><a href="/docs/apache-configuration-htaccess/" class="flex items-center py-1 font-semibold"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> Apache configuration: .htaccess </a></li></ul></div><div class="pb-4 mb-4 border-ui-border border-b"><h3 class="pt-0 mt-0 mb-1 text-sm tracking-tight uppercase border-none"> Features </h3><ul class="max-w-full pl-2 mb-0"><li id="/docs/git-integration/"><a href="/docs/git-integration/" class="flex items-center py-1 font-semibold"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> GitHub integration </a></li><li id="/docs/staging-deployments/"><a href="/docs/staging-deployments/" class="flex items-center py-1 font-semibold"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> Staging deployments </a></li><li id="/docs/multi-deployments/"><a href="/docs/multi-deployments/" class="flex items-center py-1 font-semibold"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> Multi deployments </a></li><li id="/docs/database/"><a href="/docs/database/" class="flex items-center py-1 font-semibold"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> Database </a></li><li id="/docs/domain-tls/"><a href="/docs/domain-tls/" class="flex items-center py-1 font-semibold"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> Domains and TLS </a></li><li id="/docs/deployment-viewer/"><a href="/docs/deployment-viewer/" class="flex items-center py-1 font-semibold"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> View files and logs </a></li><li id="/docs/visitor-statistics/"><a href="/docs/visitor-statistics/" class="flex items-center py-1 font-semibold"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> Visitor statistics </a></li><li id="/docs/cronjobs/"><a href="/docs/cronjobs/" class="flex items-center py-1 font-semibold"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> Cron jobs </a></li></ul></div><div class="pb-4 mb-4 border-ui-border"><h3 class="pt-0 mt-0 mb-1 text-sm tracking-tight uppercase border-none"> More </h3><ul class="max-w-full pl-2 mb-0"><li id="/docs/faq/"><a href="/docs/faq/" class="flex items-center py-1 font-semibold"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> Frequently Asked Questions </a></li><li id="/blog/"><a href="/blog/" class="flex items-center py-1 font-semibold"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> Blog </a></li><li id="/about-us/"><a href="/about-us/" class="flex items-center py-1 font-semibold"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> About us </a></li><li id="/docs/create-sample/"><a href="/docs/create-sample/" class="flex items-center py-1 font-semibold"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> Create a sample </a></li><li id="https://github.com/ionos-deploy-now/ionos-deploy-now/blob/main/CHANGELOG.md"><a href="https://github.com/ionos-deploy-now/ionos-deploy-now/blob/main/CHANGELOG.md" target="_blank" rel="noopener" class="flex items-center py-1 font-semibold"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> Changelog </a></li><li id="https://github.com/ionos-deploy-now/ionos-deploy-now/issues/new/choose"><a href="https://github.com/ionos-deploy-now/ionos-deploy-now/issues/new/choose" target="_blank" rel="noopener" class="flex items-center py-1 font-semibold"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> Request a feature </a></li></ul></div></div></div></aside><div class="grid grid-cols-1"><div class="flex flex-wrap justify-start"><div class="<md:hidden lg:w-1/5 lg:order-2 overflow-y-auto sticky w-1/5 border-ui-border border-r lg:border-l lg:border-r-0" style="top:0px;height:calc(100vh - 0px);"><div class="mt-8 sm:px-4 sm:pb-16 md:mt-0 md:px-6 md:pt-12 lg:px-8 border-ui-border"><h3 class="pt-0 mt-0 text-sm tracking-wide uppercase border-none"> On this page </h3><div><ul><li class="font-semibold depth-2"><a href="/docs/deployment-configuration/#configurations" class="relative flex items-center py-1 text-sm transition transform hover:translate-x-1"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> Configurations </a></li><li class="depth-3"><a href="/docs/deployment-configuration/#excludes" class="relative flex items-center py-1 text-sm transition transform hover:translate-x-1 pl-2"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> Excludes </a></li><li class="depth-4"><a href="/docs/deployment-configuration/#description" class="relative flex items-center py-1 text-sm transition transform hover:translate-x-1 pl-3"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> Description </a></li><li class="depth-4"><a href="/docs/deployment-configuration/#how-to-edit" class="relative flex items-center py-1 text-sm transition transform hover:translate-x-1 pl-3"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> How to edit </a></li><li class="depth-4"><a href="/docs/deployment-configuration/#example" class="relative flex items-center py-1 text-sm transition transform hover:translate-x-1 pl-3"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> Example </a></li><li class="depth-3"><a href="/docs/deployment-configuration/#remote-commands" class="relative flex items-center py-1 text-sm transition transform hover:translate-x-1 pl-2"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> Remote commands </a></li><li class="depth-4"><a href="/docs/deployment-configuration/#description-1" class="relative flex items-center py-1 text-sm transition transform hover:translate-x-1 pl-3"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> Description </a></li><li class="depth-4"><a href="/docs/deployment-configuration/#how-to-edit-1" class="relative flex items-center py-1 text-sm transition transform hover:translate-x-1 pl-3"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> How to edit </a></li><li class="depth-4"><a href="/docs/deployment-configuration/#example-1" class="relative flex items-center py-1 text-sm transition transform hover:translate-x-1 pl-3"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> Example </a></li><li class="border-t border-dashed border-ui-border pt-2 mt-2 font-semibold depth-2"><a href="/docs/deployment-configuration/#need-help" class="relative flex items-center py-1 text-sm transition transform hover:translate-x-1"><span class="absolute w-1 h-4 -ml-3 opacity-0 bg-ui-primary transition transform scale-0 origin-center"></span> Need help? </a></li></ul></div></div></div><div class="container pb-24 <md:max-w-[90vw] lg:w-3/5 lg:order-1 md:w-3/5"><div><div class="content"><h1 id="deployment-configuration"><a href="#deployment-configuration" aria-hidden="true"><span class="icon icon-link"></span></a>Deployment configuration</h1> <p>Workflows deploy to IONOS infrastructure after the <a href="/docs/github-actions-customization/">build</a>. Build results can be deployed to one instance or multiple instances with <a href="/docs/multi-deployments/">Multi deployments</a>. Additional feature branches can be deployed as <a href="/docs/staging-deployments/">Staging deployments</a>. More information about the Deploy Now workflows can be found under <a href="/docs/git-integration/">GitHub integration</a>.</p> <p>Deploy Now offers configurations for file persistency and automated runtime commands for <code>PHP projects</code>. Configurations can be made under <code>.deploy-now/config.yaml</code> for <a href="/docs/git-integration/#workflow-versions">workflow v1</a> and <code>.deploy-now/[project-name]/config.yaml</code> for <a href="/docs/git-integration/#workflow-versions">workflow v2</a>.</p> <h2 id="configurations"><a href="#configurations" aria-hidden="true"><span class="icon icon-link"></span></a>Configurations</h2> <h3 id="excludes"><a href="#excludes" aria-hidden="true"><span class="icon icon-link"></span></a>Excludes</h3> <h4 id="description"><a href="#description" aria-hidden="true"><span class="icon icon-link"></span></a>Description</h4> <p>by default, all files in your publish directory get deployed. Directories that should not be deployed can be listed as excludes. Vice versa, files created by your application at runtime can also be listed as excluced, preventing them from being deleted. You can define different excludes for the first deployment (<code>bootstrap</code>) and any following deployment (<code>recurring</code>). The folders <code>logs</code>, <code>.deploy-now</code>, <code>.git</code> and <code>.github</code> are marked as excludes by default. </p> <h4 id="how-to-edit"><a href="#how-to-edit" aria-hidden="true"><span class="icon icon-link"></span></a>How to edit</h4> <p>Listing directories relative to the publish directory under <code>excludes:</code> in <code>config.yaml</code>. Changes become active with the next deployment.</p> <h4 id="example"><a href="#example" aria-hidden="true"><span class="icon icon-link"></span></a>Example</h4> <pre class="language-yaml line-numbers"><code class="language-yaml"> <span class="token key atrule">bootstrap</span><span class="token punctuation">:</span> <span class="token comment"># directories that are not copied by the initial deployment</span> <span class="token key atrule">excludes</span><span class="token punctuation">:</span> <span class="token punctuation">-</span> samplefolder <span class="token punctuation">-</span> samplefile.txt <span class="token punctuation">-</span> folder/withfile.txt<span class="line-numbers-rows" aria-hidden="true"><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre> <pre class="language-yaml line-numbers"><code class="language-yaml"> <span class="token key atrule">recurring</span><span class="token punctuation">:</span> <span class="token comment"># directories that are not overwritten or removed by the next deployment</span> <span class="token key atrule">excludes</span><span class="token punctuation">:</span> <span class="token punctuation">-</span> samplefolder <span class="token punctuation">-</span> samplefile.txt <span class="token punctuation">-</span> folder/withfile.txt <span class="token punctuation">-</span> database.sqlite<span class="line-numbers-rows" aria-hidden="true"><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre> <h3 id="remote-commands"><a href="#remote-commands" aria-hidden="true"><span class="icon icon-link"></span></a>Remote commands</h3> <h4 id="description-1"><a href="#description-1" aria-hidden="true"><span class="icon icon-link"></span></a>Description</h4> <p>You can execute commands on your runtime during the deployment process. This could either be done before or after the deployment. You can define different commands for the initial deployment (<code>bootstrap</code>) and any other deployment (<code>recurring</code>).</p> <h4 id="how-to-edit-1"><a href="#how-to-edit-1" aria-hidden="true"><span class="icon icon-link"></span></a>How to edit</h4> <p>List runtime commands under <code>pre-deployment-remote-commands</code>or <code>post-deployment-remote-commands</code>.</p> <h4 id="example-1"><a href="#example-1" aria-hidden="true"><span class="icon icon-link"></span></a>Example</h4> <pre class="language-yaml line-numbers"><code class="language-yaml"> <span class="token comment"># commands that are executed on the runtime before new files are copied</span> <span class="token key atrule">pre-deployment-remote-commands</span><span class="token punctuation">:</span> <span class="token punctuation">-</span> echo "starting maintenance mode" <span class="token comment"># commands that are executed on the runtime after new files are copied</span> <span class="token key atrule">post-deployment-remote-commands</span><span class="token punctuation">:</span> <span class="token punctuation">-</span> echo "clearing caches" <span class="token punctuation">-</span> php8.0<span class="token punctuation">-</span>cli <span class="token punctuation">-</span>r "echo 'do something with php again';" <span class="token punctuation">-</span> echo "leaving maintenance mode" <span class="token punctuation">-</span> echo "back again"<span class="line-numbers-rows" aria-hidden="true"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre> <p>An examplary <code>config.yaml</code> for a Laravel project can be found <a href="https://github.com/ionos-deploy-now/laravel-starter" target="_blank" rel="noopener noreferrer">here</a>, a Symfony example can be found <a href="https://github.com/ionos-deploy-now/symfony-starter" target="_blank" rel="noopener noreferrer">here</a>.</p> <h2 id="need-help"><a href="#need-help" aria-hidden="true"><span class="icon icon-link"></span></a>Need help?</h2> <p>Feel free to reach out to us via <a href="mailto:deploynow-support@ionos.com">deploynow-support@ionos.com</a>.</p> </div><div class="mt-10"><a href="https://github.com/ionos-deploy-now/documentation//edit/main/content/docs/deployment-configuration.md" target="_blank" rel="noopener noreferrer" class="flex items-center opacity-50 hover:opacity-100 hover:no-underline"><span aria-hidden="true" role="img" decorative="" class="material-design-icon pencil-outline-icon"><svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24" class="material-design-icon__svg"><path d="M14.06,9L15,9.94L5.92,19H5V18.08L14.06,9M17.66,3C17.41,3 17.15,3.1 16.96,3.29L15.13,5.12L18.88,8.87L20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18.17,3.09 17.92,3 17.66,3M14.06,6.19L3,17.25V21H6.75L17.81,9.94L14.06,6.19Z"><!----></path></svg></span><span class="ml-1"> Suggest changes to this page </span></a></div><div class="mt-8 pt-8 lg:mt-12 lg:pt-12 border-t border-ui-border"><div class="flex justify-between items-stretch space-x-2"><a href="/docs/github-actions-customization/" class="btn btn-hover"><span aria-hidden="true" role="img" decorative="" class="material-design-icon arrow-left-icon mr-2"><svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24" class="material-design-icon__svg"><path d="M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z"><!----></path></svg></span> Build configuration </a><a href="/docs/runtime-configuration/" class="btn btn-hover"> Runtime configuration <span aria-hidden="true" role="img" decorative="" class="material-design-icon arrow-right-icon ml-2"><svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24" class="material-design-icon__svg"><path d="M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z"><!----></path></svg></span></a></div></div></div></div></div></div></main></div><div class="footer md:grid md:grid-cols-5"><div class="col-start-2 col-span-3 grid grid-cols-1 gap-4 <md:gap-8 md:grid-cols-4 md:gap-16"><div class="space-y-4"><div class="font-bold">Docs</div><a href="/docs/" class="active">Introduction</a><a href="/docs/deploy-static-sites/">Deploy a Static Site</a><a href="/docs/deploy-php-apps/">Deploy a PHP App</a><a href="/docs/github-actions-customization/">Build configuration</a><a href="/docs/deployment-configuration/" aria-current="page" class="active--exact active">Deployment configuration</a><a href="/docs/runtime-configuration/">Runtime configuration</a><a href="/docs/git-integration/">Github Integration</a><a href="/docs/staging-deployments/">Staging Deployments</a><a href="/docs/domain-tls/">Domains & TLS/SSL</a><a href="/docs/framework-samples/">Framework samples</a></div><div class="space-y-4"><div class="font-bold">Customer Shops</div><a href="https://www.ionos.com/hosting/deploy-now?utm_source=deploy-now-docs&utm_medium=footer&utm_campaign=shop-links" rel="noreferrer" target="_blank">United States</a><a href="https://www.ionos.co.uk/hosting/deploy-now?utm_source=deploy-now-docs&utm_medium=footer&utm_campaign=shop-links" rel="noreferrer" target="_blank">United Kingdom</a><a href="https://www.ionos.de/hosting/deploy-now?utm_source=deploy-now-docs&utm_medium=footer&utm_campaign=shop-links" rel="noreferrer" target="_blank">Germany</a><a href="https://www.ionos.ca/hosting/deploy-now?utm_source=deploy-now-docs&utm_medium=footer&utm_campaign=shop-links" rel="noreferrer" target="_blank">Canada</a><a href="https://www.ionos.es/alojamiento/deploy-now?utm_source=deploy-now-docs&utm_medium=footer&utm_campaign=shop-links" rel="noreferrer" target="_blank">Spain</a><a href="https://www.ionos.fr/hebergement/deploy-now?utm_source=deploy-now-docs&utm_medium=footer&utm_campaign=shop-links" rel="noreferrer" target="_blank">France</a><a href="https://www.ionos.it/hosting/deploy-now?utm_source=deploy-now-docs&utm_medium=footer&utm_campaign=shop-links" rel="noreferrer" target="_blank">Italy</a><a href="https://www.ionos.mx/alojamiento/deploy-now?utm_source=deploy-now-docs&utm_medium=footer&utm_campaign=shop-links" rel="noreferrer" target="_blank">Mexico</a></div><div class="space-y-4"><div class="font-bold">Company</div><a href="https://www.ionos.com/about?utm_source=deploy-now-docs&utm_medium=footer&utm_campaign=shop-links" rel="noreferrer" target="_blank"> About IONOS </a><a href="https://www.ionos.com/agency-partner?utm_source=deploy-now-docs&utm_medium=footer&utm_campaign=shop-links" rel="noreferrer" target="_blank"> IONOS Agency Partner Programm </a><a href="https://www.ionos.com/terms-gtc/general-terms-and-conditions/" rel="”noreferrer”" target="_blank"> Terms and Conditions </a><a href="https://www.ionos.de/terms-gtc/terms-privacy" rel="”noreferrer”" target="_blank"> Privacy Policy </a><a href="https://www.ionos.de/impressum" rel="”noreferrer”" target="_blank"> Legal Information </a><div class="font-bold">Assets</div><a href="https://www.ionos.com/hosting/jamstack" rel="noreferrer" target="_blank">What is the Jamstack?</a><a href="/about-us/" target="_blank">About Deploy Now</a><a href="/blog/" target="_blank">Blog</a><a href="/docs/faq/" target="_blank">Frequently Asked Questions</a></div><div class="space-y-4"><a href="https://www.ionos.com/" rel="noreferrer" target="_blank"><img alt="ionos logo" src="https://ce1.uicdn.net/2dd/1690fa2f62f6ed55e11b6c594145c/webapp/vi-logo.svg" width="150"></a><div>© 2024 <span>IONOS SE</span></div><a href="https://www.ionos.com/environment" rel="noreferrer" target="_blank" class="flex items-center space-x-2"><img alt="green energy logo" src="https://ce1.uicdn.net/347/e8f7028afa25836bf517e5414ba5f/frontend-applications-common/vi-green-energy.svg" width="50" class="inline"><span>Environment</span></a></div></div></div></div> <script>window.__INITIAL_STATE__={"data":{"markdownPage":{"id":"363f861fd91140181096a4850ccdb76b","title":"Deployment configuration","description":"How to define file persistency and remote commands in Deploy Now.","path":"\u002Fdocs\u002Fdeployment-configuration\u002F","fileInfo":{"path":"docs\u002Fdeployment-configuration.md"},"editable":true,"timeToRead":2,"content":"\u003Ch1 id=\"deployment-configuration\"\u003E\u003Ca href=\"#deployment-configuration\" aria-hidden=\"true\"\u003E\u003Cspan class=\"icon icon-link\"\u003E\u003C\u002Fspan\u003E\u003C\u002Fa\u003EDeployment configuration\u003C\u002Fh1\u003E\n\u003Cp\u003EWorkflows deploy to IONOS infrastructure after the \u003Ca href=\"\u002Fdocs\u002Fgithub-actions-customization\u002F\"\u003Ebuild\u003C\u002Fa\u003E. Build results can be deployed to one instance or multiple instances with \u003Ca href=\"\u002Fdocs\u002Fmulti-deployments\u002F\"\u003EMulti deployments\u003C\u002Fa\u003E. Additional feature branches can be deployed as \u003Ca href=\"\u002Fdocs\u002Fstaging-deployments\u002F\"\u003EStaging deployments\u003C\u002Fa\u003E. More information about the Deploy Now workflows can be found under \u003Ca href=\"\u002Fdocs\u002Fgit-integration\u002F\"\u003EGitHub integration\u003C\u002Fa\u003E.\u003C\u002Fp\u003E\n\u003Cp\u003EDeploy Now offers configurations for file persistency and automated runtime commands for \u003Ccode\u003EPHP projects\u003C\u002Fcode\u003E. Configurations can be made under \u003Ccode\u003E.deploy-now\u002Fconfig.yaml\u003C\u002Fcode\u003E for \u003Ca href=\"\u002Fdocs\u002Fgit-integration\u002F#workflow-versions\"\u003Eworkflow v1\u003C\u002Fa\u003E and \u003Ccode\u003E.deploy-now\u002F[project-name]\u002Fconfig.yaml\u003C\u002Fcode\u003E for \u003Ca href=\"\u002Fdocs\u002Fgit-integration\u002F#workflow-versions\"\u003Eworkflow v2\u003C\u002Fa\u003E.\u003C\u002Fp\u003E\n\u003Ch2 id=\"configurations\"\u003E\u003Ca href=\"#configurations\" aria-hidden=\"true\"\u003E\u003Cspan class=\"icon icon-link\"\u003E\u003C\u002Fspan\u003E\u003C\u002Fa\u003EConfigurations\u003C\u002Fh2\u003E\n\u003Ch3 id=\"excludes\"\u003E\u003Ca href=\"#excludes\" aria-hidden=\"true\"\u003E\u003Cspan class=\"icon icon-link\"\u003E\u003C\u002Fspan\u003E\u003C\u002Fa\u003EExcludes\u003C\u002Fh3\u003E\n\u003Ch4 id=\"description\"\u003E\u003Ca href=\"#description\" aria-hidden=\"true\"\u003E\u003Cspan class=\"icon icon-link\"\u003E\u003C\u002Fspan\u003E\u003C\u002Fa\u003EDescription\u003C\u002Fh4\u003E\n\u003Cp\u003Eby default, all files in your publish directory get deployed. Directories that should not be deployed can be listed as excludes. Vice versa, files created by your application at runtime can also be listed as excluced, preventing them from being deleted. You can define different excludes for the first deployment (\u003Ccode\u003Ebootstrap\u003C\u002Fcode\u003E) and any following deployment (\u003Ccode\u003Erecurring\u003C\u002Fcode\u003E). The folders \u003Ccode\u003Elogs\u003C\u002Fcode\u003E, \u003Ccode\u003E.deploy-now\u003C\u002Fcode\u003E, \u003Ccode\u003E.git\u003C\u002Fcode\u003E and \u003Ccode\u003E.github\u003C\u002Fcode\u003E are marked as excludes by default. \u003C\u002Fp\u003E\n\u003Ch4 id=\"how-to-edit\"\u003E\u003Ca href=\"#how-to-edit\" aria-hidden=\"true\"\u003E\u003Cspan class=\"icon icon-link\"\u003E\u003C\u002Fspan\u003E\u003C\u002Fa\u003EHow to edit\u003C\u002Fh4\u003E\n\u003Cp\u003EListing directories relative to the publish directory under \u003Ccode\u003Eexcludes:\u003C\u002Fcode\u003E in \u003Ccode\u003Econfig.yaml\u003C\u002Fcode\u003E. Changes become active with the next deployment.\u003C\u002Fp\u003E\n\u003Ch4 id=\"example\"\u003E\u003Ca href=\"#example\" aria-hidden=\"true\"\u003E\u003Cspan class=\"icon icon-link\"\u003E\u003C\u002Fspan\u003E\u003C\u002Fa\u003EExample\u003C\u002Fh4\u003E\n\u003Cpre class=\"language-yaml line-numbers\"\u003E\u003Ccode class=\"language-yaml\"\u003E \u003Cspan class=\"token key atrule\"\u003Ebootstrap\u003C\u002Fspan\u003E\u003Cspan class=\"token punctuation\"\u003E:\u003C\u002Fspan\u003E\n \u003Cspan class=\"token comment\"\u003E# directories that are not copied by the initial deployment\u003C\u002Fspan\u003E\n \u003Cspan class=\"token key atrule\"\u003Eexcludes\u003C\u002Fspan\u003E\u003Cspan class=\"token punctuation\"\u003E:\u003C\u002Fspan\u003E\n \u003Cspan class=\"token punctuation\"\u003E-\u003C\u002Fspan\u003E samplefolder\n \u003Cspan class=\"token punctuation\"\u003E-\u003C\u002Fspan\u003E samplefile.txt\n \u003Cspan class=\"token punctuation\"\u003E-\u003C\u002Fspan\u003E folder\u002Fwithfile.txt\u003Cspan class=\"line-numbers-rows\" aria-hidden=\"true\"\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003C\u002Fspan\u003E\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\n\u003Cpre class=\"language-yaml line-numbers\"\u003E\u003Ccode class=\"language-yaml\"\u003E \u003Cspan class=\"token key atrule\"\u003Erecurring\u003C\u002Fspan\u003E\u003Cspan class=\"token punctuation\"\u003E:\u003C\u002Fspan\u003E\n \u003Cspan class=\"token comment\"\u003E# directories that are not overwritten or removed by the next deployment\u003C\u002Fspan\u003E\n \u003Cspan class=\"token key atrule\"\u003Eexcludes\u003C\u002Fspan\u003E\u003Cspan class=\"token punctuation\"\u003E:\u003C\u002Fspan\u003E\n \u003Cspan class=\"token punctuation\"\u003E-\u003C\u002Fspan\u003E samplefolder\n \u003Cspan class=\"token punctuation\"\u003E-\u003C\u002Fspan\u003E samplefile.txt\n \u003Cspan class=\"token punctuation\"\u003E-\u003C\u002Fspan\u003E folder\u002Fwithfile.txt\n \u003Cspan class=\"token punctuation\"\u003E-\u003C\u002Fspan\u003E database.sqlite\u003Cspan class=\"line-numbers-rows\" aria-hidden=\"true\"\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003C\u002Fspan\u003E\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\n\u003Ch3 id=\"remote-commands\"\u003E\u003Ca href=\"#remote-commands\" aria-hidden=\"true\"\u003E\u003Cspan class=\"icon icon-link\"\u003E\u003C\u002Fspan\u003E\u003C\u002Fa\u003ERemote commands\u003C\u002Fh3\u003E\n\u003Ch4 id=\"description-1\"\u003E\u003Ca href=\"#description-1\" aria-hidden=\"true\"\u003E\u003Cspan class=\"icon icon-link\"\u003E\u003C\u002Fspan\u003E\u003C\u002Fa\u003EDescription\u003C\u002Fh4\u003E\n\u003Cp\u003EYou can execute commands on your runtime during the deployment process. This could either be done before or after the deployment. You can define different commands for the initial deployment (\u003Ccode\u003Ebootstrap\u003C\u002Fcode\u003E) and any other deployment (\u003Ccode\u003Erecurring\u003C\u002Fcode\u003E).\u003C\u002Fp\u003E\n\u003Ch4 id=\"how-to-edit-1\"\u003E\u003Ca href=\"#how-to-edit-1\" aria-hidden=\"true\"\u003E\u003Cspan class=\"icon icon-link\"\u003E\u003C\u002Fspan\u003E\u003C\u002Fa\u003EHow to edit\u003C\u002Fh4\u003E\n\u003Cp\u003EList runtime commands under \u003Ccode\u003Epre-deployment-remote-commands\u003C\u002Fcode\u003Eor \u003Ccode\u003Epost-deployment-remote-commands\u003C\u002Fcode\u003E.\u003C\u002Fp\u003E\n\u003Ch4 id=\"example-1\"\u003E\u003Ca href=\"#example-1\" aria-hidden=\"true\"\u003E\u003Cspan class=\"icon icon-link\"\u003E\u003C\u002Fspan\u003E\u003C\u002Fa\u003EExample\u003C\u002Fh4\u003E\n\u003Cpre class=\"language-yaml line-numbers\"\u003E\u003Ccode class=\"language-yaml\"\u003E \u003Cspan class=\"token comment\"\u003E# commands that are executed on the runtime before new files are copied\u003C\u002Fspan\u003E\n \u003Cspan class=\"token key atrule\"\u003Epre-deployment-remote-commands\u003C\u002Fspan\u003E\u003Cspan class=\"token punctuation\"\u003E:\u003C\u002Fspan\u003E\n \u003Cspan class=\"token punctuation\"\u003E-\u003C\u002Fspan\u003E echo \"starting maintenance mode\"\n \n \u003Cspan class=\"token comment\"\u003E# commands that are executed on the runtime after new files are copied\u003C\u002Fspan\u003E\n \u003Cspan class=\"token key atrule\"\u003Epost-deployment-remote-commands\u003C\u002Fspan\u003E\u003Cspan class=\"token punctuation\"\u003E:\u003C\u002Fspan\u003E\n \u003Cspan class=\"token punctuation\"\u003E-\u003C\u002Fspan\u003E echo \"clearing caches\"\n \u003Cspan class=\"token punctuation\"\u003E-\u003C\u002Fspan\u003E php8.0\u003Cspan class=\"token punctuation\"\u003E-\u003C\u002Fspan\u003Ecli \u003Cspan class=\"token punctuation\"\u003E-\u003C\u002Fspan\u003Er \"echo 'do something with php again';\"\n \u003Cspan class=\"token punctuation\"\u003E-\u003C\u002Fspan\u003E echo \"leaving maintenance mode\"\n \u003Cspan class=\"token punctuation\"\u003E-\u003C\u002Fspan\u003E echo \"back again\"\u003Cspan class=\"line-numbers-rows\" aria-hidden=\"true\"\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003C\u002Fspan\u003E\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\n\u003Cp\u003EAn examplary \u003Ccode\u003Econfig.yaml\u003C\u002Fcode\u003E for a Laravel project can be found \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fionos-deploy-now\u002Flaravel-starter\" target=\"_blank\" rel=\"noopener noreferrer\"\u003Ehere\u003C\u002Fa\u003E, a Symfony example can be found \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fionos-deploy-now\u002Fsymfony-starter\" target=\"_blank\" rel=\"noopener noreferrer\"\u003Ehere\u003C\u002Fa\u003E.\u003C\u002Fp\u003E\n\u003Ch2 id=\"need-help\"\u003E\u003Ca href=\"#need-help\" aria-hidden=\"true\"\u003E\u003Cspan class=\"icon icon-link\"\u003E\u003C\u002Fspan\u003E\u003C\u002Fa\u003ENeed help?\u003C\u002Fh2\u003E\n\u003Cp\u003EFeel free to reach out to us via \u003Ca href=\"mailto:deploynow-support@ionos.com\"\u003Edeploynow-support@ionos.com\u003C\u002Fa\u003E.\u003C\u002Fp\u003E\n","contentType":"docs","header":null,"sidebar":"docs","next":"\u002Fdocs\u002Fruntime-configuration\u002F","prev":"\u002Fdocs\u002Fgithub-actions-customization\u002F","headings":[{"depth":1,"value":"Deployment configuration","anchor":"#deployment-configuration"},{"depth":2,"value":"Configurations","anchor":"#configurations"},{"depth":3,"value":"Excludes","anchor":"#excludes"},{"depth":4,"value":"Description","anchor":"#description"},{"depth":4,"value":"How to edit","anchor":"#how-to-edit"},{"depth":4,"value":"Example","anchor":"#example"},{"depth":3,"value":"Remote commands","anchor":"#remote-commands"},{"depth":4,"value":"Description","anchor":"#description-1"},{"depth":4,"value":"How to edit","anchor":"#how-to-edit-1"},{"depth":4,"value":"Example","anchor":"#example-1"},{"depth":2,"value":"Need help?","anchor":"#need-help"}]},"allMarkdownPage":{"edges":[{"node":{"path":"\u002Fblog\u002Fdeploy-laravel-via-github\u002F","title":"Fastest ever Laravel deployments via GitHub? You decide."}},{"node":{"path":"\u002Fteam\u002Froman-okon\u002F","title":""}},{"node":{"path":"\u002Fteam\u002Frobin-mueller\u002F","title":""}},{"node":{"path":"\u002Fteam\u002Fmarkus-hunsalz\u002F","title":""}},{"node":{"path":"\u002Fteam\u002Fmarcel-solle\u002F","title":""}},{"node":{"path":"\u002Fteam\u002Falexander-gaengel\u002F","title":""}},{"node":{"path":"\u002Fteam\u002Ffatih-ok\u002F","title":""}},{"node":{"path":"\u002Fteam\u002Fjosua-meier\u002F","title":""}},{"node":{"path":"\u002Fdocs\u002Fvisitor-statistics\u002F","title":"Visitor statistics"}},{"node":{"path":"\u002Fdocs\u002Fuse-cases\u002F","title":"Project type use cases"}},{"node":{"path":"\u002Fdocs\u002Fruntime-configuration\u002F","title":"Runtime configuration"}},{"node":{"path":"\u002Fdocs\u002Fstaging-deployments\u002F","title":"Staging deployments"}},{"node":{"path":"\u002Fdocs\u002Fphp-alpha\u002F","title":"PHP Alpha: Deploy Laravel or Symfony with Deploy Now"}},{"node":{"path":"\u002Fdocs\u002F","title":"Introduction"}},{"node":{"path":"\u002Fdocs\u002Ffrom-cmd-line\u002F","title":"From Command Line"}},{"node":{"path":"\u002Fdocs\u002Fgithub-actions-customization\u002F","title":"Build configuration"}},{"node":{"path":"\u002Fdocs\u002Fmulti-deployments\u002F","title":"Multi deployments"}},{"node":{"path":"\u002Fdocs\u002Ffrom-repo\u002F","title":"From Repository"}},{"node":{"path":"\u002Fdocs\u002Fgit-integration\u002F","title":"GitHub integration"}},{"node":{"path":"\u002Fdocs\u002Ffaq\u002F","title":"Frequently Asked Questions"}},{"node":{"path":"\u002Fdocs\u002Fframework-samples\u002F","title":"From Sample"}},{"node":{"path":"\u002Fdocs\u002Fdomain-tls\u002F","title":"Domains and TLS"}},{"node":{"path":"\u002Fdocs\u002Fdeployment-viewer\u002F","title":"View files and logs"}},{"node":{"path":"\u002Fdocs\u002Fdeployment-configuration\u002F","title":"Deployment configuration"}},{"node":{"path":"\u002Fdocs\u002Fdeploy-static-sites\u002F","title":"Deploy Static Sites via GitHub"}},{"node":{"path":"\u002Fdocs\u002Fdeploy-php-apps\u002F","title":"Deploy PHP Apps via GitHub"}},{"node":{"path":"\u002Fdocs\u002Fdatabase\u002F","title":"Database"}},{"node":{"path":"\u002Fdocs\u002Fcronjobs\u002F","title":"Cron jobs"}},{"node":{"path":"\u002Fdocs\u002Fcreate-sample\u002F","title":"Create a sample"}},{"node":{"path":"\u002Fdocs\u002Fconfiguration-overview\u002F","title":"Overview"}},{"node":{"path":"\u002Fdocs\u002Fapache-configuration-htaccess\u002F","title":"Apache configuration: .htaccess"}},{"node":{"path":"\u002Fblog\u002Fwebinar-de\u002F","title":"Webinar: Das Comeback des statischen Webs"}},{"node":{"path":"\u002Fblog\u002Fworkflow-dispatch\u002F","title":"Update: Deploy Now triggers new builds without empty commits"}},{"node":{"path":"\u002Fblog\u002Fshop-experience-with-vue\u002F","title":"Building API-first eCommerce dashboards with Vue.js and Deploy Now"}},{"node":{"path":"\u002Fblog\u002Fstaging-explained\u002F","title":"Build and stage a Gatsby site with Deploy Now"}},{"node":{"path":"\u002Fblog\u002Freasons-for-staging\u002F","title":"5 reasons to start staging your code right now "}},{"node":{"path":"\u002Fblog\u002Freact-blog\u002F","title":"How to deploy a Blog with React and Deploy Now"}},{"node":{"path":"\u002Fblog\u002Fpull-request-permissions\u002F","title":"Update: Deploy Now GitHub App requires permissions to manage pull requests"}},{"node":{"path":"\u002Fblog\u002Fportfolio-sites-de\u002F","title":"Hosten Sie Ihre eigene Portfolio-Website mit Deploy Now"}},{"node":{"path":"\u002Fblog\u002Fproduct-hunt\u002F","title":"Deploy Now on Product Hunt"}},{"node":{"path":"\u002Fblog\u002Fpodcast-de\u002F","title":"Podcast: Die Geschichte hinter Deploy Now"}},{"node":{"path":"\u002Fblog\u002Fphp-release\u002F","title":"Deploy Now feature realease: LAMP stack support for dynamic websites now available "}},{"node":{"path":"\u002Fblog\u002Fmulti-deployments\u002F","title":"Effortless Deployments: Linking one Repo to Multiple Runtimes"}},{"node":{"path":"\u002Fblog\u002Flaravel-vs-symfony\u002F","title":"Laravel vs. Symfony: Which Framework is right for your project?"}},{"node":{"path":"\u002Fblog\u002Fjamstack-for-agencies-whitepaper-uk-us\u002F","title":"Whitepaper: Build client websites with Jamstack"}},{"node":{"path":"\u002Fblog\u002Fjamstack-for-agencies-whitepaper-de\u002F","title":"Whitepaper: Erstellen Sie Kundenwebsites mit Jamstack"}},{"node":{"path":"\u002Fblog\u002Fgithub-for-agencies\u002F","title":"How to Incorporate GitHub and CI\u002FCD Deployments into Your Web Agency's Workflow "}},{"node":{"path":"\u002Fblog\u002Fhost-github-blog\u002F","title":"How to Choose the Best Host for Your GitHub Blog"}},{"node":{"path":"\u002Fblog\u002Fgithub-actions-lighthouse\u002F","title":"Tutorial: Automated Lighthouse tests with GitHub Actions"}},{"node":{"path":"\u002Fblog\u002Fgit-intro\u002F","title":"An Introduction to Git: The Basics Every Beginning Developer Should Know"}},{"node":{"path":"\u002Fblog\u002Fgithub-actions\u002F","title":"GitHub Actions: An Introduction"}},{"node":{"path":"\u002Fblog\u002Fgithub-actions-version-update\u002F","title":"Upgrade your GitHub actions"}},{"node":{"path":"\u002Fblog\u002Fdarkmode\u002F","title":"Feature Release: Dark Mode"}},{"node":{"path":"\u002Fblog\u002Fdeploy-now-and-github-actions\u002F","title":"How to make Git deployments with IONOS quick and easy"}},{"node":{"path":"\u002Fblog\u002Fdeploy-jekyll-via-github\u002F","title":"Tutorial: Fastest ever Jekyll deployments via GitHub"}},{"node":{"path":"\u002Fblog\u002Fbest-react-ssg\u002F","title":"Gatsby vs. React Static vs. Next.js: What's the best React-based static site generator?"}},{"node":{"path":"\u002Fblog\u002Fapi-guide\u002F","title":"A Beginner Developer's Guide to APIs (with Example Project)"}}]}},"context":{"locale":"en"}};(function(){var s;(s=document.currentScript||document.scripts[document.scripts.length-1]).parentNode.removeChild(s);}());</script><script src="/assets/js/app.1420e6f5.js" defer></script><script src="/assets/js/page--src--templates--markdown-page-vue.f5d097cb.js" defer></script> </body> </html>