Changes for page xwiki-upgrades
Last modified by Alex Cotiugă on 2026/05/12 12:41
From version 1.7
edited by Alex Cotiugă
on 2026/05/01 12:23
on 2026/05/01 12:23
Change comment:
There is no comment for this version
To version 2.4
edited by Alex Cotiugă
on 2026/05/12 12:40
on 2026/05/12 12:40
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Objects (0 modified, 0 added, 1 removed)
Details
- Page properties
-
- Content
-
... ... @@ -2,109 +2,293 @@ 2 2 #set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome')) 3 3 {{html clean="false"}} 4 4 5 - ## COMPACT SERVICE HEADER 6 - <section class="service-header" aria-labelledby="hero-title"> 7 - <div class="container service-header-grid"> 8 - <div class="service-header-main"> 9 - <p class="eyebrow">XWiki service</p> 10 - <h1 id="hero-title">XWiki Upgrades</h1> 11 - <p class="lead-left"> 12 - Safe, planned upgrades for production XWiki instances, with compatibility checks, 13 - rollback planning, and post-upgrade validation. 14 - </p> 15 - <ul class="inline-benefits"> 16 - <li>Latest LTS</li> 17 - <li>Security fixes</li> 18 - <li>Extension checks</li> 19 - <li>Minimal downtime</li> 20 - </ul> 5 + ## PAGE HEADER 6 + <section class="hero hero-centered service-hero" aria-labelledby="hero-title"> 7 + <div class="container hero-inner"> 8 + <div class="hero-kicker"> 9 + <i class="fa fa-refresh" aria-hidden="true"></i> 10 + XWiki upgrade services 21 21 </div> 22 22 23 - <aside class="service-aside"> 24 - <h3>Need an upgrade assessment?</h3> 25 - <p> 26 - Send your current XWiki version and a short description of your setup. 27 - Agnease will recommend the target version, estimated effort, and key risks to review. 28 - </p> 29 - <a class="service-cta" href="mailto:alex@agnease.com?subject=XWiki%20Upgrade%20Assessment"> 30 - Request an assessment 31 - </a> 32 - </aside> 13 + <h1 id="hero-title">Safe XWiki LTS upgrades for production environments</h1> 14 + 15 + <p class="lead"> 16 + Keep your XWiki instance secure, stable and compatible with a planned upgrade path, clear validation steps 17 + and reduced operational risk. 18 + </p> 19 + 20 + <p class="hero-support"> 21 + We help organizations upgrade XWiki instances that include custom extensions, authentication integrations, 22 + business-critical pages, workflows, scripts, rights configurations and production constraints. 23 + </p> 24 + 25 + <div class="hero-actions"> 26 + <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Request an upgrade review</a> 27 + <a class="btn btn-secondary" href="#upgrade-process">See the upgrade approach</a> 28 + </div> 33 33 </div> 34 34 </section> 35 35 36 - ## VALUE CARDS 37 - #set ($upgradeCards = [{ 38 - 'title': 'Stay secure', 39 - 'icon': 'shield', 40 - 'content': 'Reduce exposure to known vulnerabilities fixed in newer XWiki versions.' 41 - },{ 42 - 'title': 'Upgrade safely', 43 - 'icon': 'refresh', 44 - 'content': 'Plan the upgrade with backups, validation, rollback options, and minimal downtime.' 45 - },{ 46 - 'title': 'Avoid surprises', 47 - 'icon': 'puzzle-piece', 48 - 'content': 'Review extensions, custom code, authentication, PDF export, and infrastructure before production.' 49 - }]) 50 - 51 - <section class="compact-section" aria-labelledby="why-title"> 32 + ## WHY UPGRADES MATTER 33 + <section aria-labelledby="why-upgrade-title"> 52 52 <div class="container"> 53 - <h2 id="why-title">Keep your XWiki platform current and reliable</h2> 54 - <div class="widgets compact-widgets"> 55 - #foreach ($entry in $upgradeCards) 56 - <article class="widget"> 57 - <div class="icon" aria-hidden="true"> 58 - <i class="fa fa-$entry.icon"></i> 59 - <h4>$entry.title</h4> 60 - </div> 61 - <p>$entry.content</p> 62 - </article> 63 - #end 35 + <h2 id="why-upgrade-title">Why regular XWiki upgrades matter</h2> 36 + 37 + <p class="section-intro"> 38 + An outdated XWiki instance can become harder to maintain over time. Security fixes, browser compatibility, 39 + extension updates, platform changes and infrastructure requirements continue to evolve, while older versions 40 + become more difficult and risky to upgrade. 41 + </p> 42 + 43 + <div class="pathways"> 44 + <article class="pathway-card"> 45 + <div class="pathway-icon"> 46 + <i class="fa fa-shield" aria-hidden="true"></i> 47 + </div> 48 + <h3>Reduce security exposure</h3> 49 + <p> 50 + Staying close to supported XWiki versions helps reduce exposure to known vulnerabilities and missing fixes. 51 + </p> 52 + <ul> 53 + <li>Review current version exposure</li> 54 + <li>Plan upgrade to a supported version</li> 55 + <li>Validate security-sensitive features</li> 56 + </ul> 57 + </article> 58 + 59 + <article class="pathway-card"> 60 + <div class="pathway-icon"> 61 + <i class="fa fa-cogs" aria-hidden="true"></i> 62 + </div> 63 + <h3>Preserve compatibility</h3> 64 + <p> 65 + Extensions, custom applications, authentication systems and infrastructure components need to remain compatible. 66 + </p> 67 + <ul> 68 + <li>Check installed extensions</li> 69 + <li>Review custom code and scripts</li> 70 + <li>Validate integrations after upgrade</li> 71 + </ul> 72 + </article> 73 + 74 + <article class="pathway-card"> 75 + <div class="pathway-icon"> 76 + <i class="fa fa-line-chart" aria-hidden="true"></i> 77 + </div> 78 + <h3>Improve maintainability</h3> 79 + <p> 80 + Smaller, regular upgrades are usually easier to control than large jumps after years of accumulated changes. 81 + </p> 82 + <ul> 83 + <li>Avoid long upgrade gaps</li> 84 + <li>Document the current platform state</li> 85 + <li>Prepare future upgrade cycles</li> 86 + </ul> 87 + </article> 64 64 </div> 65 65 </div> 66 66 </section> 67 67 68 - ## TWOCOLUMN SUMMARY69 - <section class="services compact-section" aria-labelledby="summary-title">92 + ## COMMON SITUATIONS 93 + <section class="services" aria-labelledby="situations-title"> 70 70 <div class="container"> 71 - <h2 id="su mmary-title">UpgradesupportforrealXWikienvironments</h2>95 + <h2 id="situations-title">Common situations we handle</h2> 72 72 73 - <div class="services-grid compact-grid"> 97 + <p class="section-intro"> 98 + XWiki upgrades are often simple in clean environments, but production instances usually include additional 99 + constraints that need to be understood before touching the live system. 100 + </p> 101 + 102 + <div class="services-grid"> 74 74 <article class="service"> 75 - <div class="service-icon"> 76 - <i class="fa fa- exclamation-triangle"aria-hidden="true"></i>104 + <div class="service-icon" aria-hidden="true"> 105 + <i class="fa fa-clock-o"></i> 77 77 </div> 78 78 <div class="service-body"> 79 - <h4>When to consider an upgrade</h4> 80 - <ul> 81 - <li>Your instance is not on the latest suitable LTS version</li> 82 - <li>Your current version is more than one year old</li> 83 - <li>You use custom extensions, scripts, or workflows</li> 84 - <li>You rely on LDAP, SSO, OIDC, SAML, or MFA</li> 85 - <li>You want to reduce security and maintenance risk</li> 86 - </ul> 108 + <h4>Old XWiki versions</h4> 109 + <p> 110 + Instances that have not been upgraded for several months or years and require a careful upgrade path. 111 + </p> 87 87 </div> 88 88 </article> 89 89 90 90 <article class="service"> 91 - <div class="service-icon"> 92 - <i class="fa fa- check-square-o" aria-hidden="true"></i>116 + <div class="service-icon" aria-hidden="true"> 117 + <i class="fa fa-puzzle-piece"></i> 93 93 </div> 94 94 <div class="service-body"> 95 - <h4>What Agnease handles</h4> 96 - <ul> 97 - <li>Current version and environment review</li> 98 - <li>Recommended target version</li> 99 - <li>Extension and customization checks</li> 100 - <li>Backup, staging, and rollback planning</li> 101 - <li>Production upgrade and post-upgrade validation</li> 102 - </ul> 120 + <h4>Custom extensions and scripts</h4> 121 + <p> 122 + Wikis with custom applications, Velocity scripts, macros, UI extensions, rights logic or business workflows. 123 + </p> 103 103 </div> 104 104 </article> 126 + 127 + <article class="service"> 128 + <div class="service-icon" aria-hidden="true"> 129 + <i class="fa fa-lock"></i> 130 + </div> 131 + <div class="service-body"> 132 + <h4>Authentication integrations</h4> 133 + <p> 134 + LDAP, Active Directory, SSO, OIDC, SAML, MFA or custom login setups that must keep working after upgrade. 135 + </p> 136 + </div> 137 + </article> 138 + 139 + <article class="service"> 140 + <div class="service-icon" aria-hidden="true"> 141 + <i class="fa fa-server"></i> 142 + </div> 143 + <div class="service-body"> 144 + <h4>Infrastructure changes</h4> 145 + <p> 146 + Java, Tomcat, database, Docker, filesystem, reverse proxy or hosting changes required by newer versions. 147 + </p> 148 + </div> 149 + </article> 150 + 151 + <article class="service"> 152 + <div class="service-icon" aria-hidden="true"> 153 + <i class="fa fa-file-pdf-o"></i> 154 + </div> 155 + <div class="service-body"> 156 + <h4>Business-critical features</h4> 157 + <p> 158 + PDF exports, dashboards, structured data, templates, permissions, notifications and workflows that need validation. 159 + </p> 160 + </div> 161 + </article> 162 + 163 + <article class="service"> 164 + <div class="service-icon" aria-hidden="true"> 165 + <i class="fa fa-warning"></i> 166 + </div> 167 + <div class="service-body"> 168 + <h4>Low-downtime rollout</h4> 169 + <p> 170 + Upgrade planning with backups, testing, rollback options and a controlled production deployment window. 171 + </p> 172 + </div> 173 + </article> 105 105 </div> 106 106 </div> 107 107 </section> 108 108 178 + ## PROCESS 179 + <section id="upgrade-process" class="split-section" aria-labelledby="process-title"> 180 + <div class="container"> 181 + <div class="split-grid"> 182 + <div class="split-copy"> 183 + <h2 id="process-title">A practical upgrade approach</h2> 184 + 185 + <p> 186 + The goal is not only to install a newer version. The goal is to move your XWiki instance forward 187 + while protecting the data, configuration, customizations and business processes that already depend on it. 188 + </p> 189 + 190 + <p> 191 + The upgrade is always prepared outside production first, using a staging environment or a temporary clone 192 + of the live instance. This allows compatibility issues, extension problems, authentication changes and 193 + custom features to be validated before the controlled production rollout. 194 + </p> 195 + </div> 196 + 197 + <ol class="process-list"> 198 + <li> 199 + <strong>Review the current instance</strong> 200 + Version, extensions, database, filesystem, authentication, custom code, logs and infrastructure constraints. 201 + </li> 202 + <li> 203 + <strong>Define the upgrade path</strong> 204 + Target version, intermediate steps if needed, compatibility risks, expected downtime and rollback options. 205 + </li> 206 + <li> 207 + <strong>Prepare and validate</strong> 208 + Backups, test upgrade when needed, extension checks and validation of critical XWiki features. 209 + </li> 210 + <li> 211 + <strong>Upgrade production</strong> 212 + Controlled execution, post-upgrade checks, issue resolution and confirmation that key features still work. 213 + </li> 214 + <li> 215 + <strong>Document next steps</strong> 216 + Upgrade notes, observed risks, remaining recommendations and future maintenance guidance. 217 + </li> 218 + </ol> 219 + </div> 220 + </div> 221 + </section> 222 + 223 + ## DELIVERABLES 224 + <section aria-labelledby="deliverables-title"> 225 + <div class="container"> 226 + <h2 id="deliverables-title">What you can expect</h2> 227 + 228 + <p class="section-intro"> 229 + The exact scope depends on your XWiki version, hosting setup and customizations, but an upgrade engagement 230 + usually includes a clear technical review, a controlled upgrade plan and post-upgrade validation. 231 + </p> 232 + 233 + <div class="widgets"> 234 + <article class="widget"> 235 + <div class="icon" aria-hidden="true"> 236 + <i class="fa fa-search"></i> 237 + <h4>Upgrade review</h4> 238 + </div> 239 + <p> 240 + Review of the current version, installed extensions, customizations, authentication and hosting constraints. 241 + </p> 242 + </article> 243 + 244 + <article class="widget"> 245 + <div class="icon" aria-hidden="true"> 246 + <i class="fa fa-map"></i> 247 + <h4>Upgrade plan</h4> 248 + </div> 249 + <p> 250 + Recommended target version, risk areas, validation checklist, downtime expectations and rollback approach. 251 + </p> 252 + </article> 253 + 254 + <article class="widget"> 255 + <div class="icon" aria-hidden="true"> 256 + <i class="fa fa-check-circle"></i> 257 + <h4>Post-upgrade validation</h4> 258 + </div> 259 + <p> 260 + Verification of key pages, rights, authentication, extensions, jobs, PDFs, dashboards and custom applications. 261 + </p> 262 + </article> 263 + 264 + <article class="widget"> 265 + <div class="icon" aria-hidden="true"> 266 + <i class="fa fa-file-text-o"></i> 267 + <h4>Upgrade notes</h4> 268 + </div> 269 + <p> 270 + Practical documentation of the performed work, important decisions and recommended follow-up actions. 271 + </p> 272 + </article> 273 + </div> 274 + </div> 275 + </section> 276 + 277 + ## CTA 278 + <section class="cta-section" aria-labelledby="cta-title"> 279 + <div class="container"> 280 + <div class="cta-panel"> 281 + <h2 id="cta-title">Planning an XWiki upgrade?</h2> 282 + 283 + <p> 284 + Send your current XWiki version, target version if known, hosting setup and any custom extensions or integrations 285 + that may affect the upgrade. A short description is enough to start with. 286 + </p> 287 + 288 + <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Request an upgrade review</a> 289 + </div> 290 + </div> 291 + </section> 292 + 109 109 {{/html}} 110 110 {{/velocity}}
- XWiki.StyleSheetExtension[0]
-
- cache
-
... ... @@ -1,1 +1,0 @@ 1 -long - code
-
... ... @@ -1,112 +1,0 @@ 1 -/* ===== Service inner page header ===== */ 2 - 3 -.service-header { 4 - padding: 28px 0; 5 - border-top: none; 6 - background: 7 - radial-gradient(42rem 12rem at 50% -20%, #E7FFF8 0%, transparent 65%); 8 -} 9 - 10 -.service-header-grid { 11 - display: grid; 12 - grid-template-columns: minmax(0, 1.5fr) minmax(280px, 0.8fr); 13 - gap: 32px; 14 - align-items: center; 15 -} 16 - 17 -.service-header-main { 18 - h1 { 19 - margin: 0 0 8px; 20 - font-size: 34px; 21 - line-height: 1.15; 22 - color: @text; 23 - } 24 -} 25 - 26 -.eyebrow { 27 - margin: 0 0 6px; 28 - color: @brand; 29 - font-size: 13px; 30 - font-weight: 700; 31 - text-transform: uppercase; 32 - letter-spacing: .04em; 33 -} 34 - 35 -.lead-left { 36 - margin: 0 0 12px; 37 - color: @muted; 38 - font-size: 18px; 39 - line-height: 1.45; 40 - max-width: 720px; 41 -} 42 - 43 -.inline-benefits { 44 - display: flex; 45 - flex-wrap: wrap; 46 - gap: 8px; 47 - list-style: none; 48 - padding: 0; 49 - margin: 0; 50 - 51 - li { 52 - color: @muted; 53 - font-size: 13px; 54 - background: fade(@brand, 8%); 55 - border: 1px solid fade(@brand, 18%); 56 - border-radius: 999px; 57 - padding: 4px 9px; 58 - } 59 -} 60 - 61 -.service-aside { 62 - background: #fff; 63 - border: 1px solid @line; 64 - border-radius: @radius; 65 - box-shadow: @shadow-sm; 66 - padding: 18px; 67 - 68 - h3 { 69 - margin: 0 0 8px; 70 - color: @text; 71 - font-size: 18px; 72 - } 73 - 74 - p { 75 - margin: 0 0 12px; 76 - color: @muted; 77 - line-height: 1.45; 78 - font-size: 14px; 79 - } 80 -} 81 - 82 -.service-cta { 83 - display: inline-block; 84 - color: #fff; 85 - background: @brand; 86 - border-radius: 8px; 87 - padding: 8px 12px; 88 - font-weight: 700; 89 - text-decoration: none; 90 - 91 - &:hover, 92 - &:focus { 93 - color: #fff; 94 - background: @brand-strong; 95 - text-decoration: none; 96 - } 97 -} 98 - 99 -@media (max-width: 767px) { 100 - .service-header-grid { 101 - grid-template-columns: 1fr; 102 - gap: 18px; 103 - } 104 - 105 - .service-header-main h1 { 106 - font-size: 28px; 107 - } 108 - 109 - .lead-left { 110 - font-size: 16px; 111 - } 112 -} - use
-
... ... @@ -1,1 +1,0 @@ 1 -currentPage