Changes for page XWiki Upgrade Services

Last modified by Agnease on 2026/05/25 16:11

From version 2.5
edited by Agnease
on 2026/05/12 12:41
Change comment: There is no comment for this version
To version 9.5
edited by Agnease
on 2026/05/25 16:11
Change comment: There is no comment for this version

Summary

Details

Page properties
Title
... ... @@ -1,1 +1,1 @@
1 -xwiki-upgrades
1 +XWiki Upgrade Services
Content
... ... @@ -1,27 +1,18 @@
1 1  {{velocity}}
2 2  #set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome'))
3 3  {{html clean="false"}}
4 -
5 5   ## PAGE HEADER
6 - <section class="hero hero-centered service-hero" aria-labelledby="hero-title">
5 + <section class="hero hero-centered" aria-labelledby="hero-title">
7 7   <div class="container hero-inner">
8 8   <div class="hero-kicker">
9 9   <i class="fa fa-refresh" aria-hidden="true"></i>
10 10   XWiki upgrade services
11 11   </div>
12 -
13 13   <h1 id="hero-title">Safe XWiki LTS upgrades for production environments</h1>
14 -
15 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.
13 + Upgrade XWiki safely with a clear plan, compatibility checks and reduced production risk,
14 + even for instances with custom extensions, integrations and workflows.
18 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 25   <div class="hero-actions">
26 26   <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Request an upgrade review</a>
27 27   <a class="btn btn-secondary" href="#upgrade-process">See the upgrade approach</a>
... ... @@ -28,165 +28,140 @@
28 28   </div>
29 29   </div>
30 30   </section>
31 -
32 32   ## WHY UPGRADES MATTER
23 + #set ($upgradeReasonItems = [{
24 + 'title': 'Reduce security exposure',
25 + 'icon': 'shield',
26 + 'content': 'Staying close to supported XWiki versions helps reduce exposure to known vulnerabilities and missing fixes.',
27 + 'items': [
28 + 'Review current version exposure',
29 + 'Plan upgrade to a supported version',
30 + 'Validate security-sensitive features'
31 + ]
32 + },{
33 + 'title': 'Preserve compatibility',
34 + 'icon': 'cogs',
35 + 'content': 'Extensions, custom applications, authentication systems and infrastructure components need to remain compatible.',
36 + 'items': [
37 + 'Check installed extensions',
38 + 'Review custom code and scripts',
39 + 'Validate integrations after upgrade'
40 + ]
41 + },{
42 + 'title': 'Improve maintainability',
43 + 'icon': 'line-chart',
44 + 'content': 'Smaller, regular upgrades are usually easier to control than large jumps after years of accumulated changes.',
45 + 'items': [
46 + 'Avoid long upgrade gaps',
47 + 'Document the current platform state',
48 + 'Prepare future upgrade cycles'
49 + ]
50 + }])
33 33   <section aria-labelledby="why-upgrade-title">
34 34   <div class="container">
35 35   <h2 id="why-upgrade-title">Why regular XWiki upgrades matter</h2>
36 -
37 37   <p class="section-intro">
38 38   An outdated XWiki instance can become harder to maintain over time. Security fixes, browser compatibility,
39 39   extension updates, platform changes and infrastructure requirements continue to evolve, while older versions
40 40   become more difficult and risky to upgrade.
41 41   </p>
42 -
43 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>
60 + #foreach ($entry in $upgradeReasonItems)
61 + <article class="pathway-card">
62 + <div class="card-heading">
63 + <div class="pathway-icon">
64 + <i class="fa fa-$entry.icon" aria-hidden="true"></i>
65 + </div>
66 + <h3>$entry.title</h3>
67 + </div>
58 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>
69 + <p>$entry.content</p>
73 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>
71 + <ul>
72 + #foreach ($item in $entry.items)
73 + <li>$item</li>
74 + #end
75 + </ul>
76 + </article>
77 + #end
88 88   </div>
89 89   </div>
90 90   </section>
91 -
92 92   ## COMMON SITUATIONS
82 + #set ($upgradeSituationItems = [{
83 + 'title': 'Old XWiki versions',
84 + 'icon': 'clock-o',
85 + 'content': 'Instances that have not been upgraded for several months or years and require a careful upgrade path.'
86 + },{
87 + 'title': 'Custom extensions and scripts',
88 + 'icon': 'puzzle-piece',
89 + 'content': 'Wikis with custom applications, Velocity scripts, macros, UI extensions, rights logic or business workflows.'
90 + },{
91 + 'title': 'Authentication integrations',
92 + 'icon': 'lock',
93 + 'content': 'LDAP, Active Directory, SSO, OIDC, SAML, MFA or custom login setups that must keep working after upgrade.'
94 + },{
95 + 'title': 'Infrastructure changes',
96 + 'icon': 'server',
97 + 'content': 'Java, Tomcat, database, Docker, filesystem, reverse proxy or hosting changes required by newer versions.'
98 + },{
99 + 'title': 'Business-critical features',
100 + 'icon': 'file-pdf-o',
101 + 'content': 'PDF exports, dashboards, structured data, templates, permissions, notifications and workflows that need validation.'
102 + },{
103 + 'title': 'Low-downtime rollout',
104 + 'icon': 'warning',
105 + 'content': 'Upgrade planning with backups, testing, rollback options and a controlled production deployment window.'
106 + }])
93 93   <section class="services" aria-labelledby="situations-title">
94 94   <div class="container">
95 95   <h2 id="situations-title">Common situations we handle</h2>
96 -
97 97   <p class="section-intro">
98 98   XWiki upgrades are often simple in clean environments, but production instances usually include additional
99 99   constraints that need to be understood before touching the live system.
100 100   </p>
101 -
102 102   <div class="services-grid">
103 - <article class="service">
104 - <div class="service-icon" aria-hidden="true">
105 - <i class="fa fa-clock-o"></i>
106 - </div>
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>
112 - </div>
113 - </article>
115 + #foreach ($entry in $upgradeSituationItems)
116 + <article class="service">
117 + <div class="service-icon" aria-hidden="true">
118 + <i class="fa fa-$entry.icon"></i>
119 + </div>
114 114  
115 - <article class="service">
116 - <div class="service-icon" aria-hidden="true">
117 - <i class="fa fa-puzzle-piece"></i>
118 - </div>
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>
124 - </div>
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>
121 + <div class="service-body">
122 + <h4>$entry.title</h4>
123 + <p>$entry.content</p>
124 + </div>
125 + </article>
126 + #end
174 174   </div>
175 175   </div>
176 176   </section>
177 -
178 178   ## PROCESS
131 + #set ($upgradeProcessItems = [{
132 + 'title': 'Review the current instance',
133 + 'content': 'Version, extensions, database, filesystem, authentication, custom code, logs and infrastructure constraints.'
134 + },{
135 + 'title': 'Define the upgrade path',
136 + 'content': 'Target version, intermediate steps if needed, compatibility risks, expected downtime and rollback options.'
137 + },{
138 + 'title': 'Prepare and validate',
139 + 'content': 'Backups, test upgrade when needed, extension checks and validation of critical XWiki features.'
140 + },{
141 + 'title': 'Upgrade production',
142 + 'content': 'Controlled execution, post-upgrade checks, issue resolution and confirmation that key features still work.'
143 + },{
144 + 'title': 'Document next steps',
145 + 'content': 'Upgrade notes, observed risks, remaining recommendations and future maintenance guidance.'
146 + }])
179 179   <section id="upgrade-process" class="split-section" aria-labelledby="process-title">
180 180   <div class="container">
181 181   <div class="split-grid">
182 182   <div class="split-copy">
183 183   <h2 id="process-title">A practical upgrade approach</h2>
184 -
185 185   <p>
186 186   The goal is not only to install a newer version. The goal is to move your XWiki instance forward
187 187   while protecting the data, configuration, customizations and business processes that already depend on it.
188 188   </p>
189 -
190 190   <p>
191 191   The upgrade is always prepared outside production first, using a staging environment or a temporary clone
192 192   of the live instance. This allows compatibility issues, extension problems, authentication changes and
... ... @@ -193,102 +193,67 @@
193 193   custom features to be validated before the controlled production rollout.
194 194   </p>
195 195   </div>
196 -
197 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>
163 + #foreach ($entry in $upgradeProcessItems)
164 + <li>
165 + <strong>$entry.title</strong>
166 + $entry.content
167 + </li>
168 + #end
218 218   </ol>
219 219   </div>
220 220   </div>
221 221   </section>
222 -
223 223   ## DELIVERABLES
174 + #set ($upgradeDeliverableItems = [{
175 + 'title': 'Upgrade review',
176 + 'icon': 'search',
177 + 'content': 'Review of the current version, installed extensions, customizations, authentication and hosting constraints.'
178 + },{
179 + 'title': 'Upgrade plan',
180 + 'icon': 'map',
181 + 'content': 'Recommended target version, risk areas, validation checklist, downtime expectations and rollback approach.'
182 + },{
183 + 'title': 'Post-upgrade validation',
184 + 'icon': 'check-circle',
185 + 'content': 'Verification of key pages, rights, authentication, extensions, jobs, PDFs, dashboards and custom applications.'
186 + },{
187 + 'title': 'Upgrade notes',
188 + 'icon': 'file-text-o',
189 + 'content': 'Practical documentation of the performed work, important decisions and recommended follow-up actions.'
190 + }])
224 224   <section aria-labelledby="deliverables-title">
225 225   <div class="container">
226 226   <h2 id="deliverables-title">What you can expect</h2>
227 -
228 228   <p class="section-intro">
229 229   The exact scope depends on your XWiki version, hosting setup and customizations, but an upgrade engagement
230 230   usually includes a clear technical review, a controlled upgrade plan and post-upgrade validation.
231 231   </p>
232 -
233 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>
199 + #foreach ($entry in $upgradeDeliverableItems)
200 + <article class="widget">
201 + <div class="icon" aria-hidden="true">
202 + <i class="fa fa-$entry.icon"></i>
203 + <h4>$entry.title</h4>
204 + </div>
205 + <p>$entry.content</p>
206 + </article>
207 + #end
273 273   </div>
274 274   </div>
275 275   </section>
276 -
277 277   ## CTA
278 278   <section class="cta-section" aria-labelledby="cta-title">
279 279   <div class="container">
280 280   <div class="cta-panel">
281 281   <h2 id="cta-title">Planning an XWiki upgrade?</h2>
282 -
283 283   <p>
284 284   Send your current XWiki version, target version if known, hosting setup and any custom extensions or integrations
285 285   that may affect the upgrade. A short description is enough to start with.
286 286   </p>
287 -
288 288   <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Request an upgrade review</a>
289 289   </div>
290 290   </div>
291 291   </section>
292 -
293 293  {{/html}}
294 294  {{/velocity}}
Agnease.Code.SEODetailsClass[0]
metaDescription
... ... @@ -1,0 +1,1 @@
1 +Safe XWiki upgrade services for production instances, including LTS upgrade planning, extension compatibility, backups, rollback strategy and validation.
metaTitle
... ... @@ -1,0 +1,1 @@
1 +Safe XWiki Upgrade Services for Production Instances | Agnease