Changes for page XWiki Upgrade Services

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

From version 1.6
edited by Agnease
on 2026/05/01 12:23
Change comment: There is no comment for this version
To version 9.4
edited by Agnease
on 2026/05/22 14:10
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
... ... @@ -2,109 +2,288 @@
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 + Upgrade XWiki safely with a clear plan, compatibility checks and reduced production risk,
17 + even for instances with custom extensions, integrations and workflows.
18 + </p>
19 +
20 + <div class="hero-actions">
21 + <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Request an upgrade review</a>
22 + <a class="btn btn-secondary" href="#upgrade-process">See the upgrade approach</a>
23 + </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">
27 + ## WHY UPGRADES MATTER
28 + <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
30 + <h2 id="why-upgrade-title">Why regular XWiki upgrades matter</h2>
31 +
32 + <p class="section-intro">
33 + An outdated XWiki instance can become harder to maintain over time. Security fixes, browser compatibility,
34 + extension updates, platform changes and infrastructure requirements continue to evolve, while older versions
35 + become more difficult and risky to upgrade.
36 + </p>
37 +
38 + <div class="pathways">
39 + <article class="pathway-card">
40 + <div class="pathway-icon">
41 + <i class="fa fa-shield" aria-hidden="true"></i>
42 + </div>
43 + <h3>Reduce security exposure</h3>
44 + <p>
45 + Staying close to supported XWiki versions helps reduce exposure to known vulnerabilities and missing fixes.
46 + </p>
47 + <ul>
48 + <li>Review current version exposure</li>
49 + <li>Plan upgrade to a supported version</li>
50 + <li>Validate security-sensitive features</li>
51 + </ul>
52 + </article>
53 +
54 + <article class="pathway-card">
55 + <div class="pathway-icon">
56 + <i class="fa fa-cogs" aria-hidden="true"></i>
57 + </div>
58 + <h3>Preserve compatibility</h3>
59 + <p>
60 + Extensions, custom applications, authentication systems and infrastructure components need to remain compatible.
61 + </p>
62 + <ul>
63 + <li>Check installed extensions</li>
64 + <li>Review custom code and scripts</li>
65 + <li>Validate integrations after upgrade</li>
66 + </ul>
67 + </article>
68 +
69 + <article class="pathway-card">
70 + <div class="pathway-icon">
71 + <i class="fa fa-line-chart" aria-hidden="true"></i>
72 + </div>
73 + <h3>Improve maintainability</h3>
74 + <p>
75 + Smaller, regular upgrades are usually easier to control than large jumps after years of accumulated changes.
76 + </p>
77 + <ul>
78 + <li>Avoid long upgrade gaps</li>
79 + <li>Document the current platform state</li>
80 + <li>Prepare future upgrade cycles</li>
81 + </ul>
82 + </article>
64 64   </div>
65 65   </div>
66 66   </section>
67 67  
68 - ## TWO COLUMN SUMMARY
69 - <section class="services compact-section" aria-labelledby="summary-title">
87 + ## COMMON SITUATIONS
88 + <section class="services" aria-labelledby="situations-title">
70 70   <div class="container">
71 - <h2 id="summary-title">Upgrade support for real XWiki environments</h2>
90 + <h2 id="situations-title">Common situations we handle</h2>
72 72  
73 - <div class="services-grid compact-grid">
92 + <p class="section-intro">
93 + XWiki upgrades are often simple in clean environments, but production instances usually include additional
94 + constraints that need to be understood before touching the live system.
95 + </p>
96 +
97 + <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>
99 + <div class="service-icon" aria-hidden="true">
100 + <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>
103 + <h4>Old XWiki versions</h4>
104 + <p>
105 + Instances that have not been upgraded for several months or years and require a careful upgrade path.
106 + </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>
111 + <div class="service-icon" aria-hidden="true">
112 + <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>
115 + <h4>Custom extensions and scripts</h4>
116 + <p>
117 + Wikis with custom applications, Velocity scripts, macros, UI extensions, rights logic or business workflows.
118 + </p>
103 103   </div>
104 104   </article>
121 +
122 + <article class="service">
123 + <div class="service-icon" aria-hidden="true">
124 + <i class="fa fa-lock"></i>
125 + </div>
126 + <div class="service-body">
127 + <h4>Authentication integrations</h4>
128 + <p>
129 + LDAP, Active Directory, SSO, OIDC, SAML, MFA or custom login setups that must keep working after upgrade.
130 + </p>
131 + </div>
132 + </article>
133 +
134 + <article class="service">
135 + <div class="service-icon" aria-hidden="true">
136 + <i class="fa fa-server"></i>
137 + </div>
138 + <div class="service-body">
139 + <h4>Infrastructure changes</h4>
140 + <p>
141 + Java, Tomcat, database, Docker, filesystem, reverse proxy or hosting changes required by newer versions.
142 + </p>
143 + </div>
144 + </article>
145 +
146 + <article class="service">
147 + <div class="service-icon" aria-hidden="true">
148 + <i class="fa fa-file-pdf-o"></i>
149 + </div>
150 + <div class="service-body">
151 + <h4>Business-critical features</h4>
152 + <p>
153 + PDF exports, dashboards, structured data, templates, permissions, notifications and workflows that need validation.
154 + </p>
155 + </div>
156 + </article>
157 +
158 + <article class="service">
159 + <div class="service-icon" aria-hidden="true">
160 + <i class="fa fa-warning"></i>
161 + </div>
162 + <div class="service-body">
163 + <h4>Low-downtime rollout</h4>
164 + <p>
165 + Upgrade planning with backups, testing, rollback options and a controlled production deployment window.
166 + </p>
167 + </div>
168 + </article>
105 105   </div>
106 106   </div>
107 107   </section>
108 108  
173 + ## PROCESS
174 + <section id="upgrade-process" class="split-section" aria-labelledby="process-title">
175 + <div class="container">
176 + <div class="split-grid">
177 + <div class="split-copy">
178 + <h2 id="process-title">A practical upgrade approach</h2>
179 +
180 + <p>
181 + The goal is not only to install a newer version. The goal is to move your XWiki instance forward
182 + while protecting the data, configuration, customizations and business processes that already depend on it.
183 + </p>
184 +
185 + <p>
186 + The upgrade is always prepared outside production first, using a staging environment or a temporary clone
187 + of the live instance. This allows compatibility issues, extension problems, authentication changes and
188 + custom features to be validated before the controlled production rollout.
189 + </p>
190 + </div>
191 +
192 + <ol class="process-list">
193 + <li>
194 + <strong>Review the current instance</strong>
195 + Version, extensions, database, filesystem, authentication, custom code, logs and infrastructure constraints.
196 + </li>
197 + <li>
198 + <strong>Define the upgrade path</strong>
199 + Target version, intermediate steps if needed, compatibility risks, expected downtime and rollback options.
200 + </li>
201 + <li>
202 + <strong>Prepare and validate</strong>
203 + Backups, test upgrade when needed, extension checks and validation of critical XWiki features.
204 + </li>
205 + <li>
206 + <strong>Upgrade production</strong>
207 + Controlled execution, post-upgrade checks, issue resolution and confirmation that key features still work.
208 + </li>
209 + <li>
210 + <strong>Document next steps</strong>
211 + Upgrade notes, observed risks, remaining recommendations and future maintenance guidance.
212 + </li>
213 + </ol>
214 + </div>
215 + </div>
216 + </section>
217 +
218 + ## DELIVERABLES
219 + <section aria-labelledby="deliverables-title">
220 + <div class="container">
221 + <h2 id="deliverables-title">What you can expect</h2>
222 +
223 + <p class="section-intro">
224 + The exact scope depends on your XWiki version, hosting setup and customizations, but an upgrade engagement
225 + usually includes a clear technical review, a controlled upgrade plan and post-upgrade validation.
226 + </p>
227 +
228 + <div class="widgets">
229 + <article class="widget">
230 + <div class="icon" aria-hidden="true">
231 + <i class="fa fa-search"></i>
232 + <h4>Upgrade review</h4>
233 + </div>
234 + <p>
235 + Review of the current version, installed extensions, customizations, authentication and hosting constraints.
236 + </p>
237 + </article>
238 +
239 + <article class="widget">
240 + <div class="icon" aria-hidden="true">
241 + <i class="fa fa-map"></i>
242 + <h4>Upgrade plan</h4>
243 + </div>
244 + <p>
245 + Recommended target version, risk areas, validation checklist, downtime expectations and rollback approach.
246 + </p>
247 + </article>
248 +
249 + <article class="widget">
250 + <div class="icon" aria-hidden="true">
251 + <i class="fa fa-check-circle"></i>
252 + <h4>Post-upgrade validation</h4>
253 + </div>
254 + <p>
255 + Verification of key pages, rights, authentication, extensions, jobs, PDFs, dashboards and custom applications.
256 + </p>
257 + </article>
258 +
259 + <article class="widget">
260 + <div class="icon" aria-hidden="true">
261 + <i class="fa fa-file-text-o"></i>
262 + <h4>Upgrade notes</h4>
263 + </div>
264 + <p>
265 + Practical documentation of the performed work, important decisions and recommended follow-up actions.
266 + </p>
267 + </article>
268 + </div>
269 + </div>
270 + </section>
271 +
272 + ## CTA
273 + <section class="cta-section" aria-labelledby="cta-title">
274 + <div class="container">
275 + <div class="cta-panel">
276 + <h2 id="cta-title">Planning an XWiki upgrade?</h2>
277 +
278 + <p>
279 + Send your current XWiki version, target version if known, hosting setup and any custom extensions or integrations
280 + that may affect the upgrade. A short description is enough to start with.
281 + </p>
282 +
283 + <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Request an upgrade review</a>
284 + </div>
285 + </div>
286 + </section>
287 +
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
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