Changes for page xwiki-upgrades
Last modified by Alex Cotiugă on 2026/05/12 12:41
From version 2.3
edited by Alex Cotiugă
on 2026/05/12 12:38
on 2026/05/12 12:38
Change comment:
There is no comment for this version
To 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
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Objects (0 modified, 1 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -2,292 +2,109 @@ 2 2 #set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome')) 3 3 {{html clean="false"}} 4 4 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 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> 11 11 </div> 12 12 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> 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> 29 29 </div> 30 30 </section> 31 31 32 - ## WHY UPGRADES MATTER 33 - <section aria-labelledby="why-upgrade-title"> 34 - <div class="container"> 35 - <h2 id="why-upgrade-title">Why regular XWiki upgrades matter</h2> 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 + }]) 36 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> 51 + <section class="compact-section" aria-labelledby="why-title"> 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 88 88 </div> 89 89 </div> 90 90 </section> 91 91 92 - ## COM MON SITUATIONS93 - <section class="services" aria-labelledby="s ituations-title">68 + ## TWO COLUMN SUMMARY 69 + <section class="services compact-section" aria-labelledby="summary-title"> 94 94 <div class="container"> 95 - <h2 id="s ituations-title">Commonsituationswehandle</h2>71 + <h2 id="summary-title">Upgrade support for real XWiki environments</h2> 96 96 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"> 73 + <div class="services-grid compact-grid"> 103 103 <article class="service"> 104 - <div class="service-icon" aria-hidden="true">105 - <i class="fa fa-clo ck-o"></i>75 + <div class="service-icon"> 76 + <i class="fa fa-exclamation-triangle" aria-hidden="true"></i> 106 106 </div> 107 107 <div class="service-body"> 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> 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> 112 112 </div> 113 113 </article> 114 114 115 115 <article class="service"> 116 - <div class="service-icon" aria-hidden="true">117 - <i class="fa fa- puzzle-piece"></i>91 + <div class="service-icon"> 92 + <i class="fa fa-check-square-o" aria-hidden="true"></i> 118 118 </div> 119 119 <div class="service-body"> 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> 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> 124 124 </div> 125 125 </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> 174 174 </div> 175 175 </div> 176 176 </section> 177 177 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 - Depending on the complexity of the instance, the upgrade can be handled directly or first reproduced 192 - in a test environment before the production rollout. 193 - </p> 194 - </div> 195 - 196 - <ol class="process-list"> 197 - <li> 198 - <strong>Review the current instance</strong> 199 - Version, extensions, database, filesystem, authentication, custom code, logs and infrastructure constraints. 200 - </li> 201 - <li> 202 - <strong>Define the upgrade path</strong> 203 - Target version, intermediate steps if needed, compatibility risks, expected downtime and rollback options. 204 - </li> 205 - <li> 206 - <strong>Prepare and validate</strong> 207 - Backups, test upgrade when needed, extension checks and validation of critical XWiki features. 208 - </li> 209 - <li> 210 - <strong>Upgrade production</strong> 211 - Controlled execution, post-upgrade checks, issue resolution and confirmation that key features still work. 212 - </li> 213 - <li> 214 - <strong>Document next steps</strong> 215 - Upgrade notes, observed risks, remaining recommendations and future maintenance guidance. 216 - </li> 217 - </ol> 218 - </div> 219 - </div> 220 - </section> 221 - 222 - ## DELIVERABLES 223 - <section aria-labelledby="deliverables-title"> 224 - <div class="container"> 225 - <h2 id="deliverables-title">What you can expect</h2> 226 - 227 - <p class="section-intro"> 228 - The exact scope depends on your XWiki version, hosting setup and customizations, but an upgrade engagement 229 - usually includes a clear technical review, a controlled upgrade plan and post-upgrade validation. 230 - </p> 231 - 232 - <div class="widgets"> 233 - <article class="widget"> 234 - <div class="icon" aria-hidden="true"> 235 - <i class="fa fa-search"></i> 236 - <h4>Upgrade review</h4> 237 - </div> 238 - <p> 239 - Review of the current version, installed extensions, customizations, authentication and hosting constraints. 240 - </p> 241 - </article> 242 - 243 - <article class="widget"> 244 - <div class="icon" aria-hidden="true"> 245 - <i class="fa fa-map"></i> 246 - <h4>Upgrade plan</h4> 247 - </div> 248 - <p> 249 - Recommended target version, risk areas, validation checklist, downtime expectations and rollback approach. 250 - </p> 251 - </article> 252 - 253 - <article class="widget"> 254 - <div class="icon" aria-hidden="true"> 255 - <i class="fa fa-check-circle"></i> 256 - <h4>Post-upgrade validation</h4> 257 - </div> 258 - <p> 259 - Verification of key pages, rights, authentication, extensions, jobs, PDFs, dashboards and custom applications. 260 - </p> 261 - </article> 262 - 263 - <article class="widget"> 264 - <div class="icon" aria-hidden="true"> 265 - <i class="fa fa-file-text-o"></i> 266 - <h4>Upgrade notes</h4> 267 - </div> 268 - <p> 269 - Practical documentation of the performed work, important decisions and recommended follow-up actions. 270 - </p> 271 - </article> 272 - </div> 273 - </div> 274 - </section> 275 - 276 - ## CTA 277 - <section class="cta-section" aria-labelledby="cta-title"> 278 - <div class="container"> 279 - <div class="cta-panel"> 280 - <h2 id="cta-title">Planning an XWiki upgrade?</h2> 281 - 282 - <p> 283 - Send your current XWiki version, target version if known, hosting setup and any custom extensions or integrations 284 - that may affect the upgrade. A short description is enough to start with. 285 - </p> 286 - 287 - <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Request an upgrade review</a> 288 - </div> 289 - </div> 290 - </section> 291 - 292 292 {{/html}} 293 293 {{/velocity}}
- XWiki.StyleSheetExtension[0]
-
- cache
-
... ... @@ -1,0 +1,1 @@ 1 +long - code
-
... ... @@ -1,0 +1,112 @@ 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,0 +1,1 @@ 1 +currentPage