PageSourceSearch

https://deployer.org/assets/js/2aa4dba1.862bfea9.js

js deployer.org collected 2026-10-03 19:27:01 UTC 8,118 bytes, 1 lines download raw bytes

1"use strict";(globalThis.webpackChunkdeployer_docs=globalThis.webpackChunkdeployer_docs||[]).push([[5491],{266(e,s,r){r.r(s),r.d(s,{assets:()=>d,contentTitle:()=>c,default:()=>a,frontMatter:()=>i,metadata:()=>l,toc:()=>p});const l=JSON.parse('{"id":"recipe/sulu","title":"How to Deploy a Sulu Project","description":"Source","source":"@site/docs/recipe/sulu.md","sourceDirName":"recipe","slug":"/recipe/sulu","permalink":"/docs/8.x/recipe/sulu","draft":false,"unlisted":false,"editUrl":"https://github.com/deployphp/deployer/edit/master/docs/recipe/sulu.md","tags":[],"version":"current","frontMatter":{}}');var o=r(4848),n=r(8453);const i={},c="How to Deploy a Sulu Project",d={},p=[{value:"Configuration",id:"configuration",level:2},{value:"bin/websiteconsole",id:"binwebsiteconsole",level:3},{value:"Tasks",id:"tasks",level:2},{value:"phpcr:migrate",id:"phpcr-migrate",level:3},{value:"deploy:website:cache:clear",id:"deploy-website-cache-clear",level:3},{value:"deploy:website:cache:warmup",id:"deploy-website-cache-warmup",level:3}];function t(e){const s={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,n.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(s.header,{children:(0,o.jsx)(s.h1,{id:"how-to-deploy-a-sulu-project",children:"How to Deploy a Sulu Project"})}),"\n",(0,o.jsx)(s.pre,{children:(0,o.jsx)(s.code,{className:"language-php",children:"require 'recipe/sulu.php';\n"})}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.a,{href:"https://github.com/deployphp/deployer/tree/master/recipe/sulu.php",children:"Source"})}),"\n",(0,o.jsx)(s.p,{children:"Deployer is a free and open source deployment tool written in PHP.\nIt helps you to deploy your Sulu application to a server.\nIt is very easy to use and has a lot of features."}),"\n",(0,o.jsx)(s.p,{children:"Three main features of Deployer are:"}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"Provisioning"})," - provision your server for you."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"Zero downtime deployment"})," - deploy your application without a downtime."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"Rollbacks"})," - rollback your application to a previous version, if something goes wrong."]}),"\n"]}),"\n",(0,o.jsx)(s.p,{children:"Additionally, Deployer has a lot of other features, like:"}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"Easy to use"})," - Deployer is very easy to use. It has a simple and intuitive syntax."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"Fast"})," - Deployer is very fast. It uses parallel connections to deploy your application."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"Secure"})," - Deployer uses SSH to connect to your server."]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.strong,{children:"Supports all major PHP frameworks"})," - Deployer supports all major PHP frameworks."]}),"\n"]}),"\n",(0,o.jsxs)(s.p,{children:["You can read more about Deployer in ",(0,o.jsx)(s.a,{href:"/docs/8.x/getting-started",children:"Getting Started"}),"."]}),"\n",(0,o.jsxs)(s.p,{children:["The ",(0,o.jsx)(s.a,{href:"#deploy",children:"deploy"})," task of ",(0,o.jsx)(s.strong,{children:"Sulu"})," consists of:"]}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.a,{href:"/docs/8.x/recipe/common#deploy-prepare",children:"deploy:prepare"})," \u2013 Prepares a new release\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.a,{href:"/docs/8.x/recipe/deploy/info#deploy-info",children:"deploy:info"})," \u2013 Displays info about deployment"]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.a,{href:"/docs/8.x/recipe/deploy/setup#deploy-setup",children:"deploy:setup"})," \u2013 Prepares host for deploy"]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.a,{href:"/docs/8.x/recipe/deploy/lock#deploy-lock",children:"deploy:lock"})," \u2013 Locks deploy"]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.a,{href:"/docs/8.x/recipe/deploy/release#deploy-release",children:"deploy:release"})," \u2013 Prepares release"]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.a,{href:"/docs/8.x/recipe/deploy/update_code#deploy-update_code",children:"deploy:update_code"})," \u2013 Updates code"]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.a,{href:"/docs/8.x/recipe/deploy/env#deploy-env",children:"deploy:env"})," \u2013 Configure .env file"]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.a,{href:"/docs/8.x/recipe/deploy/shared#deploy-shared",children:"deploy:shared"})," \u2013 Creates symlinks for shared files and dirs"]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.a,{href:"/docs/8.x/recipe/deploy/writable#deploy-writable",children:"deploy:writable"})," \u2013 Makes writable dirs"]}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.a,{href:"/docs/8.x/recipe/deploy/vendors#deploy-vendors",children:"deploy:vendors"})," \u2013 Installs vendors"]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.a,{href:"/docs/8.x/recipe/symfony#deploy-cache-clear",children:"deploy:cache:clear"})," \u2013 Clears cache"]}
1),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.a,{href:"/docs/8.x/recipe/common#deploy-publish",children:"deploy:publish"})," \u2013 Publishes the release\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.a,{href:"/docs/8.x/recipe/deploy/symlink#deploy-symlink",children:"deploy:symlink"})," \u2013 Creates symlink to release"]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.a,{href:"/docs/8.x/recipe/deploy/lock#deploy-unlock",children:"deploy:unlock"})," \u2013 Unlocks deploy"]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.a,{href:"/docs/8.x/recipe/deploy/cleanup#deploy-cleanup",children:"deploy:cleanup"})," \u2013 Cleanup old releases"]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.a,{href:"/docs/8.x/recipe/common#deploy-success",children:"deploy:success"})," \u2013 Deploys your project"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(s.p,{children:["The sulu recipe is based on the ",(0,o.jsx)(s.a,{href:"/docs/8.x/recipe/symfony",children:"symfony"})," recipe."]}),"\n",(0,o.jsx)(s.h2,{id:"configuration",children:"Configuration"}),"\n",(0,o.jsx)(s.h3,{id:"binwebsiteconsole",children:"bin/websiteconsole"}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.a,{href:"https://github.com/deployphp/deployer/blob/master/recipe/sulu.php#L13",children:"Source"})}),"\n",(0,o.jsx)(s.pre,{children:(0,o.jsx)(s.code,{className:"language-php",metastring:'title="Default value"',children:"return parse('{{bin/php}} {{release_or_current_path}}/bin/websiteconsole --no-interaction');\n"})}),"\n",(0,o.jsx)(s.h2,{id:"tasks",children:"Tasks"}),"\n",(0,o.jsx)(s.h3,{id:"phpcr-migrate",children:"phpcr:migrate"}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.a,{href:"https://github.com/deployphp/deployer/blob/master/recipe/sulu.php#L18",children:"Source"})}),"\n",(0,o.jsx)(s.p,{children:"Migrates PHPCR."}),"\n",(0,o.jsx)(s.h3,{id:"deploy-website-cache-clear",children:"deploy:website:cache:clear"}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.a,{href:"https://github.com/deployphp/deployer/blob/master/recipe/sulu.php#L23",children:"Source"})}),"\n",(0,o.jsx)(s.p,{children:"Clears cache."}),"\n",(0,o.jsx)(s.h3,{id:"deploy-website-cache-warmup",children:"deploy:website:cache:warmup"}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.a,{href:"https://github.com/deployphp/deployer/blob/master/recipe/sulu.php#L28",children:"Source"})}),"\n",(0,o.jsx)(s.p,{children:"Warmups cache."})]})}function a(e={}){const{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(t,{...e})}):t(e)}},8453(e,s,r){r.d(s,{R:()=>i,x:()=>c});var l=r(6540);const o={},n=l.createContext(o);function i(e){const s=l.useContext(n);return l.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),l.createElement(n.Provider,{value:s},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.