CINXE.COM
Wagtail CMS | Virtuozzo
<!DOCTYPE html><html lang="en-US"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Wagtail CMS | Virtuozzo</title><meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> <script src="https://cookie-cdn.cookiepro.com/consent/d6997970-8f28-46d2-9fe5-77c66428e76c/otSDKStub.js" type="text/javascript" charset="UTF-8" data-domain-script="d6997970-8f28-46d2-9fe5-77c66428e76c" defer data-deferred="1"></script> <script type="text/javascript" src="data:text/javascript;base64,ZnVuY3Rpb24gT3B0YW5vbldyYXBwZXIoKXt9" defer></script> <meta name="description" content="Learn how to get the Wagtail Django-powered CMS up and running in your Jelastic PaaS account. Deploy the Python-based Wagtail CMS application either manually or automatically with a pre-packaged archive." /><link rel="canonical" href="https://www.virtuozzo.com/company/blog/deploy-wagtail-python-cms/" /><meta property="og:locale" content="en_US" /><meta property="og:type" content="article" /><meta property="og:title" content="Deploy Wagtail Python-Based CMS into Jelastic PaaS" /><meta property="og:description" content="Learn how to get the Wagtail Django-powered CMS up and running in your Jelastic PaaS account. Deploy the Python-based Wagtail CMS application either manually or automatically with a pre-packaged archive." /><meta property="og:url" content="https://www.virtuozzo.com/company/blog/deploy-wagtail-python-cms/" /><meta property="og:site_name" content="Virtuozzo Blog | News & insights for cloud service providers" /><meta property="article:publisher" content="https://www.facebook.com/VirtuozzoInc/" /><meta property="article:published_time" content="2018-10-11T08:18:38+00:00" /><meta property="article:modified_time" content="2021-05-20T14:59:01+00:00" /><meta property="og:image" content="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wagtail-cms.png" /><meta property="og:image:width" content="1200" /><meta property="og:image:height" content="628" /><meta property="og:image:type" content="image/png" /><meta name="author" content="Gleb Antonov" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:creator" content="@VirtuozzoInc" /><meta name="twitter:site" content="@VirtuozzoInc" /><meta name="twitter:label1" content="Written by" /><meta name="twitter:data1" content="Gleb Antonov" /><meta name="twitter:label2" content="Est. reading time" /><meta name="twitter:data2" content="7 minutes" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"Article","@id":"https://www.virtuozzo.com/company/blog/deploy-wagtail-python-cms/#article","isPartOf":{"@id":"https://www.virtuozzo.com/company/blog/deploy-wagtail-python-cms/"},"author":{"name":"Gleb Antonov","@id":"https://www.virtuozzo.com/company/blog/#/schema/person/929f1751ac38979d6bde653276d56f93"},"headline":"Deploy Wagtail Python-Based CMS into Jelastic PaaS","datePublished":"2018-10-11T08:18:38+00:00","dateModified":"2021-05-20T14:59:01+00:00","mainEntityOfPage":{"@id":"https://www.virtuozzo.com/company/blog/deploy-wagtail-python-cms/"},"wordCount":1388,"commentCount":0,"publisher":{"@id":"https://www.virtuozzo.com/company/blog/#organization"},"image":{"@id":"https://www.virtuozzo.com/company/blog/deploy-wagtail-python-cms/#primaryimage"},"thumbnailUrl":"https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wagtail-cms.png","keywords":["CMS","Content Management","Content management system","Django","Python","wagtail"],"articleSection":["DevOps PaaS","Installer"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https://www.virtuozzo.com/company/blog/deploy-wagtail-python-cms/#respond"]}]},{"@type":"WebPage","@id":"https://www.virtuozzo.com/company/blog/deploy-wagtail-python-cms/","url":"https://www.virtuozzo.com/company/blog/deploy-wagtail-python-cms/","name":"Wagtail CMS","isPartOf":{"@id":"https://www.virtuozzo.com/company/blog/#website"},"primaryImageOfPage":{"@id":"https://www.virtuozzo.com/company/blog/deploy-wagtail-python-cms/#primaryimage"},"image":{"@id":"https://www.virtuozzo.com/company/blog/deploy-wagtail-python-cms/#primaryimage"},"thumbnailUrl":"https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wagtail-cms.png","datePublished":"2018-10-11T08:18:38+00:00","dateModified":"2021-05-20T14:59:01+00:00","description":"Learn how to get the Wagtail Django-powered CMS up and running in your Jelastic PaaS account. Deploy the Python-based Wagtail CMS application either manually or automatically with a pre-packaged archive.","breadcrumb":{"@id":"https://www.virtuozzo.com/company/blog/deploy-wagtail-python-cms/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://www.virtuozzo.com/company/blog/deploy-wagtail-python-cms/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https://www.virtuozzo.com/company/blog/deploy-wagtail-python-cms/#primaryimage","url":"https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wagtail-cms.png","contentUrl":"https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wagtail-cms.png","width":1200,"height":628,"caption":"wagtail"},{"@type":"BreadcrumbList","@id":"https://www.virtuozzo.com/company/blog/deploy-wagtail-python-cms/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.virtuozzo.com/company/blog/"},{"@type":"ListItem","position":2,"name":"Deploy Wagtail Python-Based CMS into Jelastic PaaS"}]},{"@type":"WebSite","@id":"https://www.virtuozzo.com/company/blog/#website","url":"https://www.virtuozzo.com/company/blog/","name":"Virtuozzo Blog | News & insights for cloud service providers","description":"","publisher":{"@id":"https://www.virtuozzo.com/company/blog/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://www.virtuozzo.com/company/blog/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https://www.virtuozzo.com/company/blog/#organization","name":"Virtuozzo Blog","url":"https://www.virtuozzo.com/company/blog/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://www.virtuozzo.com/company/blog/#/schema/logo/image/","url":"https://www.virtuozzo.com/company/blog/wp-content/uploads/2023/04/vz-logo.svg","contentUrl":"https://www.virtuozzo.com/company/blog/wp-content/uploads/2023/04/vz-logo.svg","width":61,"height":12,"caption":"Virtuozzo Blog"},"image":{"@id":"https://www.virtuozzo.com/company/blog/#/schema/logo/image/"},"sameAs":["https://www.facebook.com/VirtuozzoInc/","https://x.com/VirtuozzoInc"]},{"@type":"Person","@id":"https://www.virtuozzo.com/company/blog/#/schema/person/929f1751ac38979d6bde653276d56f93","name":"Gleb Antonov","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://www.virtuozzo.com/company/blog/#/schema/person/image/","url":"https://secure.gravatar.com/avatar/af18263eba0e8ff46c714adaa356baee?s=96&d=mm&r=g","contentUrl":"https://secure.gravatar.com/avatar/af18263eba0e8ff46c714adaa356baee?s=96&d=mm&r=g","caption":"Gleb Antonov"},"url":"https://www.virtuozzo.com/company/blog/author/gleb-antonov/"}]}</script> <link rel='stylesheet' id='wp-block-library-css' href='https://www.virtuozzo.com/company/blog/wp-includes/css/dist/block-library/style.min.css?ver=234b0ae5829e1731154f1aef449b958f' type='text/css' media='all' /><style id='wp-block-library-theme-inline-css' type='text/css'>.wp-block-audio :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-audio :where(figcaption){color:#ffffffa6}.wp-block-audio{margin:0 0 1em}.wp-block-code{border:1px solid #ccc;border-radius:4px;font-family:Menlo,Consolas,monaco,monospace;padding:.8em 1em}.wp-block-embed :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-embed :where(figcaption){color:#ffffffa6}.wp-block-embed{margin:0 0 1em}.blocks-gallery-caption{color:#555;font-size:13px;text-align:center}.is-dark-theme .blocks-gallery-caption{color:#ffffffa6}:root :where(.wp-block-image figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme :root :where(.wp-block-image figcaption){color:#ffffffa6}.wp-block-image{margin:0 0 1em}.wp-block-pullquote{border-bottom:4px solid;border-top:4px solid;color:currentColor;margin-bottom:1.75em}.wp-block-pullquote cite,.wp-block-pullquote footer,.wp-block-pullquote__citation{color:currentColor;font-size:.8125em;font-style:normal;text-transform:uppercase}.wp-block-quote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote.has-text-align-right{border-left:none;border-right:.25em solid;padding-left:0;padding-right:1em}.wp-block-quote.has-text-align-center{border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote.is-style-plain{border:none}.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em}:where(.wp-block-group.has-background){padding:1.25em 2.375em}.wp-block-separator.has-css-opacity{opacity:.4}.wp-block-separator{border:none;border-bottom:2px solid;margin-left:auto;margin-right:auto}.wp-block-separator.has-alpha-channel-opacity{opacity:1}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px}.wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table :where(figcaption){color:#ffffffa6}.wp-block-video :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-video :where(figcaption){color:#ffffffa6}.wp-block-video{margin:0 0 1em}:root :where(.wp-block-template-part.has-background){margin-bottom:0;margin-top:0;padding:1.25em 2.375em}</style><style id='safe-svg-svg-icon-style-inline-css' type='text/css'>.safe-svg-cover{text-align:center}.safe-svg-cover .safe-svg-inside{display:inline-block;max-width:100%}.safe-svg-cover svg{height:100%;max-height:100%;max-width:100%;width:100%}</style><style id='classic-theme-styles-inline-css' type='text/css'>/*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}</style><style id='global-styles-inline-css' type='text/css'>:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--jelastic-link: #CB333B;--wp--preset--color--jelastic-green: #37be9b;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;}</style><link rel='stylesheet' id='dashicons-css' href='https://www.virtuozzo.com/company/blog/wp-includes/css/dashicons.min.css?ver=234b0ae5829e1731154f1aef449b958f' type='text/css' media='all' /><link rel='stylesheet' id='post-views-counter-frontend-css' href='https://www.virtuozzo.com/company/blog/wp-content/plugins/post-views-counter/css/frontend.min.css?ver=1.4.7' type='text/css' media='all' /><link rel='stylesheet' id='style-css' href='https://www.virtuozzo.com/company/blog/wp-content/themes/salient/css/template-front-page.css?ver=08112024' type='text/css' media='all' /><link rel='stylesheet' id='tablepress-default-css' href='https://www.virtuozzo.com/company/blog/wp-content/plugins/tablepress/css/build/default.css?ver=2.4.4' type='text/css' media='all' /> <script type="text/javascript" id="post-views-counter-frontend-js-before" src="data:text/javascript;base64,dmFyIHB2Y0FyZ3NGcm9udGVuZD17Im1vZGUiOiJqcyIsInBvc3RJRCI6MzA2MTMsInJlcXVlc3RVUkwiOiJodHRwczpcL1wvd3d3LnZpcnR1b3p6by5jb21cL2NvbXBhbnlcL2Jsb2dcL3dwLWFkbWluXC9hZG1pbi1hamF4LnBocCIsIm5vbmNlIjoiYWI5OTIwM2E4NSIsImRhdGFTdG9yYWdlIjoiY29va2llcyIsIm11bHRpc2l0ZSI6ITEsInBhdGgiOiJcL2NvbXBhbnlcL2Jsb2dcLyIsImRvbWFpbiI6IiJ9" defer></script> <script type="text/javascript" src="https://www.virtuozzo.com/company/blog/wp-content/plugins/post-views-counter/js/frontend.min.js?ver=1.4.7" id="post-views-counter-frontend-js" defer data-deferred="1"></script> <script type="text/javascript" src="https://www.virtuozzo.com/company/blog/assets/js/plugins/jquery.min.js" id="jquery-js"></script> <link rel="icon" href="https://www.virtuozzo.com/company/blog/wp-content/uploads/2022/05/cropped-android-chrome-512x512-1-32x32.png" sizes="32x32" /><link rel="icon" href="https://www.virtuozzo.com/company/blog/wp-content/uploads/2022/05/cropped-android-chrome-512x512-1-192x192.png" sizes="192x192" /><link rel="apple-touch-icon" href="https://www.virtuozzo.com/company/blog/wp-content/uploads/2022/05/cropped-android-chrome-512x512-1-180x180.png" /><meta name="msapplication-TileImage" content="https://www.virtuozzo.com/company/blog/wp-content/uploads/2022/05/cropped-android-chrome-512x512-1-270x270.png" /> <script src="data:text/javascript;base64,KGZ1bmN0aW9uKHcsZCxzLGwsaSl7d1tsXT13W2xdfHxbXTt3W2xdLnB1c2goeydndG0uc3RhcnQnOm5ldyBEYXRlKCkuZ2V0VGltZSgpLGV2ZW50OidndG0uanMnfSk7dmFyIGY9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZShzKVswXSxqPWQuY3JlYXRlRWxlbWVudChzKSxkbD1sIT0nZGF0YUxheWVyJz8nJmw9JytsOicnO2ouYXN5bmM9ITA7ai5zcmM9J2h0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL2d0bS5qcz9pZD0nK2krZGw7Zi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShqLGYpfSkod2luZG93LGRvY3VtZW50LCdzY3JpcHQnLCdkYXRhTGF5ZXInLCdHVE0tVzlQU1ZQTCcp" defer></script> </head><body class="home page-template-default page page-id-13389 logged-in admin-bar skin-default sidebar-none full_width tb_animation_on ready-view header-horizontal fixed-header-enabled footer-none footer-off filter-hover-none filter-featured-only sidemenu-active customize-support page-loaded has-builder tb_responsive_mode"> <noscript> <iframe data-lazyloaded="1" src="about:blank" data-src="https://www.googletagmanager.com/ns.html?id=GTM-W9PSVPL" height="0" width="0" style="display:none;visibility:hidden"></iframe><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W9PSVPL" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> </noscript><div class="wrapper"><div class="content"><div id="headerwrap"><header id="header" class="tf_box pagewidth tf_clearfix" itemscope="itemscope" itemtype="https://schema.org/WPHeader"><div class="logo"> <a href="/"> <img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMzQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAxMzQgMjQiPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9IiNmZmZmZmYiLz48L3N2Zz4=" data-src="/wp-content/themes/virtuozzo-child/assets/img/vz-main-logo.svg" alt="Virtuozzo" width="134" height="24"><noscript><img src="/wp-content/themes/virtuozzo-child/assets/img/vz-main-logo.svg" alt="Virtuozzo" width="134" height="24"></noscript> </a></div><div class="burger-menu"><div class="icon-left"></div><div class="icon-right"></div> <span class="screen-reader-text">Menu</span></div><div class="header-menu"><ul><li> <a href="/"> Products </a><ul class="sub-mega"><li class="sub-column"><ul class="sub-placeholders"><li class="active"><div class="top"><h5>Virtuozzo Hybrid Cloud</h5><p>Managed multi-tenant cloud for MSPs, providing easy access to IaaS and PaaS with lower cost, higher margins & better support than hyperscale public clouds.</p></div> <a href="/hybrid-cloud/registration/"> <img data-no-lazy="1" src="/wp-content/themes/virtuozzo-child/assets/img/header/virtuozzo-hybrid-cloud.png" alt="Virtuozzo Hybrid Cloud Free Trial" width="316" height="93"> </a></li><li><div class="top"><h5>Virtuozzo Hybrid Infrastructure</h5><p>Hyperconverged, multi-tenant cloud platform based on OpenStack: turnkey IaaS tuned for performance, scalability and low TCO, for traditional, cloud-native + ML/AI workloads.</p></div> <a href="/hybrid-infrastructure/#get-started"> <img data-no-lazy="1" src="/wp-content/themes/virtuozzo-child/assets/img/header/virtuozzo-hybrid-cloud.png" alt="Virtuozzo Hybrid Cloud Free Trial" width="316" height="93"> </a></li><li><div class="top"><h5>Virtuozzo Application Platform</h5><p>Elastic PaaS solution with DevOps integration: automates application deployment, scaling and management in private, public or multi-cloud environments.</p></div> <a href="/application-platform/#get-started"> <img data-no-lazy="1" src="/wp-content/themes/virtuozzo-child/assets/img/header/virtuozzo-cloud-platform-for-vmware.png" alt="Virtuozzo Hybrid Cloud Free Trial" width="316" height="93"> </a></li><li><div class="top"><h5>Virtuozzo Hybrid Server</h5><p>A streamlined, ultra-efficient virtualization platform: high density, high performance virtual machines, containers and storage, with user-friendly control panels.</p></div> <a href="/hybrid-server/#get-started"> <img data-no-lazy="1" src="/wp-content/themes/virtuozzo-child/assets/img/header/virtuozzo-cloud-platform-for-vmware.png" alt="Virtuozzo Hybrid Cloud Free Trial" width="316" height="93"> </a></li></ul></li><li class="sub-column"><ul class="sub-show-placeholder"><li class="active"> <a href="/hybrid-cloud/"> <span><img data-no-lazy="1" src="/wp-content/themes/virtuozzo-child/assets/img/header/hybrid-cloud-ico.svg" alt="Hybrid Cloud" width="26" height="24"></span> Hybrid Cloud </a></li><li> <a href="/hybrid-infrastructure/"> <span><img data-no-lazy="1" src="/wp-content/themes/virtuozzo-child/assets/img/header/hybrid-infrastructure-ico.svg" alt="Hybrid Infrastructure" width="17" height="24"></span> Hybrid Infrastructure </a></li><li> <a href="/application-platform/"> <span><img data-no-lazy="1" src="/wp-content/themes/virtuozzo-child/assets/img/header/application-platform-ico.svg" alt="Application Platform" width="22" height="24"></span> Application Platform </a></li><li> <a href="/hybrid-server/"> <span><img data-no-lazy="1" src="/wp-content/themes/virtuozzo-child/assets/img/header/hybrid-server.svg" alt="Hybrid Server" width="20" height="24"></span> Hybrid Server </a></li></ul></li><li class="sub-column grey-bg"><ul class="list-menu"><li> <a href="/documentation/"> Documentation </a></li><li> <a href="/product-updates/"> Product Updates </a></li><li> <a href="/all-supported-products/"> Support </a></li><li> <a id="watch-demos-btn" target="_blank" href="https://play.goconsensus.com/ac69c4585" class="external"> Watch Demos </a></li></ul></li></ul></li><li> <a href="/"> Solutions </a><ul id="solutions" class="sub-mega"><li class="sub-column"><ul><li class="mega-menu-item"> <a href="/vmware-alternative/"> <span class="ico"><img data-no-lazy="1" src="/wp-content/themes/virtuozzo-child/assets/img/header/vmware-management.svg" alt="VMware Alternative" width="25" height="24"></span> <span> VMware Alternative <span>Migrate to a modern, future-proof, high-performance cloud platform with cost-effective licensing</span> </span> </a></li><li class="mega-menu-item"> <a href="/multi-cloud-platform/"> <span class="ico"><img data-no-lazy="1" src="/wp-content/themes/virtuozzo-child/assets/img/header/multi-cloud.svg" alt="Multi-Cloud" width="31" height="24"></span> <span> Multi-Cloud <span>Build, deploy, manage and host apps on any infrastructure anywhere, with DevOps integration</span> </span> </a></li><li class="mega-menu-item"> <a href="/high-performance-storage/"> <span class="ico"><img data-no-lazy="1" src="/wp-content/themes/virtuozzo-child/assets/img/header/storage.svg" alt="Multi-Cloud" width="24" height="24"></span> <span> High-Performance Storage <span>Get fast, scalable, cost-efficient S3 storage with the best price-performance for Data Lakes</span> </span> </a></li><li class="mega-menu-item"> <a href="/paas-cloud-hosting/"> <span class="ico"><img data-no-lazy="1" src="/wp-content/themes/virtuozzo-child/assets/img/header/infrastructure-management.svg" alt="Infrastructure Management" width="24" height="24"></span> <span> Platform as a Service <span>Host, build, deploy, modernize & manage apps in efficient elastic cloud with DevOps integration</span> </span> </a></li><li class="mega-menu-item"> <a href="/database-as-a-service/"> <span class="ico"><img data-no-lazy="1" src="/wp-content/themes/virtuozzo-child/assets/img/header/databases.svg" alt="Databases" width="17" height="24"></span> <span> Database Management <span>Simplify database infrastructure, automate management, move to database as a service</span> </span> </a></li><li class="mega-menu-item"> <a href="/kubernetes-hosting/"> <span class="ico"><img data-no-lazy="1" src="/wp-content/themes/virtuozzo-child/assets/img/header/kubernetes.svg" alt="Kubernetes" width="25" height="24"></span> <span> Kubernetes <span>Simplify Kubernetes with optimized clustering, hosting and management聽</span> </span> </a></li><li class="mega-menu-item"> <a href="/application-platform-for-wordpress/"> <span class="ico"><img data-no-lazy="1" src="/wp-content/themes/virtuozzo-child/assets/img/header/wordpress-as-a-service.svg" alt="WordPress as a Service" width="24" height="24"></span> <span> WordPress <span>Make WordPress faster, more scalable, more resilient, and integrate with DevOps</span> </span> </a></li><li class="mega-menu-item"> <a href="/application-platform/marketplace/"> <span class="ico"><img data-no-lazy="1" src="/wp-content/themes/virtuozzo-child/assets/img/header/application-marketplace.svg" alt="Application Marketplace" width="24" height="22"></span> <span> Application Marketplace <span>One-click installable applications, services and add-ons</span> </span> </a></li></ul></li></ul></li><li id="partners-menu"> <a href="/partner-program/"> Partners </a><ul class="sub-mega sub-small"><li class="sub-column"><ul class="mega-default"><li> <a href="/iaas-providers/"> IaaS Providers </a></li><li> <a href="/application-platform-partners/"> PaaS Providers </a></li><li> <a href="/technology-partnerships/"> Technology Partners </a></li><li> <a href="/distributors/"> Distributors </a></li><li> <a href="/resellers/"> Resellers </a></li></ul></li><li class="sub-column grey-bg"><ul class="mega-default"><li class="mega-static"> <a href="/partners/"> <img data-no-lazy="1" src="/wp-content/themes/virtuozzo-child/assets/img/header/partners.png" alt="support portal" width="600" height="400"> </a></li><li class="mega-call-to-action"> <a target="_blank" href="/partners/"> Partner with us <img data-no-lazy="1" src="/wp-content/themes/virtuozzo-child/assets/img/header/arrow.svg" alt="arrow" width="18" height="12"> </a></li></ul></li></ul></li><li id="support-menu"> <a href="/all-supported-products/"> Support </a><ul class="sub-mega sub-small"><li class="sub-column"><ul class="mega-default"><li> <a href="/all-supported-products/"> Product Support </a></li><li> <a href="/documentation/"> Documentation </a></li><li> <a href="/support-plans/"> Support plans </a></li><li> <a href="/professional-services/"> Professional Services </a></li></ul></li><li class="sub-column grey-bg"><ul class="mega-default"><li class="mega-static"> <a href="https://support.virtuozzo.com/" target="_blank"> <img data-no-lazy="1" src="/wp-content/themes/virtuozzo-child/assets/img/header/support.png" alt="support portal" width="600" height="400"> </a></li><li class="mega-call-to-action"> <a href="https://support.virtuozzo.com/" target="_blank"> Get support <img data-no-lazy="1" src="/wp-content/themes/virtuozzo-child/assets/img/header/arrow-external.svg" alt="arrow" width="9" height="9"> </a></li></ul></li></ul></li><li id="resources-menu"> <a href="/resources/"> Resources </a><ul class="sub-mega"><li class="sub-column"><ul class="mega-default"><li> <a href="/company/blog/"> Blog </a></li><li> <a href="/resources/#case-studies"> Case Studies </a></li><li> <a href="/resources/#data-sheets"> Datasheets </a></li><li> <a href="/resources/videos/"> Video </a></li></ul></li><li class="sub-column"><ul class="mega-default"><li> <a href="/documentation/"> Documentation </a></li><li> <a href="/resources/videos/?categories=webinars"> Webinars </a></li><li> <a href="/resources/#branding-materials"> Branding </a></li><li> <a href="/resources/"> All Resources </a></li></ul></li><li class="sub-column grey-bg"><ul><li class="mega-static"> <a href="/resources/#case-studies"> <img data-no-lazy="1" src="/wp-content/themes/virtuozzo-child/assets/img/header/case-studies-bg.svg" alt="support portal" width="300" height="200"> </a></li><li class="mega-call-to-action"> <a href="/resources/#case-studies"> Explore case studies <img data-no-lazy="1" src="/wp-content/themes/virtuozzo-child/assets/img/header/arrow.svg" alt="arrow" width="18" height="12"> </a></li></ul></li></ul></li><li id="company-menu"> <a href="/about/company/"> Company </a><ul class="sub-mega"><li class="sub-column"><ul class="mega-default"><li> <a href="/company/about/"> About </a></li><li> <a href="/company/leadership/"> Leadership </a></li><li> <a href="/news/"> News </a></li><li> <a href="/company/events/"> Events </a></li></ul></li><li class="sub-column"><ul class="mega-default"><li> <a target="_blank" href="https://virtuozzo.bamboohr.com/careers"> Careers </a></li><li> <a href="/company/open-source/"> Open Source </a></li><li> <a href="/company/contact/"> Contact </a></li></ul></li><li class="sub-column grey-bg"><ul><li class="mega-static"> <a href="/news/"> <img data-no-lazy="1" src="/wp-content/themes/virtuozzo-child/assets/img/header/company-bg.png" alt="support portal" width="600" height="400"> </a></li><li class="mega-call-to-action"> <a href="/news/"> Read latest news <img data-no-lazy="1" src="/wp-content/themes/virtuozzo-child/assets/img/header/arrow.svg" alt="arrow" width="18" height="12"> </a></li></ul></li></ul></li><li id="get-in-touch"> <a href="/company/contact/">GET IN TOUCH</a></li><li id="search-btn"> <a data-lazy="1" class="search-button tf_search_icon tf_vmiddle tf_inline_b" href="#"> <svg aria-label="Search" role="img" class="tf_fa tf-fas-search"> <use href="#tf-fas-search"></use> </svg> <span class="screen-reader-text">Search</span> </a></li></ul></div></header><style>div#headerwrap { z-index: 9999; } .burger-menu { position: absolute; width: 30px; height: 50px; top: 0; right: 0; transition-duration: 0.2s; display: none; cursor: pointer; } .icon-left { transition-duration: 0.2s; position: absolute; height: 3px; width: 10px; top: 25px; right: 9px; background-color: #212121; border-radius: 2px 0 0 2px; } .icon-right { transition-duration: 0.2s; position: absolute; height: 3px; width: 10px; top: 25px; background-color: #212121; right: 0; border-radius: 0 2px 2px 0; } .burger-menu .icon-left:before { border-radius: 2px 0 0 2px; } .burger-menu .icon-left:after { border-radius: 2px 0 0 2px; } .burger-menu .icon-right:before { border-radius: 0 2px 2px 0; } .burger-menu .icon-right:after { border-radius: 0 2px 2px 0; } .burger-menu .icon-right:before, .burger-menu .icon-left:before, .burger-menu .icon-right:after, .burger-menu .icon-left:after { transition-duration: 0.2s; position: absolute; width: 10px; height: 3px; background-color: #212121; content: ""; top: -7px; } .burger-menu .icon-right:after, .burger-menu .icon-left:after { top: 7px; } .burger-menu.open .icon-right, .burger-menu.open .icon-left { transition-duration: 0.5s; background: transparent; } .burger-menu.open .icon-left:before { border-radius: 2px 2px 2px 2px; transform: rotateZ(45deg) scaleX(1.4) translate(2px, 2px); } .burger-menu.open .icon-left:after { border-radius: 2px 2px 2px 2px; transform: rotateZ(-45deg) scaleX(1.4) translate(2px, -2px) } .burger-menu.open .icon-right:before { border-radius: 2px 2px 2px 2px; transform: rotateZ(-45deg) scaleX(1.4) translate(-2px, 2px) } .burger-menu.open .icon-right:after { border-radius: 2px 2px 2px 2px; transform: rotateZ(45deg) scaleX(1.4) translate(-2px, -2px) } div#headerwrap { border-bottom: 1px solid rgba(237, 241, 254, 1); } #header .logo { display: flex; align-items: center; } .logo img { display: block; } #header { display: flex; justify-content: space-between; font-size: 18px; } #header:after { display: none; } #headerwrap { min-height: auto; } .header-menu ul { list-style: none; padding: 0; margin: 0; } .header-menu ul li { display: inline-block; margin: 0; } .header-menu * { box-sizing: border-box; } .header-menu ul li a { padding: 15px 8px; display: block; color: #000; min-width: 90px; text-align: center; } .header-menu ul li a.search-button { width: 38px; padding: 0; height: 38px; min-width: auto; display: inline-flex; align-items: center; justify-content: center; position: relative; top: -2px; pointer-events: all; margin: 0; } .header-menu ul li:hover > a { font-weight: 400; } ul.sub-mega { position: absolute; left: 0; overflow: hidden; top: calc(100% + 1px); width: 100%; border-radius: 0 0 25px 25px; background: #fff; display: flex; min-height: 200px; box-shadow: 0px 15px 25px 0px rgba(0, 0, 0, 0.15); display: none; } ul.sub-mega.sub-small { width: 66.66%; left: auto; right: 0; } ul.sub-mega li.sub-column ul.sub-show-placeholder li.active:before { content: ''; display: block; width: 10px; height: 10px; position: absolute; border: 1px solid #ccd9f7; transform: rotate(45deg); left: -6px; background: #fff; border-left: 0; border-bottom: 0; top: 0; bottom: 0; margin: auto; } .header-menu .sub-mega li { display: block; position: relative; } .header-menu .sub-mega li a { text-align: left; } .header-menu > ul > li:hover > ul { display: flex; } ul.sub-mega li.sub-column { width: 50%; } ul.sub-mega li.sub-column ul { padding: 40px 30px; height: 100%; } ul.sub-mega li.sub-column.grey-bg ul { padding: 30px 35px; } ul.sub-mega li.sub-column.grey-bg ul li.mega-static { margin: 0; } ul.sub-mega li.sub-column ul.sub-show-placeholder { padding-left: 0; padding-right: 0; } ul.sub-mega li.sub-column ul.sub-show-placeholder li { padding-left: 30px; padding-right: 30px; margin-bottom: 10px; } ul.sub-mega li li a { display: flex; align-items: center; padding: 15px; border-radius: 10px; } ul.sub-mega li li.active a, ul.sub-mega li li a:hover { background: #EDF1FE; font-weight: 500; } ul.sub-mega li.sub-column ul.sub-show-placeholder a img { vertical-align: middle; } ul.sub-mega li.sub-column ul.sub-show-placeholder a span { width: 26px; margin-right: 10px; } ul.sub-placeholders { border-right: 1px solid #CCD9F6; font-size: 16px; } .header-menu ul.sub-placeholders a { padding: 0; } .header-menu ul.sub-placeholders a:hover, .header-menu ul.sub-placeholders li.active a { background: none; } .header-menu .sub-placeholders li { display: none; } .header-menu .sub-placeholders li.active { display: flex; } ul.sub-placeholders li { flex-direction: column; height: 100%; justify-content: space-between; } .header-menu .grey-bg { background: #F8F9FF; } .header-menu h5 { text-transform: none; letter-spacing: normal; font-weight: 400; font-size: 18px; margin: 0 0 15px 0; width: 100%; } .header-menu .label { background: #CB333B; color: #fff; font-size: 13px; padding: 4px 10px; border-radius: 10px; text-transform: uppercase; font-weight: 600; margin: 0 5px 0 0; } .header-menu ul.list-menu a { padding: 0; } .header-menu ul.list-menu a:hover { background: none; } .header-menu ul.list-menu li { margin: 10px 15px; } .header-menu ul.list-menu { padding: 5px 0; } .header-menu > ul > li > a { pointer-events: none; } .header-menu a.external { position: relative !important; padding-right: 20px !important; } .header-menu a.external:after { display: block; content: ''; width: 9px; height: 9px; position: absolute; right: 20px; top: 0; bottom: 0; margin: auto; opacity: 0; transition: .3s; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='9' viewBox='0 0 9 9' fill='none'%3E%3Cpath d='M8.75 1C8.75 0.585786 8.41421 0.25 8 0.25H1.25C0.835786 0.25 0.5 0.585786 0.5 1C0.5 1.41421 0.835786 1.75 1.25 1.75H7.25V7.75C7.25 8.16421 7.58579 8.5 8 8.5C8.41421 8.5 8.75 8.16421 8.75 7.75V1ZM0.46967 7.46967C0.176777 7.76256 0.176777 8.23744 0.46967 8.53033C0.762563 8.82322 1.23744 8.82322 1.53033 8.53033L0.46967 7.46967ZM7.46967 0.46967L0.46967 7.46967L1.53033 8.53033L8.53033 1.53033L7.46967 0.46967Z' fill='%23A80D15'/%3E%3C/svg%3E"); } .header-menu a.external:hover:after { opacity: 1; right: 0; } a#watch-demos-btn { position: relative; padding-left: 34px; margin-top: 30px; font-weight: 500; display: inline-block; } a#watch-demos-btn:hover { color: #A80D15; } a#watch-demos-btn:before { display: block; content: ''; width: 24px; height: 24px; position: absolute; left: 0; top: 0; bottom: 0; margin: auto; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M15.9602 11.5309L10.976 7.90777C10.8864 7.84249 10.7806 7.80325 10.6701 7.7944C10.5597 7.78555 10.4489 7.80742 10.3501 7.85761C10.2513 7.90779 10.1683 7.98433 10.1103 8.07875C10.0523 8.17317 10.0216 8.2818 10.0215 8.39261V15.6365C10.0211 15.7474 10.0516 15.8563 10.1096 15.951C10.1675 16.0457 10.2506 16.1224 10.3496 16.1726C10.4486 16.2228 10.5596 16.2445 10.6702 16.2353C10.7808 16.2261 10.8867 16.1864 10.976 16.1205L15.9602 12.5006C16.0372 12.4453 16.0999 12.3725 16.1432 12.2882C16.1865 12.2039 16.2091 12.1105 16.2091 12.0157C16.2091 11.921 16.1865 11.8275 16.1432 11.7432C16.0999 11.6589 16.0372 11.5861 15.9602 11.5309Z' fill='%2386A2ED'/%3E%3Cpath d='M12.002 0C5.37238 0 0 5.37238 0 12.002C0 18.6292 5.37238 24 12.002 24C18.63 24 24.0032 18.6284 24.0032 12.002C24.004 5.37238 18.63 0 12.002 0ZM12.002 21.9975C6.48105 21.9975 2.00486 17.5237 2.00486 12.002C2.00486 6.48264 6.48105 2.00326 12.002 2.00326C17.5222 2.00326 21.9975 6.48185 21.9975 12.002C21.9983 17.5237 17.5222 21.9975 12.002 21.9975Z' fill='%2386A2ED'/%3E%3C/svg%3E"); } a#watch-demos-btn:hover:before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M15.9602 11.5309L10.976 7.90777C10.8864 7.84249 10.7806 7.80325 10.6701 7.7944C10.5597 7.78555 10.4489 7.80742 10.3501 7.85761C10.2513 7.90779 10.1683 7.98433 10.1103 8.07875C10.0523 8.17317 10.0216 8.2818 10.0215 8.39261V15.6365C10.0211 15.7474 10.0516 15.8563 10.1096 15.951C10.1675 16.0457 10.2506 16.1224 10.3496 16.1726C10.4486 16.2228 10.5596 16.2445 10.6702 16.2353C10.7808 16.2261 10.8867 16.1864 10.976 16.1205L15.9602 12.5006C16.0372 12.4453 16.0999 12.3725 16.1432 12.2882C16.1865 12.2039 16.2091 12.1105 16.2091 12.0157C16.2091 11.921 16.1865 11.8275 16.1432 11.7432C16.0999 11.6589 16.0372 11.5861 15.9602 11.5309Z' fill='%23A80D15'/%3E%3Cpath d='M12.002 0C5.37238 0 0 5.37238 0 12.002C0 18.6292 5.37238 24 12.002 24C18.63 24 24.0032 18.6284 24.0032 12.002C24.004 5.37238 18.63 0 12.002 0ZM12.002 21.9975C6.48105 21.9975 2.00486 17.5237 2.00486 12.002C2.00486 6.48264 6.48105 2.00326 12.002 2.00326C17.5222 2.00326 21.9975 6.48185 21.9975 12.002C21.9983 17.5237 17.5222 21.9975 12.002 21.9975Z' fill='%23A80D15'/%3E%3C/svg%3E"); } #solutions .sub-column { width: 100%; } #solutions .sub-column ul { justify-content: flex-start; } #solutions ul li { width: 33.333456%; } .header-menu ul li.mega-menu-item { width: 48%; margin-bottom: 15px; } .header-menu ul li.mega-menu-item.mega-large { width: 100%; } .header-menu .sub-mega .ico { width: 30px; flex: 0 0 30px; text-align: center; margin-right: 10px; display: flex; align-items: center; justify-content: center; margin-top: 5px; } .header-menu .sub-mega a { align-items: flex-start; padding-top: 9px; padding-bottom: 9px; } /*.header-menu .sub-mega a:hover {*/ /* font-weight: unset;*/ /*}*/ .header-menu .sub-mega a span { font-weight: 400; display: block; } .header-menu .sub-mega a span span { font-weight: 300; font-size: 16px; } ul#solutions ul { display: flex; justify-content: space-between; flex-wrap: wrap; } h5.menu-title { color: #656565; text-transform: uppercase; margin-bottom: 30px; } li#get-in-touch a { padding: 5px 20px; border: 1px solid #ca333b; border-radius: 5px; font-size: 15px; font-weight: 600; color: #ca333b; pointer-events: all; } li#get-in-touch a:hover { background: #ca333b; color: #fff; } li.btn-menu a { background: #ca333b; text-align: center !important; color: #fff !important; } li.btn-menu:hover a { background: #9B2637 !important; } li.mega-static img { width: 100%; margin-bottom: 5px; } li.mega-static a { padding: 0 !important; display: block !important; background: none !important; } li.mega-static { font-size: 15px; } ul.mega-default li { margin-left: -15px; margin-bottom: 10px; } li.mega-call-to-action a { background: none !important; color: #CB333B !important; font-weight: 500 !important; display: inline-flex !important; align-items: center !important; } li.mega-call-to-action a.external:after { right: 0; opacity: 1; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='9' viewBox='0 0 9 9' fill='none'%3E%3Cpath d='M8.75 1C8.75 0.585786 8.41421 0.25 8 0.25H1.25C0.835786 0.25 0.5 0.585786 0.5 1C0.5 1.41421 0.835786 1.75 1.25 1.75H7.25V7.75C7.25 8.16421 7.58579 8.5 8 8.5C8.41421 8.5 8.75 8.16421 8.75 7.75V1ZM0.46967 7.46967C0.176777 7.76256 0.176777 8.23744 0.46967 8.53033C0.762563 8.82322 1.23744 8.82322 1.53033 8.53033L0.46967 7.46967ZM7.46967 0.46967L0.46967 7.46967L1.53033 8.53033L8.53033 1.53033L7.46967 0.46967Z' fill='%23CB333B'/%3E%3C/svg%3E"); } ul.mega-default li:hover a { font-weight: 500 !important; } li.mega-call-to-action a img { margin: 2px 0 0 10px; transition: .2s; } li.mega-call-to-action a:hover img { margin-left: 5px; } /*#resources-menu .sub-column:first-child {*/ /* border-right: 1px solid #CCD9F6;*/ /*}*/ #resources-menu li.mega-call-to-action a { padding-left: 0; } li#get-in-touch { width: auto; margin-left: 7px; } li#search-btn { margin-left: 5px; width: auto; } .header-menu > ul > li { width: 96px; } li#resources-menu { width: 106px; } li#company-menu { width: 101px; } @media (max-width: 1024px) { .header-menu > ul > li { width: 100% !important; } #headerwrap { background: #F8F9FF; } .header-menu { position: fixed; height: 100vh; background: #fff; right: -320px; width: 320px; overflow: auto; padding-top: 0; transition: .2s; top: 50px; } .admin-bar.fixed-header-enabled #headerwrap .header-menu { top: 82px; } .header-menu.open { right: 0; } .burger-menu { display: block; } .header-menu > ul > li:hover > ul { display: none; } .header-menu > ul { padding-bottom: 140px; } li#get-in-touch { padding: 15px 20px 0; margin-left: 0; } li#get-in-touch a { width: 100%; text-align: center; } li#search-btn { margin-left: 0; padding: 10px 20px; } .header-menu > ul > li { padding: 0; position: relative; } .header-menu > ul > li:after { content: ''; display: block; width: 0; height: 0; padding: 4px; border: 1px solid transparent; border-right-color: #333; border-bottom-color: #333; transform: rotate(45deg); position: absolute; right: 25px; top: 21px; transition: .2s; } .header-menu > ul > li.open:after { transform: rotate(225deg); top: 26px; border-right-color: #000; border-bottom-color: #000; } ul.sub-mega { min-height: auto; } ul.sub-placeholders, ul.sub-mega li.sub-column ul.sub-show-placeholder li.active:before, li.sub-column.grey-bg { display: none; } #get-in-touch:after, #search-btn:after { display: none; } .header-menu > ul > li > a { font-weight: 600 !important; width: 75%; padding-left: 20px; } .header-menu > ul > li.open { background: #EDF1FE; } ul.sub-mega li.sub-column ul { padding: 0 20px; } ul.sub-mega li li.active a, ul.sub-mega li li a:hover { background: none; } ul.sub-mega a, ul.sub-mega span { font-weight: 300 !important; } .header-menu .sub-mega a { padding: 9px 0; } .header-menu ul li { display: block; cursor: pointer; } .header-menu > ul > li.open ul.sub-mega { display: block; } .header-menu ul li a { text-align: left; } #header { height: 50px; } ul.sub-mega { position: static; background: #F9FAFF; border-radius: 0; box-shadow: none; } ul.mega-default li { margin: 25px 0; } .header-menu .sub-mega a { padding: 0; background: none !important; } ul.sub-mega li.sub-column ul.sub-show-placeholder li { padding-left: 20px; padding-right: 20px; margin: 25px 0; } ul.sub-mega li.sub-column ul.sub-show-placeholder li:last-child { margin-bottom: 0 !important; } ul.sub-mega li.sub-column li:last-child, ul.sub-mega.sub-small li.sub-column li:last-child { margin-bottom: 0 !important; } ul.sub-mega li.sub-column:nth-child(2), ul.sub-mega.sub-small li.sub-column:nth-child(1), #solutions .sub-column { padding-bottom: 25px; } ul.sub-mega li.sub-column, ul.sub-mega.sub-small { width: 100%; } #solutions .sub-column ul { display: block; } #solutions ul li { width: 100%; margin: 25px 0; } .header-menu .sub-mega a span span { display: none; } .header-menu .sub-mega .ico { margin-top: 0; } } @media (max-width: 782px) { /*.admin-bar.fixed-header-enabled #headerwrap .header-menu {*/ /* top: 96px;*/ /*}*/ } @media (max-width: 600px) { .admin-bar.fixed-header-enabled #headerwrap .header-menu { top: 50px; } }</style> <script src="data:text/javascript;base64,JChkb2N1bWVudCkub24oJ21vdXNlZW50ZXInLCcuc3ViLXNob3ctcGxhY2Vob2xkZXIgbGknLGZ1bmN0aW9uKCl7JCh0aGlzKS5zaWJsaW5ncygpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTskKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKTt2YXIgaW5kZXg9JCh0aGlzKS5pbmRleCgpOyQoJy5zdWItcGxhY2Vob2xkZXJzIGxpJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpOyQoJy5zdWItcGxhY2Vob2xkZXJzJykuZmluZCgnbGknKS5lcShpbmRleCkuYWRkQ2xhc3MoJ2FjdGl2ZScpfSk7JChkb2N1bWVudCkub24oJ2NsaWNrJywnLmJ1cmdlci1tZW51JyxmdW5jdGlvbigpeyQodGhpcykudG9nZ2xlQ2xhc3MoJ29wZW4nKTskKCcuaGVhZGVyLW1lbnUnKS50b2dnbGVDbGFzcygnb3BlbicpfSk7JChkb2N1bWVudCkub24oJ2NsaWNrJywnLmhlYWRlci1tZW51ID4gdWwgPiBsaScsZnVuY3Rpb24oZXZlbnQpe2lmKGV2ZW50LnRhcmdldCE9dGhpcyl7cmV0dXJufQokKHRoaXMpLnNpYmxpbmdzKCkucmVtb3ZlQ2xhc3MoJ29wZW4nKTskKHRoaXMpLnRvZ2dsZUNsYXNzKCdvcGVuJyl9KQ==" defer></script> </div><div class="main-content container"><div class="row"><div class="col-lg-9"><div class="single--heading"><h1 class="entry-title">Deploy Wagtail Python-Based CMS into Jelastic PaaS</h1> <span class="meta-author vcard author"> <span class="fn"><a href="https://www.virtuozzo.com/company/blog/author/gleb-antonov/" title="Posts by Gleb Antonov" rel="author">Gleb Antonov</a></span> | <span class="meta-date date updated">October 11, 2018</span> | <a href="https://www.virtuozzo.com/company/blog/category/devops-paas/" rel="category tag">DevOps PaaS</a>, <a href="https://www.virtuozzo.com/company/blog/category/installer/" rel="category tag">Installer</a> | <a href="https://www.virtuozzo.com/company/blog/tag/cms/" rel="tag">CMS</a>, <a href="https://www.virtuozzo.com/company/blog/tag/content-management/" rel="tag">Content Management</a>, <a href="https://www.virtuozzo.com/company/blog/tag/content-management-system/" rel="tag">Content management system</a>, <a href="https://www.virtuozzo.com/company/blog/tag/django/" rel="tag">Django</a>, <a href="https://www.virtuozzo.com/company/blog/tag/python/" rel="tag">Python</a>, <a href="https://www.virtuozzo.com/company/blog/tag/wagtail/" rel="tag">wagtail</a> </span></div><div class="page-content"><p style="text-align: justify;"><a href="https://wagtail.io/" target="_blank" rel="nofollow noopener noreferrer"><span style="font-weight: 400;"><img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNzAiIGhlaWdodD0iOTkiIHZpZXdCb3g9IjAgMCAyNzAgOTkiPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9IiNmZmZmZmYiLz48L3N2Zz4=" decoding="async" class="size-full wp-image-30651 alignleft" data-src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wagtail-logo-e1539242515373.png" alt="content management system" width="270" height="99" /><noscript><img decoding="async" class="size-full wp-image-30651 alignleft" src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wagtail-logo-e1539242515373.png" alt="content management system" width="270" height="99" /></noscript>Wagtail CMS</span></a><span style="font-weight: 400;"> (content management system) is a simple and agile </span><a href="https://www.djangoproject.com/" target="_blank" rel="nofollow noopener noreferrer"><span style="font-weight: 400;">Django</span></a><span style="font-weight: 400;">-powered CMS, which offers a convenient and intuitive interface for editors to create and structure website content. Wagtail is published under the BSD license, which provides you as much freedom as possible. The exceptional performance and optimization of this CMS ensure lightning-fast page loading and searches. With the advantages of Wagtail, you can spend less time on configuring your site and more on perfecting your project (using a vast number of tools in the administration panel for working with content).</span></p><p style="text-align: justify;"><span style="font-weight: 400;">This article describes how to deploy Wagtail CMS into your Jelastic Python environment.</span></p><h2 style="text-align: justify;"><span style="font-weight: 400;">Create Python Environment</span></h2><p style="text-align: justify;"><span style="font-weight: 400;">To start with, you need to create an environment with the appropriate application server - the Apache web server with the Python engine.</span></p><p><span style="font-weight: 400;">1. To create </span><b>New Environment</b><span style="font-weight: 400;">, log into your Jelastic dashboard and click the same-named button at the top-left corner.<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MDQiIGhlaWdodD0iMzkiIHZpZXdCb3g9IjAgMCA1MDQgMzkiPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9IiNmZmZmZmYiLz48L3N2Zz4=" decoding="async" class="size-full wp-image-30619 aligncenter" data-src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/create-new-environment-1.png" alt="content management system" width="504" height="39" data-srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/create-new-environment-1.png 504w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/create-new-environment-1-300x23.png 300w" data-sizes="(max-width: 504px) 100vw, 504px" /><noscript><img decoding="async" class="size-full wp-image-30619 aligncenter" src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/create-new-environment-1.png" alt="content management system" width="504" height="39" srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/create-new-environment-1.png 504w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/create-new-environment-1-300x23.png 300w" sizes="(max-width: 504px) 100vw, 504px" /></noscript></span><br /> <span style="font-weight: 400;">2. In the opened topology wizard, switch to the </span><b>Python</b><span style="font-weight: 400;"> tab and choose the required Python version for the automatically selected Apache application server node.<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5NzYiIGhlaWdodD0iNjA1IiB2aWV3Qm94PSIwIDAgOTc2IDYwNSI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0iI2ZmZmZmZiIvPjwvc3ZnPg==" fetchpriority="high" decoding="async" class="size-full wp-image-30635 aligncenter" data-src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/python-application-server.png" alt="wagtail mariadb" width="976" height="605" data-srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/python-application-server.png 976w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/python-application-server-300x186.png 300w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/python-application-server-768x476.png 768w" data-sizes="(max-width: 976px) 100vw, 976px" /><noscript><img fetchpriority="high" decoding="async" class="size-full wp-image-30635 aligncenter" src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/python-application-server.png" alt="wagtail mariadb" width="976" height="605" srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/python-application-server.png 976w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/python-application-server-300x186.png 300w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/python-application-server-768x476.png 768w" sizes="(max-width: 976px) 100vw, 976px" /></noscript></span></p><div style="border: 1px solid rgba(170, 170, 170, 0.431373); border-radius: 4px; padding: 10px; margin: 5px 0px 10px; color: #222222; text-align: justify; background-color: #ffffff;"><b>Note:</b><span style="font-weight: 400;"> The latest Wagtail CMS versions support the </span><b><i>Python 3.x</i></b><span style="font-weight: 400;"> only. On the </span><b><i>Python 2.7</i></b><span style="font-weight: 400;"> instances, run the </span><i><span style="font-weight: 400;">1.13</span></i><span style="font-weight: 400;"> version of the application.</span></div><p style="text-align: justify;"><span style="font-weight: 400;">Configure all other settings up to your need (e.g. </span><a href="https://docs.jelastic.com/automatic-vertical-scaling/" target="_blank" rel="noopener noreferrer"><span style="font-weight: 400;">cloudlet limit</span></a><span style="font-weight: 400;">, disk space, </span><a href="https://docs.jelastic.com/environment-regions/" target="_blank" rel="noopener noreferrer"><span style="font-weight: 400;">region</span></a><span style="font-weight: 400;">, etc), set the desired domain name and click the </span><b>Create</b><span style="font-weight: 400;"> button.</span></p><p><span style="font-weight: 400;">3. Wait a minute for your environment to be created.<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4NTIiIGhlaWdodD0iMTgzIiB2aWV3Qm94PSIwIDAgODUyIDE4MyI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0iI2ZmZmZmZiIvPjwvc3ZnPg==" decoding="async" class="size-full wp-image-30627 aligncenter" data-src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/open-wagtail-cms-in-browser.png" alt="django framework" width="852" height="183" data-srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/open-wagtail-cms-in-browser.png 852w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/open-wagtail-cms-in-browser-300x64.png 300w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/open-wagtail-cms-in-browser-768x165.png 768w" data-sizes="(max-width: 852px) 100vw, 852px" /><noscript><img decoding="async" class="size-full wp-image-30627 aligncenter" src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/open-wagtail-cms-in-browser.png" alt="django framework" width="852" height="183" srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/open-wagtail-cms-in-browser.png 852w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/open-wagtail-cms-in-browser-300x64.png 300w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/open-wagtail-cms-in-browser-768x165.png 768w" sizes="(max-width: 852px) 100vw, 852px" /></noscript></span></p><p style="text-align: justify;"><span style="font-weight: 400;">Now, you are ready to start the Wagtail CMS application deployment. Below, we鈥檒l overview how to deploy it automatically using the pre-packaged archive and manually from scratch.</span></p><h2 style="text-align: justify;"><span style="font-weight: 400;">Wagtail CMS Automatic Deployment</span></h2><p style="text-align: justify;"><span style="font-weight: 400;">We鈥檝e prepared a deployment archive with already configured Wagtail CMS of the latest version available at the moment (i.e. </span><i><span style="font-weight: 400;">2.2</span></i><span style="font-weight: 400;">) and SQLite database, which can be installed in a matter of minutes without any manual configurations required.</span></p><div style="border: 1px solid rgba(170, 170, 170, 0.431373); border-radius: 4px; padding: 10px; margin: 5px 0px 10px; color: #222222; text-align: justify; background-color: #ffffff;"> <b>Note:</b><span style="font-weight: 400;"> If configuring own deployment archive, please ensure</span> <span style="font-weight: 400;">your Wagtail CMS package contains the following files in its root:</span></p><ul><li style="font-weight: 400;"><b><i>requirements.txt </i></b><span style="font-weight: 400;">file with the names of all the Python modules your application requires, it will be read by the deployment script to install the listed modules via the </span><b><i>pip</i></b><span style="font-weight: 400;"> manager automatically</span></li><li style="font-weight: 400;"><b><i>wsgi.py</i></b><span style="font-weight: 400;"> file with the entry point script for running your application inside a virtual environment by means of the </span><i><span style="font-weight: 400;">mod_wsgi</span></i><span style="font-weight: 400;"> for Apache</span></li></ul></div><p><span style="font-weight: 400;">1. Upload the package with your Wagtail CMS application into your </span><a href="https://docs.jelastic.com/deployment-manager/" target="_blank" rel="noopener noreferrer"><span style="font-weight: 400;">deployment manager</span></a><span style="font-weight: 400;"> via the following link:</span></p><p style="text-align: justify;"><i><span style="font-weight: 400;">https://download.jelastic.com/public.php?service=files&t=b01aabf6a7fb615884c27eb4101e5150&download聽<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NTAiIGhlaWdodD0iMTgzIiB2aWV3Qm94PSIwIDAgNDUwIDE4MyI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0iI2ZmZmZmZiIvPjwvc3ZnPg==" decoding="async" class="size-full wp-image-30647 aligncenter" data-src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wagtail-cms-deployment-manager.png" alt="wagtail hosting" width="450" height="183" data-srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wagtail-cms-deployment-manager.png 450w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wagtail-cms-deployment-manager-300x122.png 300w" data-sizes="(max-width: 450px) 100vw, 450px" /><noscript><img decoding="async" class="size-full wp-image-30647 aligncenter" src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wagtail-cms-deployment-manager.png" alt="wagtail hosting" width="450" height="183" srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wagtail-cms-deployment-manager.png 450w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wagtail-cms-deployment-manager-300x122.png 300w" sizes="(max-width: 450px) 100vw, 450px" /></noscript></span></i></p><p><span style="font-weight: 400;">2. </span><a href="https://docs.jelastic.com/deployment-guide/#archive" target="_blank" rel="noopener noreferrer"><span style="font-weight: 400;">Deploy this archive</span></a><span style="font-weight: 400;"> into your </span><b><i>Python 3.x</i></b><span style="font-weight: 400;"> environment.<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MzMiIGhlaWdodD0iMjE1IiB2aWV3Qm94PSIwIDAgNDMzIDIxNSI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0iI2ZmZmZmZiIvPjwvc3ZnPg==" decoding="async" class="size-full wp-image-30623 aligncenter" data-src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/deploy-the-archive-into-python-environment.png" alt="python cms" width="433" height="215" data-srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/deploy-the-archive-into-python-environment.png 433w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/deploy-the-archive-into-python-environment-300x149.png 300w" data-sizes="(max-width: 433px) 100vw, 433px" /><noscript><img decoding="async" class="size-full wp-image-30623 aligncenter" src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/deploy-the-archive-into-python-environment.png" alt="python cms" width="433" height="215" srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/deploy-the-archive-into-python-environment.png 433w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/deploy-the-archive-into-python-environment-300x149.png 300w" sizes="(max-width: 433px) 100vw, 433px" /></noscript></span><br /> <span style="font-weight: 400;">3. After the operation is finished, select the </span><b>Open in Browser </b><span style="font-weight: 400;">button next to your environment.<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4NjMiIGhlaWdodD0iMjE1IiB2aWV3Qm94PSIwIDAgODYzIDIxNSI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0iI2ZmZmZmZiIvPjwvc3ZnPg==" decoding="async" class="size-full wp-image-30629 aligncenter" data-src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/open-wagtail-environment-in-browser.png" alt="django" width="863" height="215" data-srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/open-wagtail-environment-in-browser.png 863w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/open-wagtail-environment-in-browser-300x75.png 300w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/open-wagtail-environment-in-browser-768x191.png 768w" data-sizes="(max-width: 863px) 100vw, 863px" /><noscript><img decoding="async" class="size-full wp-image-30629 aligncenter" src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/open-wagtail-environment-in-browser.png" alt="django" width="863" height="215" srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/open-wagtail-environment-in-browser.png 863w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/open-wagtail-environment-in-browser-300x75.png 300w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/open-wagtail-environment-in-browser-768x191.png 768w" sizes="(max-width: 863px) 100vw, 863px" /></noscript></span><br /> <span style="font-weight: 400;">4. That鈥檚 all! Now you can enjoy working with your Wagtail CMS application (the default credentials for the admin panel are - </span><b><i>admin / verysecurepasswordforadmin</i></b><span style="font-weight: 400;">).<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3NjkiIGhlaWdodD0iMTIzIiB2aWV3Qm94PSIwIDAgNzY5IDEyMyI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0iI2ZmZmZmZiIvPjwvc3ZnPg==" decoding="async" class="size-full wp-image-30661 aligncenter" data-src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/welcome-to-wagtail-site.png" alt="django" width="769" height="123" data-srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/welcome-to-wagtail-site.png 769w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/welcome-to-wagtail-site-300x48.png 300w" data-sizes="(max-width: 769px) 100vw, 769px" /><noscript><img decoding="async" class="size-full wp-image-30661 aligncenter" src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/welcome-to-wagtail-site.png" alt="django" width="769" height="123" srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/welcome-to-wagtail-site.png 769w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/welcome-to-wagtail-site-300x48.png 300w" sizes="(max-width: 769px) 100vw, 769px" /></noscript></span></p><p style="text-align: justify;"><span style="font-weight: 400;">Enjoy your Wagtail CMS hosted at Jelastic PaaS!</span></p><h2 style="text-align: justify;"><span style="font-weight: 400;">Wagtail CMS Manual Deployment</span></h2><p style="text-align: justify;"><span style="font-weight: 400;">For the manual Wagtail CMS application deployment, we鈥檝e divided the process into three major steps: application installation, database configuration and running Wagtail CMS.</span></p><h3 style="text-align: justify;"><span style="font-weight: 400;">Install Wagtail CMS</span></h3><p><span style="font-weight: 400;">1. Access your Apache application server via SSH. For example, we鈥檒l utilize the inbuilt </span><a href="https://docs.jelastic.com/web-ssh-client/" target="_blank" rel="noopener noreferrer"><b>Web SSH</b></a><span style="font-weight: 400;"> tool.<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4NDkiIGhlaWdodD0iMTgzIiB2aWV3Qm94PSIwIDAgODQ5IDE4MyI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0iI2ZmZmZmZiIvPjwvc3ZnPg==" decoding="async" class="size-full wp-image-30657 aligncenter" data-src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/web-ssh-tool.png" alt="cloud cms" width="849" height="183" data-srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/web-ssh-tool.png 849w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/web-ssh-tool-300x65.png 300w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/web-ssh-tool-768x166.png 768w" data-sizes="(max-width: 849px) 100vw, 849px" /><noscript><img decoding="async" class="size-full wp-image-30657 aligncenter" src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/web-ssh-tool.png" alt="cloud cms" width="849" height="183" srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/web-ssh-tool.png 849w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/web-ssh-tool-300x65.png 300w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/web-ssh-tool-768x166.png 768w" sizes="(max-width: 849px) 100vw, 849px" /></noscript></span><br /> <span style="font-weight: 400;">2. It is a common practice to run Python web applications in isolated virtual environments, using the </span><b>virtual environment</b><span style="font-weight: 400;"> tool. It allows keeping the dependencies required by different projects in separate places and manage them without the administrator privileges.</span></p><p style="text-align: justify;"><span style="font-weight: 400;">So, perform the following to create and activate a new virtual environment:</span></p><p style="text-align: justify;"><i><span style="font-weight: 400;">virtualenv virtenv</span></i></p><p style="text-align: justify;"><i><span style="font-weight: 400;">source virtenv/bin/activate<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2ODQiIGhlaWdodD0iMjIyIiB2aWV3Qm94PSIwIDAgNjg0IDIyMiI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0iI2ZmZmZmZiIvPjwvc3ZnPg==" decoding="async" class="size-full wp-image-30655 aligncenter" data-src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wagtail-web-ssh-session.png" alt="python cms" width="684" height="222" data-srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wagtail-web-ssh-session.png 684w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wagtail-web-ssh-session-300x97.png 300w" data-sizes="(max-width: 684px) 100vw, 684px" /><noscript><img decoding="async" class="size-full wp-image-30655 aligncenter" src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wagtail-web-ssh-session.png" alt="python cms" width="684" height="222" srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wagtail-web-ssh-session.png 684w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wagtail-web-ssh-session-300x97.png 300w" sizes="(max-width: 684px) 100vw, 684px" /></noscript></span></i></p><p><span style="font-weight: 400;">3. Now, download the Wagtail CMS installer using the </span><b><i>pip</i></b><span style="font-weight: 400;"> package manager for Python:</span></p><p style="text-align: justify;"><i><span style="font-weight: 400;">pip install wagtail<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5MDIiIGhlaWdodD0iMTk5IiB2aWV3Qm94PSIwIDAgOTAyIDE5OSI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0iI2ZmZmZmZiIvPjwvc3ZnPg==" decoding="async" class="size-full wp-image-30633 aligncenter" data-src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/pip-package-manager-for-python.png" alt="wagtail postgresql" width="902" height="199" data-srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/pip-package-manager-for-python.png 902w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/pip-package-manager-for-python-300x66.png 300w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/pip-package-manager-for-python-768x169.png 768w" data-sizes="(max-width: 902px) 100vw, 902px" /><noscript><img decoding="async" class="size-full wp-image-30633 aligncenter" src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/pip-package-manager-for-python.png" alt="wagtail postgresql" width="902" height="199" srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/pip-package-manager-for-python.png 902w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/pip-package-manager-for-python-300x66.png 300w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/pip-package-manager-for-python-768x169.png 768w" sizes="(max-width: 902px) 100vw, 902px" /></noscript></span></i></p><div style="border: 1px solid rgba(170, 170, 170, 0.431373); border-radius: 4px; padding: 10px; margin: 5px 0px 10px; color: #222222; text-align: justify; background-color: #ffffff;"><b>Note:</b><span style="font-weight: 400;"> If running the </span><b><i>Python 2.7</i></b><span style="font-weight: 400;"> instance, you need to specify the appropriate application version in your command explicitly, i.e. </span><i><span style="font-weight: 400;">pip install wagtail==1.13</span></i><span style="font-weight: 400;">.</span></div><p><span style="font-weight: 400;">4. We are going to install the application to the </span><b>ROOT</b><span style="font-weight: 400;"> context, so the existing folder (with the default application) should be removed beforehand:</span></p><p style="text-align: justify;"><i><span style="font-weight: 400;">rm -rf ROOT</span></i></p><p style="text-align: justify;"><i><span style="font-weight: 400;">wagtail start ROOT<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3ODUiIGhlaWdodD0iMjA5IiB2aWV3Qm94PSIwIDAgNzg1IDIwOSI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0iI2ZmZmZmZiIvPjwvc3ZnPg==" decoding="async" class="size-full wp-image-30653 aligncenter" data-src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wagtail-start-root.png" alt="python hosting" width="785" height="209" /><noscript><img decoding="async" class="size-full wp-image-30653 aligncenter" src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wagtail-start-root.png" alt="python hosting" width="785" height="209" /></noscript></span></i></p><p style="text-align: justify;"><span style="font-weight: 400;">Next, you need to choose and configure a database.</span></p><h3 style="text-align: justify;"><span style="font-weight: 400;">Configure Database</span></h3><p style="text-align: justify;"><span style="font-weight: 400;">As all the Django-based applications, Wagtail CMS supports different types of databases:</span></p><ul style="text-align: justify;"><li style="font-weight: 400;"><b><i>SQLite</i></b><span style="font-weight: 400;"> is a default option, which does not require any additional configurations (data will be stored locally in </span><b><i>~/ROOT/db.sqlite3</i></b><span style="font-weight: 400;">); being fast, simple and light-weight, it is great for </span><i><span style="font-weight: 400;">development</span></i><span style="font-weight: 400;"> and </span><i><span style="font-weight: 400;">testing</span></i><span style="font-weight: 400;"> purposes</span></li><li style="font-weight: 400;"><b><i>external database</i></b><span style="font-weight: 400;"> (e.g. </span><i><span style="font-weight: 400;">MySQL</span></i><span style="font-weight: 400;"> or </span><i><span style="font-weight: 400;">PostgreSQL</span></i><span style="font-weight: 400;">) is a more suitable solution for the </span><i><span style="font-weight: 400;">production</span></i><span style="font-weight: 400;"> environment; it ensures a sufficient level of security and scalability</span></li></ul><p style="text-align: justify;"><span style="font-weight: 400;">Below, we鈥檒l provide a step-by-step guide on connecting the external database to your Wagtail CMS application. Herewith, if the first option is sufficient for your purposes, skip this section and proceed to the next </span><a href="https://accounts.google.com/ServiceLogin?service=wise&passive=1209600&continue=https://docs.google.com/document/d/1JoNYnK6HiHcVCDZzwOc3PKu9SNkTV5x8PgloGaJhbgk/edit&followup=https://docs.google.com/document/d/1JoNYnK6HiHcVCDZzwOc3PKu9SNkTV5x8PgloGaJhbgk/edit&ltmpl=docs#heading=h.cktfsegdcvvh" target="_blank" rel="noopener noreferrer"><b>Run Wagtail CMS</b></a><span style="font-weight: 400;"> one.</span></p><p><span style="font-weight: 400;">1. Create the desired database instance. For example, use the </span><b>Change Environment Topology</b><span style="font-weight: 400;"> button to add the </span><b>MariaDB</b><span style="font-weight: 400;"> server to your environment with the Wagtail CMS installed.<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5NzYiIGhlaWdodD0iNjA1IiB2aWV3Qm94PSIwIDAgOTc2IDYwNSI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0iI2ZmZmZmZiIvPjwvc3ZnPg==" decoding="async" class="size-full wp-image-30615 aligncenter" data-src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/add-mariadb-to-the-environment.png" alt="wagtail hosting" width="976" height="605" data-srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/add-mariadb-to-the-environment.png 976w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/add-mariadb-to-the-environment-300x186.png 300w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/add-mariadb-to-the-environment-768x476.png 768w" data-sizes="(max-width: 976px) 100vw, 976px" /><noscript><img decoding="async" class="size-full wp-image-30615 aligncenter" src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/add-mariadb-to-the-environment.png" alt="wagtail hosting" width="976" height="605" srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/add-mariadb-to-the-environment.png 976w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/add-mariadb-to-the-environment-300x186.png 300w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/add-mariadb-to-the-environment-768x476.png 768w" sizes="(max-width: 976px) 100vw, 976px" /></noscript></span><br /> <span style="font-weight: 400;">2. Open the database admin panel and log in with credentials from the appropriate email (automatically sent after DB node creation).<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2NDMiIGhlaWdodD0iMzE0IiB2aWV3Qm94PSIwIDAgNjQzIDMxNCI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0iI2ZmZmZmZiIvPjwvc3ZnPg==" decoding="async" class="size-full wp-image-30625 aligncenter" data-src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/mariadb-admin-panel.png" alt="cloud cms" width="643" height="314" data-srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/mariadb-admin-panel.png 643w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/mariadb-admin-panel-300x147.png 300w" data-sizes="(max-width: 643px) 100vw, 643px" /><noscript><img decoding="async" class="size-full wp-image-30625 aligncenter" src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/mariadb-admin-panel.png" alt="cloud cms" width="643" height="314" srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/mariadb-admin-panel.png 643w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/mariadb-admin-panel-300x147.png 300w" sizes="(max-width: 643px) 100vw, 643px" /></noscript></span><br /> <span style="font-weight: 400;">3. Navigate to the </span><b>User accounts</b><span style="font-weight: 400;"> tab to create a user for accessing the Wagtail CMS database by clicking the </span><i><span style="font-weight: 400;">Add user account</span></i><span style="font-weight: 400;"> link.<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2NzEiIGhlaWdodD0iNDQ3IiB2aWV3Qm94PSIwIDAgNjcxIDQ0NyI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0iI2ZmZmZmZiIvPjwvc3ZnPg==" decoding="async" class="size-full wp-image-30643 aligncenter" data-src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/user-accounts-overview-1.png" alt="django-based application" width="671" height="447" data-srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/user-accounts-overview-1.png 671w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/user-accounts-overview-1-300x200.png 300w" data-sizes="(max-width: 671px) 100vw, 671px" /><noscript><img decoding="async" class="size-full wp-image-30643 aligncenter" src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/user-accounts-overview-1.png" alt="django-based application" width="671" height="447" srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/user-accounts-overview-1.png 671w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/user-accounts-overview-1-300x200.png 300w" sizes="(max-width: 671px) 100vw, 671px" /></noscript></span><br /> <span style="font-weight: 400;">4. Within the opened frame, specify the </span><i><span style="font-weight: 400;">User name</span></i><span style="font-weight: 400;">/</span><i><span style="font-weight: 400;">Password</span></i><span style="font-weight: 400;"> and tick the </span><i><span style="font-weight: 400;">Create database with same name and grant all privileges</span></i><span style="font-weight: 400;"> checkbox.<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2OTAiIGhlaWdodD0iNDk3IiB2aWV3Qm94PSIwIDAgNjkwIDQ5NyI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0iI2ZmZmZmZiIvPjwvc3ZnPg==" decoding="async" class="size-full wp-image-30617 aligncenter" data-src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/create-new-database.png" alt="wagtail cms tutorial" width="690" height="497" data-srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/create-new-database.png 690w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/create-new-database-300x216.png 300w" data-sizes="(max-width: 690px) 100vw, 690px" /><noscript><img decoding="async" class="size-full wp-image-30617 aligncenter" src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/create-new-database.png" alt="wagtail cms tutorial" width="690" height="497" srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/create-new-database.png 690w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/create-new-database-300x216.png 300w" sizes="(max-width: 690px) 100vw, 690px" /></noscript></span></p><p style="text-align: justify;"><span style="font-weight: 400;">Click </span><b>Go</b><span style="font-weight: 400;"> at the bottom of the page.</span></p><p><span style="font-weight: 400;">5. Return to the dashboard and open the </span><b><i>/var/www/webroot/ROOT/ROOT/settings/base.py</i></b><span style="font-weight: 400;"> file. Locate the </span><b><i>DATABASES</i></b><span style="font-weight: 400;"> section and add DB access credentials within the same section (as it is shown below):</span><br /><pre class = 'prettyprint'><br /> DATABASES = {<br /> 'default': {<br /> 'ENGINE': 'django.db.backends.mysql',<br /> 'NAME': 'wagtail',<br /> 'USER': 'wagtail',<br /> 'PASSWORD': 'passw0rd',<br /> 'HOST': 'node22551-wagtail.jelastic.com',<br /> 'PORT': '3306',<br /> }<br /> }<br /> </pre><br /> <img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2NTciIGhlaWdodD0iMjk1IiB2aWV3Qm94PSIwIDAgNjU3IDI5NSI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0iI2ZmZmZmZiIvPjwvc3ZnPg==" decoding="async" class="size-full wp-image-30621 aligncenter" data-src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/database-settings.png" alt="python hosting" width="657" height="295" data-srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/database-settings.png 657w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/database-settings-300x135.png 300w" data-sizes="(max-width: 657px) 100vw, 657px" /><noscript><img decoding="async" class="size-full wp-image-30621 aligncenter" src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/database-settings.png" alt="python hosting" width="657" height="295" srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/database-settings.png 657w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/database-settings-300x135.png 300w" sizes="(max-width: 657px) 100vw, 657px" /></noscript></span></i></p><p style="text-align: justify;"><span style="font-weight: 400;">Here:</span></p><ul style="text-align: justify;"><li style="font-weight: 400;"><b>ENGINE</b><span style="font-weight: 400;"> - change to the </span><i><span style="font-weight: 400;">django.db.backends.mysql</span></i><span style="font-weight: 400;"> value</span></li></ul><div style="border: 1px solid rgba(170, 170, 170, 0.431373); border-radius: 4px; padding: 10px; margin: 5px 0px 10px; color: #222222; text-align: justify; background-color: #ffffff;"><b>Note:</b><span style="font-weight: 400;"> For the </span><b>PostgreSQL</b><span style="font-weight: 400;"> database, use the 聽</span><i><span style="font-weight: 400;">django.db.backends.postgresql_psycopg2</span></i><span style="font-weight: 400;"> value.</span></div><ul style="text-align: justify;"><li style="font-weight: 400;"><b>NAME</b><span style="font-weight: 400;">, </span><b>USER</b><span style="font-weight: 400;">, </span><b>PASSWORD</b><span style="font-weight: 400;"> - provide the data on the DB and account created in the previous step</span></li><li style="font-weight: 400;"><b>HOST</b><span style="font-weight: 400;"> - get the value from the appropriate email</span></li><li style="font-weight: 400;"><b>PORT</b><span style="font-weight: 400;"> - set the default </span><i><span style="font-weight: 400;">3306</span></i><span style="font-weight: 400;"> port (or </span><i><span style="font-weight: 400;">5432</span></i><span style="font-weight: 400;"> for </span><b>PostgreSQL</b><span style="font-weight: 400;">)</span></li></ul><p style="text-align: justify;"><span style="font-weight: 400;">Don鈥檛 forget to </span><b>Save</b><span style="font-weight: 400;"> changes.</span></p><p><span style="font-weight: 400;">6. Lastly, install the MySQL connector for Python via Web SSH (from the </span><b><i>~/ROOT</i></b><span style="font-weight: 400;"> folder):</span></p><p style="text-align: justify;"><i><span style="font-weight: 400;">pip install mysqlclient<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3ODUiIGhlaWdodD0iMzAzIiB2aWV3Qm94PSIwIDAgNzg1IDMwMyI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0iI2ZmZmZmZiIvPjwvc3ZnPg==" decoding="async" class="size-full wp-image-30631 aligncenter" data-src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/pip-install-mysqlclient-1.png" alt="wagtail" width="785" height="303" data-srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/pip-install-mysqlclient-1.png 785w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/pip-install-mysqlclient-1-300x116.png 300w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/pip-install-mysqlclient-1-768x296.png 768w" data-sizes="(max-width: 785px) 100vw, 785px" /><noscript><img decoding="async" class="size-full wp-image-30631 aligncenter" src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/pip-install-mysqlclient-1.png" alt="wagtail" width="785" height="303" srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/pip-install-mysqlclient-1.png 785w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/pip-install-mysqlclient-1-300x116.png 300w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/pip-install-mysqlclient-1-768x296.png 768w" sizes="(max-width: 785px) 100vw, 785px" /></noscript></span></i></p><div style="border: 1px solid rgba(170, 170, 170, 0.431373); border-radius: 4px; padding: 10px; margin: 5px 0px 10px; color: #222222; text-align: justify; background-color: #ffffff;"> <b>Note:</b><span style="font-weight: 400;"> To install the Python connector for the </span><b><i>PostgreSQL</i></b><span style="font-weight: 400;"> database, get the </span><i><span style="font-weight: 400;">psycopg2</span></i><span style="font-weight: 400;"> module using </span><b><i>pip</i></b><span style="font-weight: 400;">:</span><i><span style="font-weight: 400;">PATH=$PATH:/usr/pgsql-9.6/bin/ pip install psycopg2</span></i><br /> <span style="font-weight: 400;">If needed, modify the </span><b><i>pgsql-9.6</i></b><span style="font-weight: 400;"> part according to the used version of the PostgreSQL server.</span></div><h3 style="text-align: justify;"><span style="font-weight: 400;">Run Wagtail CMS</span></h3><p style="text-align: justify;"><span style="font-weight: 400;">After your DB is prepared, you need to create the application database schema.</span></p><p><span style="font-weight: 400;">1. Enter the </span><b>~/ROOT</b><span style="font-weight: 400;"> folder and run the </span><b><i>manage.py</i></b><span style="font-weight: 400;"> script.</span></p><p style="text-align: justify;"><i><span style="font-weight: 400;">cd ROOT</span></i></p><p style="text-align: justify;"><i><span style="font-weight: 400;">python manage.py migrate<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MDIiIGhlaWdodD0iMjg5IiB2aWV3Qm94PSIwIDAgODAyIDI4OSI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0iI2ZmZmZmZiIvPjwvc3ZnPg==" decoding="async" class="size-full wp-image-30637 aligncenter" data-src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/python-manage.py-migrate.png" alt="wagrail sqlite" width="802" height="289" data-srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/python-manage.py-migrate.png 802w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/python-manage.py-migrate-300x108.png 300w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/python-manage.py-migrate-768x277.png 768w" data-sizes="(max-width: 802px) 100vw, 802px" /><noscript><img decoding="async" class="size-full wp-image-30637 aligncenter" src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/python-manage.py-migrate.png" alt="wagrail sqlite" width="802" height="289" srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/python-manage.py-migrate.png 802w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/python-manage.py-migrate-300x108.png 300w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/python-manage.py-migrate-768x277.png 768w" sizes="(max-width: 802px) 100vw, 802px" /></noscript></span></i></p><p><span style="font-weight: 400;">2. Next, set the admin credentials for the Wagtail CMS control panel:</span></p><p style="text-align: justify;"><i><span style="font-weight: 400;">python manage.py createsuperuser<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3MjMiIGhlaWdodD0iMjM4IiB2aWV3Qm94PSIwIDAgNzIzIDIzOCI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0iI2ZmZmZmZiIvPjwvc3ZnPg==" decoding="async" class="size-full wp-image-30645 aligncenter" data-src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wagtail-cms-control-panel.png" alt="deploy wagtail python" width="723" height="238" data-srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wagtail-cms-control-panel.png 723w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wagtail-cms-control-panel-300x99.png 300w" data-sizes="(max-width: 723px) 100vw, 723px" /><noscript><img decoding="async" class="size-full wp-image-30645 aligncenter" src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wagtail-cms-control-panel.png" alt="deploy wagtail python" width="723" height="238" srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wagtail-cms-control-panel.png 723w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wagtail-cms-control-panel-300x99.png 300w" sizes="(max-width: 723px) 100vw, 723px" /></noscript></span></i></p><p style="text-align: justify;"><span style="font-weight: 400;">In the dialog, you need to provide the </span><i><span style="font-weight: 400;">Username</span></i><span style="font-weight: 400;">, </span><i><span style="font-weight: 400;">Email address</span></i><span style="font-weight: 400;"> and </span><i><span style="font-weight: 400;">Password</span></i><span style="font-weight: 400;"> with confirmation.</span></p><p style="text-align: justify;"><span style="font-weight: 400;">3. To run the application we are using </span><b><i>mod_wsgi</i></b><span style="font-weight: 400;">, so the </span><i><span style="font-weight: 400;">wsgi</span></i><span style="font-weight: 400;"> handler should be created.</span></p><p style="text-align: justify;"><span style="font-weight: 400;">Enter the </span><b>/var/www/webroot/ROOT</b><span style="font-weight: 400;"> directory and create the </span><b><i>wsgi.py</i></b><span style="font-weight: 400;"> file with the following content there:</span></p><p><pre class = 'prettyprint'><br /> import os,sys<br /> virtenv = os.path.expanduser('~') + '/virtenv/'<br /> virtualenv = os.path.join(virtenv, 'bin/activate_this.py')<br /> try:<br /> if sys.version.split(' ')[0].split('.')[0] == '3':<br /> exec(compile(open(virtualenv, "rb").read(), virtualenv, 'exec'), dict(__file__=virtualenv))<br /> else:<br /> execfile(virtualenv, dict(__file__=virtualenv))<br /> except IOError:<br /> pass<br /> sys.path.append(os.path.expanduser('~'))<br /> sys.path.append(os.path.expanduser('~') + '/ROOT/')<br /> sys.path.append(os.path.expanduser('~') + '/ROOT/ROOT/')<br /> os.environ['DJANGO_SETTINGS_MODULE'] = 'ROOT.settings.dev'<br /> from django.core.wsgi import get_wsgi_application<br /> application = get_wsgi_application()<br /> </pre><br /> <img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MDciIGhlaWdodD0iMjI2IiB2aWV3Qm94PSIwIDAgNjA3IDIyNiI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0iI2ZmZmZmZiIvPjwvc3ZnPg==" decoding="async" class="size-full wp-image-30663 aligncenter" data-src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wsgi-application.png" alt="wagtail" width="607" height="226" data-srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wsgi-application.png 607w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wsgi-application-300x112.png 300w" data-sizes="(max-width: 607px) 100vw, 607px" /><noscript><img decoding="async" class="size-full wp-image-30663 aligncenter" src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wsgi-application.png" alt="wagtail" width="607" height="226" srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wsgi-application.png 607w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/wsgi-application-300x112.png 300w" sizes="(max-width: 607px) 100vw, 607px" /></noscript></span></i></p><p style="text-align: justify;"><b>Save</b><span style="font-weight: 400;"> the newly created file.</span></p><p><span style="font-weight: 400;">4. Also, as we want to serve static content by our Apache Python server, we need to collect such content (run from the </span><b>~/ROOT</b><span style="font-weight: 400;"> folder):</span></p><p style="text-align: justify;"><i><span style="font-weight: 400;">python manage.py collectstatic<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MDIiIGhlaWdodD0iMjYyIiB2aWV3Qm94PSIwIDAgODAyIDI2MiI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0iI2ZmZmZmZiIvPjwvc3ZnPg==" decoding="async" class="size-full wp-image-30639 aligncenter" data-src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/serve-apache-python.png" alt="python application deployment" width="802" height="262" data-srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/serve-apache-python.png 802w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/serve-apache-python-300x98.png 300w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/serve-apache-python-768x251.png 768w" data-sizes="(max-width: 802px) 100vw, 802px" /><noscript><img decoding="async" class="size-full wp-image-30639 aligncenter" src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/serve-apache-python.png" alt="python application deployment" width="802" height="262" srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/serve-apache-python.png 802w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/serve-apache-python-300x98.png 300w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/serve-apache-python-768x251.png 768w" sizes="(max-width: 802px) 100vw, 802px" /></noscript></span></i></p><p style="text-align: justify;"><span style="font-weight: 400;">After performing this action, all the static content of the current application is stored in the </span><b>~/ROOT/static</b><span style="font-weight: 400;"> directory.</span></p><p><span style="font-weight: 400;">5. That鈥檚 all! Now, you can click the </span><b>Open in Browser</b><span style="font-weight: 400;"> button next to your environment with Wagtail CMS.<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4NTIiIGhlaWdodD0iMTgzIiB2aWV3Qm94PSIwIDAgODUyIDE4MyI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0iI2ZmZmZmZiIvPjwvc3ZnPg==" decoding="async" class="size-full wp-image-30627 aligncenter" data-src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/open-wagtail-cms-in-browser.png" alt="django framework" width="852" height="183" data-srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/open-wagtail-cms-in-browser.png 852w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/open-wagtail-cms-in-browser-300x64.png 300w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/open-wagtail-cms-in-browser-768x165.png 768w" data-sizes="(max-width: 852px) 100vw, 852px" /><noscript><img decoding="async" class="size-full wp-image-30627 aligncenter" src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/open-wagtail-cms-in-browser.png" alt="django framework" width="852" height="183" srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/open-wagtail-cms-in-browser.png 852w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/open-wagtail-cms-in-browser-300x64.png 300w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/open-wagtail-cms-in-browser-768x165.png 768w" sizes="(max-width: 852px) 100vw, 852px" /></noscript></span><br /> <span style="font-weight: 400;">6. As a result, you will see the application鈥檚 welcome page.<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3NjkiIGhlaWdodD0iMTIzIiB2aWV3Qm94PSIwIDAgNzY5IDEyMyI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0iI2ZmZmZmZiIvPjwvc3ZnPg==" decoding="async" class="size-full wp-image-30661 aligncenter" data-src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/welcome-to-wagtail-site.png" alt="django" width="769" height="123" data-srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/welcome-to-wagtail-site.png 769w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/welcome-to-wagtail-site-300x48.png 300w" data-sizes="(max-width: 769px) 100vw, 769px" /><noscript><img decoding="async" class="size-full wp-image-30661 aligncenter" src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/welcome-to-wagtail-site.png" alt="django" width="769" height="123" srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/welcome-to-wagtail-site.png 769w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/welcome-to-wagtail-site-300x48.png 300w" sizes="(max-width: 769px) 100vw, 769px" /></noscript></span></p><p style="text-align: justify;"><span style="font-weight: 400;">Click the </span><b><i>here</i></b><span style="font-weight: 400;"> hyperlink to access the admin panel.</span></p><p><span style="font-weight: 400;">7. Log in using the credentials specified during the installation process.<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3OTkiIGhlaWdodD0iMzgxIiB2aWV3Qm94PSIwIDAgNzk5IDM4MSI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0iI2ZmZmZmZiIvPjwvc3ZnPg==" decoding="async" class="size-full wp-image-30641 aligncenter" data-src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/sign-in-to-wagtail.png" alt="django-based cms" width="799" height="381" data-srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/sign-in-to-wagtail.png 799w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/sign-in-to-wagtail-300x143.png 300w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/sign-in-to-wagtail-768x366.png 768w" data-sizes="(max-width: 799px) 100vw, 799px" /><noscript><img decoding="async" class="size-full wp-image-30641 aligncenter" src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/sign-in-to-wagtail.png" alt="django-based cms" width="799" height="381" srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/sign-in-to-wagtail.png 799w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/sign-in-to-wagtail-300x143.png 300w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/sign-in-to-wagtail-768x366.png 768w" sizes="(max-width: 799px) 100vw, 799px" /></noscript></span></p><p style="text-align: justify;"><span style="font-weight: 400;">Now, you can use the functionality of the admin panel to create pages and fill them with the content.<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4OTMiIGhlaWdodD0iMzMzIiB2aWV3Qm94PSIwIDAgODkzIDMzMyI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0iI2ZmZmZmZiIvPjwvc3ZnPg==" decoding="async" class="size-full wp-image-30659 aligncenter" data-src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/welcome-to-wagtail-cms.png" alt="django framework" width="893" height="333" data-srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/welcome-to-wagtail-cms.png 893w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/welcome-to-wagtail-cms-300x112.png 300w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/welcome-to-wagtail-cms-768x286.png 768w" data-sizes="(max-width: 893px) 100vw, 893px" /><noscript><img decoding="async" class="size-full wp-image-30659 aligncenter" src="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/welcome-to-wagtail-cms.png" alt="django framework" width="893" height="333" srcset="https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/welcome-to-wagtail-cms.png 893w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/welcome-to-wagtail-cms-300x112.png 300w, https://www.virtuozzo.com/company/blog/wp-content/uploads/2018/10/welcome-to-wagtail-cms-768x286.png 768w" sizes="(max-width: 893px) 100vw, 893px" /></noscript></span></p><p style="text-align: justify;"><span style="font-weight: 400;">Jelastic provides you with great possibilities in deploying and serving Django-based Python applications such as Wagtail CMS. Get started easily at </span><a href="https://jelastic.cloud/?utm_source=wagtail-cms"><span style="font-weight: 400;">jelastic.cloud</span></a></p></div><div class="single-subscribe subscribe-block"> <iframe data-lazyloaded="1" src="about:blank" style="border: 0;" data-src="https://go.virtuozzo.com/l/148051/2021-11-17/5wd498" width="100%" height="400" frameborder="0"></iframe><noscript><iframe style="border: 0;" src="https://go.virtuozzo.com/l/148051/2021-11-17/5wd498" width="100%" height="400" frameborder="0"></iframe></noscript></div></div><div class="sidebar-wrap col-lg-3 col-md-6"><div class="sticky-el"> <a href="/newsletter-subscription/" class="btn">Subscribe</a><form role="search" method="get" class="search-form" action="https://www.virtuozzo.com/company/blog/"> <label for="search-field" class="sr-only">Search</label> <input id="search-field" type="text" class="search-field" placeholder="Search" value="" name="s" title="Search for:"/> <input type="submit" class="search-submit" value="Search"/></form><h2 class="widget-title">Categories</h2><ul><li><a href="/company/blog/category/iaas/">IaaS</a></li><li><a href="/company/blog/category/devops-paas/">DevOps PaaS</a></li><li><a href="/company/blog/category/wordpress/">WordPress</a></li><li><a href="/company/blog/category/kubernetes/">Kubernetes</a></li><li><a href="/company/blog/category/storage/">Storage</a></li><li><a href="/company/blog/category/multi-cloud/">Multi-Cloud</a></li><li><a href="/company/blog/category/video/webinars/">Webinars</a></li><li><a href="/company/blog/category/case-studies/">Case Studies</a></li><li><a href="/company/blog/category/product-updates/">Product Updates</a></li><li><a href="/company/blog/category/news/">News</a></li></ul></div></div></div></div><div id="static-footer"><div id="static-footer-top"><div class="static-footer-menu"><h5>Products</h5><ul><li> <a href="https://www.virtuozzo.com/hybrid-cloud/">Hybrid Cloud</a></li><li> <a href="https://www.virtuozzo.com/hybrid-infrastructure/">Hybrid Infrastructure</a></li><li> <a href="https://www.virtuozzo.com/application-platform/">Application Platform</a></li><li> <a href="https://www.virtuozzo.com/hybrid-server/">Hybrid Server</a></li></ul></div><div class="static-footer-menu"><h5>Solutions</h5><ul><li> <a href="https://www.virtuozzo.com/vmware-alternative/">VMware Alternative</a></li><li> <a href="https://www.virtuozzo.com/application-platform/">Platform as a Service</a></li><li> <a href="https://www.virtuozzo.com/kubernetes-hosting/">Kubernetes Orchestration</a></li><li> <a href="https://www.virtuozzo.com/database-as-a-service/">Database Management</a></li><li> <a href="https://www.virtuozzo.com/high-performance-storage/">High-Performance Storage</a></li><li> <a href="https://www.virtuozzo.com/multi-cloud-platform/">Multi-Cloud</a></li></ul></div><div class="static-footer-menu"><h5>Partners</h5><ul><li> <a href="https://www.virtuozzo.com/application-platform-partners/">PaaS Providers</a></li><li> <a href="https://www.virtuozzo.com/iaas-providers/">IaaS Providers</a></li><li> <a href="https://www.virtuozzo.com/technology-partnerships/">Technology Partners</a></li><li> <a href="https://www.virtuozzo.com/resellers/">Resellers</a></li><li> <a href="https://www.virtuozzo.com/distributors/">Distributors</a></li><li> <a href="https://www.virtuozzo.com/partners/">Become a Partner</a></li></ul></div><div class="static-footer-menu"><h5>Support</h5><ul><li> <a href="https://www.virtuozzo.com/documentation/">Documentation</a></li><li> <a href="https://www.virtuozzo.com/all-supported-products/">Product Support</a></li><li> <a href="https://www.virtuozzo.com/professional-services/">Professional Services</a></li><li> <a href="https://www.virtuozzo.com/product-updates/">Product Updates</a></li><li> <a href="https://www.virtuozzo.com/resources/videos/">Video</a></li></ul></div><div class="static-footer-menu"><h5>Company</h5><ul><li> <a href="https://www.virtuozzo.com/company/about/">About</a></li><li> <a href="https://www.virtuozzo.com/company/leadership/">Leadership</a></li><li> <a href="https://www.virtuozzo.com/resources/#case-studies">Case studies</a></li><li> <a href="https://www.virtuozzo.com/company/blog/">Blog</a></li><li> <a href="https://www.virtuozzo.com/company/events/">Events</a></li><li> <a href="https://www.virtuozzo.com/company/contact/">Contact</a></li></ul></div></div><div id="static-footer-bottom"><div class="static-footer-bottom-top"> <img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MDAiIGhlaWdodD0iMTA4IiB2aWV3Qm94PSIwIDAgNjAwIDEwOCI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0iI2ZmZmZmZiIvPjwvc3ZnPg==" data-src="https://www.virtuozzo.com/wp-content/uploads/2021/02/virtuozzo-logo-white.svg" alt="Virtuozzo logo" width="600" height="108"><noscript><img src="https://www.virtuozzo.com/wp-content/uploads/2021/02/virtuozzo-logo-white.svg" alt="Virtuozzo logo" width="600" height="108"></noscript><ul class="static-footer-social"><li> <a href="https://www.linkedin.com/company/virtuozzo" target="_blank"> <img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNSIgaGVpZ2h0PSIzNSIgdmlld0JveD0iMCAwIDM1IDM1Ij48cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmZmZmIi8+PC9zdmc+" data-src="https://www.virtuozzo.com/wp-content/themes/virtuozzo-child/assets/img/linkedin.svg" alt="linkedin" width="35" height="35"><noscript><img src="https://www.virtuozzo.com/wp-content/themes/virtuozzo-child/assets/img/linkedin.svg" alt="linkedin" width="35" height="35"></noscript> </a></li><li> <a href="https://twitter.com/virtuozzoinc" target="_blank"> <img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNCIgaGVpZ2h0PSIzNSIgdmlld0JveD0iMCAwIDM0IDM1Ij48cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmZmZmIi8+PC9zdmc+" data-src="https://www.virtuozzo.com/wp-content/themes/virtuozzo-child/assets/img/twitter.svg" alt="twitter" width="34" height="35"><noscript><img src="https://www.virtuozzo.com/wp-content/themes/virtuozzo-child/assets/img/twitter.svg" alt="twitter" width="34" height="35"></noscript> </a></li><li> <a href="https://www.facebook.com/VirtuozzoInc/" target="_blank"> <img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNCIgaGVpZ2h0PSIzNSIgdmlld0JveD0iMCAwIDM0IDM1Ij48cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmZmZmIi8+PC9zdmc+" data-src="https://www.virtuozzo.com/wp-content/themes/virtuozzo-child/assets/img/facebook.svg" alt="facebook" width="34" height="35"><noscript><img src="https://www.virtuozzo.com/wp-content/themes/virtuozzo-child/assets/img/facebook.svg" alt="facebook" width="34" height="35"></noscript> </a></li><li> <a href="https://www.youtube.com/channel/UCF1QeKAgIZ8ZQFaqUxPp87w" target="_blank"> <img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNSIgaGVpZ2h0PSIzNSIgdmlld0JveD0iMCAwIDM1IDM1Ij48cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmZmZmIi8+PC9zdmc+" data-src="https://www.virtuozzo.com/wp-content/themes/virtuozzo-child/assets/img/youtube.svg" alt="youtube" width="35" height="35"><noscript><img src="https://www.virtuozzo.com/wp-content/themes/virtuozzo-child/assets/img/youtube.svg" alt="youtube" width="35" height="35"></noscript> </a></li></ul></div><div class="static-footer-bottom-bottom"><p>漏 Virtuozzo. All rights reserved. | <a href="https://www.virtuozzo.com/legal/">Privacy & Legal</a></p></div></div></div><style>div#static-footer { background: #1E1D28; padding-top: 100px; } #static-footer-top, .static-footer-bottom-top, .static-footer-bottom-bottom { width: 1190px; margin: 0 auto; } #static-footer-top { display: flex; margin-bottom: 20px; flex-wrap: wrap; } .static-footer-menu h5 { font-size: 18px; color: #8A8A90; font-weight: 600; margin: 0 0 30px; text-transform: uppercase; letter-spacing: 1px; padding: 0; } .static-footer-menu { width: 20%; margin: 0 0 30px; padding: 0 15px; } .static-footer-menu ul { list-style: none; margin: 0; } .static-footer-menu ul a { color: #8A8A90; font-size: 14px; line-height: 140%; text-decoration: none !important; } .static-footer-menu ul li { margin: 0 0 15px; padding: 0; } .static-footer-menu ul a:hover { color: #fff; } #static-footer-bottom { border-top: 1px solid #ffffff10; padding: 30px 0; } #static-footer * { box-sizing: border-box; } .static-footer-bottom-top > img { width: 150px; margin: 0; } .static-footer-bottom-top { padding: 0 15px; display: flex; justify-content: space-between; } ul.static-footer-social { display: flex; list-style: none; margin: 0; padding: 0; } ul.static-footer-social img { display: block; margin: 0; } ul.static-footer-social li { margin: 0 0 0 7px; padding: 0; } ul.static-footer-social li:first-child { margin: 0; } .static-footer-bottom-bottom p { margin: 0; font-size: 14px; color: #8A8A90; } .static-footer-bottom-bottom a { color: #fff; } .static-footer-bottom-bottom { margin-top: 15px; padding: 0 15px; } @media (max-width: 1260px) { #static-footer-top, .static-footer-bottom-top, .static-footer-bottom-bottom { max-width: 94%; } } @media (max-width: 760px) { #static-footer-top, .static-footer-bottom-top, .static-footer-bottom-bottom { max-width: 90%; } .static-footer-menu { width: 33.3334567%; } } @media (max-width: 576px) { #static-footer-top, .static-footer-bottom-top, .static-footer-bottom-bottom { max-width: 100%; } .static-footer-menu { width: 100%; } .static-footer-bottom-top { flex-direction: column; } ul.static-footer-social { margin-top: 20px; } div#static-footer { padding-top: 50px; } #static-footer-top { margin-bottom: 0; } .static-footer-menu h5 { margin-bottom: 20px; } .static-footer-menu ul li { margin-bottom: 10px; } }</style><span id="to-top"></span></div><div id="modal-general" class="modal hide in"><div class="modal-body"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">脳</button><h3 class="title">Thanks for Request!</h3><p class="massage">Jelastic team will contact you within 24 hours.</p></div></div><div class="body-overlay"></div> <script type="text/javascript" id="jelastic-base-js-extra" src="data:text/javascript;base64,dmFyIEpWYXJzPXsiYWpheHVybCI6Imh0dHBzOlwvXC93d3cudmlydHVvenpvLmNvbVwvY29tcGFueVwvYmxvZ1wvd3AtYWRtaW5cL2FkbWluLWFqYXgucGhwIn0=" defer></script> <script type="text/javascript" src="https://www.virtuozzo.com/company/blog/wp-content/themes/salient/js/jelastic-base.min.js?ver=08112024" id="jelastic-base-js" defer data-deferred="1"></script> <script data-no-optimize="1">!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).LazyLoad=e()}(this,function(){"use strict";function e(){return(e=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,a=arguments[e];for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(t[n]=a[n])}return t}).apply(this,arguments)}function i(t){return e({},it,t)}function o(t,e){var n,a="LazyLoad::Initialized",i=new t(e);try{n=new CustomEvent(a,{detail:{instance:i}})}catch(t){(n=document.createEvent("CustomEvent")).initCustomEvent(a,!1,!1,{instance:i})}window.dispatchEvent(n)}function l(t,e){return t.getAttribute(gt+e)}function c(t){return l(t,bt)}function s(t,e){return function(t,e,n){e=gt+e;null!==n?t.setAttribute(e,n):t.removeAttribute(e)}(t,bt,e)}function r(t){return s(t,null),0}function u(t){return null===c(t)}function d(t){return c(t)===vt}function f(t,e,n,a){t&&(void 0===a?void 0===n?t(e):t(e,n):t(e,n,a))}function _(t,e){nt?t.classList.add(e):t.className+=(t.className?" ":"")+e}function v(t,e){nt?t.classList.remove(e):t.className=t.className.replace(new RegExp("(^|\\s+)"+e+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"")}function g(t){return t.llTempImage}function b(t,e){!e||(e=e._observer)&&e.unobserve(t)}function p(t,e){t&&(t.loadingCount+=e)}function h(t,e){t&&(t.toLoadCount=e)}function n(t){for(var e,n=[],a=0;e=t.children[a];a+=1)"SOURCE"===e.tagName&&n.push(e);return n}function m(t,e){(t=t.parentNode)&&"PICTURE"===t.tagName&&n(t).forEach(e)}function a(t,e){n(t).forEach(e)}function E(t){return!!t[st]}function I(t){return t[st]}function y(t){return delete t[st]}function A(e,t){var n;E(e)||(n={},t.forEach(function(t){n[t]=e.getAttribute(t)}),e[st]=n)}function k(a,t){var i;E(a)&&(i=I(a),t.forEach(function(t){var e,n;e=a,(t=i[n=t])?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(t,e,n){_(t,e.class_loading),s(t,ut),n&&(p(n,1),f(e.callback_loading,t,n))}function w(t,e,n){n&&t.setAttribute(e,n)}function x(t,e){w(t,ct,l(t,e.data_sizes)),w(t,rt,l(t,e.data_srcset)),w(t,ot,l(t,e.data_src))}function O(t,e,n){var a=l(t,e.data_bg_multi),i=l(t,e.data_bg_multi_hidpi);(a=at&&i?i:a)&&(t.style.backgroundImage=a,n=n,_(t=t,(e=e).class_applied),s(t,ft),n&&(e.unobserve_completed&&b(t,e),f(e.callback_applied,t,n)))}function N(t,e){!e||0<e.loadingCount||0<e.toLoadCount||f(t.callback_finish,e)}function C(t,e,n){t.addEventListener(e,n),t.llEvLisnrs[e]=n}function M(t){return!!t.llEvLisnrs}function z(t){if(M(t)){var e,n,a=t.llEvLisnrs;for(e in a){var i=a[e];n=e,i=i,t.removeEventListener(n,i)}delete t.llEvLisnrs}}function R(t,e,n){var a;delete t.llTempImage,p(n,-1),(a=n)&&--a.toLoadCount,v(t,e.class_loading),e.unobserve_completed&&b(t,n)}function T(o,r,c){var l=g(o)||o;M(l)||function(t,e,n){M(t)||(t.llEvLisnrs={});var a="VIDEO"===t.tagName?"loadeddata":"load";C(t,a,e),C(t,"error",n)}(l,function(t){var e,n,a,i;n=r,a=c,i=d(e=o),R(e,n,a),_(e,n.class_loaded),s(e,dt),f(n.callback_loaded,e,a),i||N(n,a),z(l)},function(t){var e,n,a,i;n=r,a=c,i=d(e=o),R(e,n,a),_(e,n.class_error),s(e,_t),f(n.callback_error,e,a),i||N(n,a),z(l)})}function G(t,e,n){var a,i,o,r,c;t.llTempImage=document.createElement("IMG"),T(t,e,n),E(c=t)||(c[st]={backgroundImage:c.style.backgroundImage}),o=n,r=l(a=t,(i=e).data_bg),c=l(a,i.data_bg_hidpi),(r=at&&c?c:r)&&(a.style.backgroundImage='url("'.concat(r,'")'),g(a).setAttribute(ot,r),L(a,i,o)),O(t,e,n)}function D(t,e,n){var a;T(t,e,n),a=e,e=n,(t=It[(n=t).tagName])&&(t(n,a),L(n,a,e))}function V(t,e,n){var a;a=t,(-1<yt.indexOf(a.tagName)?D:G)(t,e,n)}function F(t,e,n){var a;t.setAttribute("loading","lazy"),T(t,e,n),a=e,(e=It[(n=t).tagName])&&e(n,a),s(t,vt)}function j(t){t.removeAttribute(ot),t.removeAttribute(rt),t.removeAttribute(ct)}function P(t){m(t,function(t){k(t,Et)}),k(t,Et)}function S(t){var e;(e=At[t.tagName])?e(t):E(e=t)&&(t=I(e),e.style.backgroundImage=t.backgroundImage)}function U(t,e){var n;S(t),n=e,u(e=t)||d(e)||(v(e,n.class_entered),v(e,n.class_exited),v(e,n.class_applied),v(e,n.class_loading),v(e,n.class_loaded),v(e,n.class_error)),r(t),y(t)}function $(t,e,n,a){var i;n.cancel_on_exit&&(c(t)!==ut||"IMG"===t.tagName&&(z(t),m(i=t,function(t){j(t)}),j(i),P(t),v(t,n.class_loading),p(a,-1),r(t),f(n.callback_cancel,t,e,a)))}function q(t,e,n,a){var i,o,r=(o=t,0<=pt.indexOf(c(o)));s(t,"entered"),_(t,n.class_entered),v(t,n.class_exited),i=t,o=a,n.unobserve_entered&&b(i,o),f(n.callback_enter,t,e,a),r||V(t,n,a)}function H(t){return t.use_native&&"loading"in HTMLImageElement.prototype}function B(t,i,o){t.forEach(function(t){return(a=t).isIntersecting||0<a.intersectionRatio?q(t.target,t,i,o):(e=t.target,n=t,a=i,t=o,void(u(e)||(_(e,a.class_exited),$(e,n,a,t),f(a.callback_exit,e,n,t))));var e,n,a})}function J(e,n){var t;et&&!H(e)&&(n._observer=new IntersectionObserver(function(t){B(t,e,n)},{root:(t=e).container===document?null:t.container,rootMargin:t.thresholds||t.threshold+"px"}))}function K(t){return Array.prototype.slice.call(t)}function Q(t){return t.container.querySelectorAll(t.elements_selector)}function W(t){return c(t)===_t}function X(t,e){return e=t||Q(e),K(e).filter(u)}function Y(e,t){var n;(n=Q(e),K(n).filter(W)).forEach(function(t){v(t,e.class_error),r(t)}),t.update()}function t(t,e){var n,a,t=i(t);this._settings=t,this.loadingCount=0,J(t,this),n=t,a=this,Z&&window.addEventListener("online",function(){Y(n,a)}),this.update(e)}var Z="undefined"!=typeof window,tt=Z&&!("onscroll"in window)||"undefined"!=typeof navigator&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),et=Z&&"IntersectionObserver"in window,nt=Z&&"classList"in document.createElement("p"),at=Z&&1<window.devicePixelRatio,it={elements_selector:".lazy",container:tt||Z?document:null,threshold:300,thresholds:null,data_src:"src",data_srcset:"srcset",data_sizes:"sizes",data_bg:"bg",data_bg_hidpi:"bg-hidpi",data_bg_multi:"bg-multi",data_bg_multi_hidpi:"bg-multi-hidpi",data_poster:"poster",class_applied:"applied",class_loading:"litespeed-loading",class_loaded:"litespeed-loaded",class_error:"error",class_entered:"entered",class_exited:"exited",unobserve_completed:!0,unobserve_entered:!1,cancel_on_exit:!0,callback_enter:null,callback_exit:null,callback_applied:null,callback_loading:null,callback_loaded:null,callback_error:null,callback_finish:null,callback_cancel:null,use_native:!1},ot="src",rt="srcset",ct="sizes",lt="poster",st="llOriginalAttrs",ut="loading",dt="loaded",ft="applied",_t="error",vt="native",gt="data-",bt="ll-status",pt=[ut,dt,ft,_t],ht=[ot],mt=[ot,lt],Et=[ot,rt,ct],It={IMG:function(t,e){m(t,function(t){A(t,Et),x(t,e)}),A(t,Et),x(t,e)},IFRAME:function(t,e){A(t,ht),w(t,ot,l(t,e.data_src))},VIDEO:function(t,e){a(t,function(t){A(t,ht),w(t,ot,l(t,e.data_src))}),A(t,mt),w(t,lt,l(t,e.data_poster)),w(t,ot,l(t,e.data_src)),t.load()}},yt=["IMG","IFRAME","VIDEO"],At={IMG:P,IFRAME:function(t){k(t,ht)},VIDEO:function(t){a(t,function(t){k(t,ht)}),k(t,mt),t.load()}},kt=["IMG","IFRAME","VIDEO"];return t.prototype={update:function(t){var e,n,a,i=this._settings,o=X(t,i);{if(h(this,o.length),!tt&&et)return H(i)?(e=i,n=this,o.forEach(function(t){-1!==kt.indexOf(t.tagName)&&F(t,e,n)}),void h(n,0)):(t=this._observer,i=o,t.disconnect(),a=t,void i.forEach(function(t){a.observe(t)}));this.loadAll(o)}},destroy:function(){this._observer&&this._observer.disconnect(),Q(this._settings).forEach(function(t){y(t)}),delete this._observer,delete this._settings,delete this.loadingCount,delete this.toLoadCount},loadAll:function(t){var e=this,n=this._settings;X(t,n).forEach(function(t){b(t,e),V(t,n,e)})},restoreAll:function(){var e=this._settings;Q(e).forEach(function(t){U(t,e)})}},t.load=function(t,e){e=i(e);V(t,e)},t.resetStatus=function(t){r(t)},Z&&function(t,e){if(e)if(e.length)for(var n,a=0;n=e[a];a+=1)o(t,n);else o(t,e)}(t,window.lazyLoadOptions),t});!function(e,t){"use strict";function a(){t.body.classList.add("litespeed_lazyloaded")}function n(){console.log("[LiteSpeed] Start Lazy Load Images"),d=new LazyLoad({elements_selector:"[data-lazyloaded]",callback_finish:a}),o=function(){d.update()},e.MutationObserver&&new MutationObserver(o).observe(t.documentElement,{childList:!0,subtree:!0,attributes:!0})}var d,o;e.addEventListener?e.addEventListener("load",n,!1):e.attachEvent("onload",n)}(window,document);</script></body></html> <!-- Page optimized by LiteSpeed Cache @2024-11-27 03:32:58 --> <!-- Page cached by LiteSpeed Cache 6.5.2 on 2024-11-27 03:32:57 -->