XWiki upgrades and support

Staying on a supported XWiki line, choosing between stable, LTS and intermediate LTS releases, testing extensions before each upgrade, and what support after go-live should include.

On this page

What XWiki upgrade and support work involves

Upgrade and support work for XWiki covers four things: choosing the release line you will stay on, planning and rehearsing each upgrade on a copy of production, testing extensions and customizations against the new core, and running the wiki after go-live. Most of the effort sits in the second and third items, not in the file replacement itself. Start by deciding which line fits your organization: the stable line, the long term support (LTS) line or the intermediate LTS line. At the time of research the official Docker image tags were 18.8.0 for stable, 17.10.14 for LTS and 18.4.7 for the intermediate LTS. Confirm current tags with the XWiki project before you pin a version.

Four kinds of trigger usually start this work. The first is a release line that is approaching the end of its useful life for your organization, which you should judge against your own change windows and approval cycles. The second is a security release, which needs a fast, tested path. The third is an extension that requires a newer core version. The fourth is a team with no one who has run an XWiki upgrade before. Ask any partner for a written plan covering the upgrade rehearsal, the extension compatibility list, the rollback procedure and who signs off on the cutover.

For routine minor upgrades, a team with an operator who understands Java, Tomcat and the chosen database, and a patient test process, can often manage alone. A partner is most useful for the first major move, for wikis with many third-party or custom extensions, and for recurring support coverage that matches your service hours. The usual deployment base is the official XWiki Docker images in MySQL, PostgreSQL and MariaDB variants, each running on Tomcat. These images are maintained by the XWiki Core Dev Team, so confirm which tag and database variant your environment pins and how you will track its updates. Support terms, response times and any retainer should be written into the scope before work starts.

What the service includes

The engagement splits into one-time upgrade work that ends at cutover and recurring support that runs after go-live. The exact response times and coverage come from the written scope and from the XWiki support plan you hold, so ask for both in writing.

Release line decision record

A short written record of which XWiki line you will run (stable, LTS or intermediate LTS), why, and when you will next review that choice. It names the current official Docker image tags, the database and servlet variant, and who approved the decision. Ask for it before any upgrade work starts so the target version is agreed, not assumed.

Upgrade runbook

A step-by-step procedure covering backups, database and configuration changes, extension updates, the order of operations and the checks at each step. It records who performs each action and what to do if a step fails. Review it with your operations team so the person on call can follow it without the author present.

Staging environment rehearsal

A full dry run of the upgrade on a copy of production data and configuration, built to match production's servlet container, database and extensions. The rehearsal measures how long each step takes and surfaces failures before users are affected. Confirm that staging holds representative content and real permission structures.

Extension compatibility report

A list of every installed extension, application and skin, with its current version, the version needed for the target release, and the action required: upgrade, replace, remove or keep with a documented risk. Custom code and third-party extensions usually need the closest review, so ask which ones have no vendor support path.

Regression test scripts

Scripted checks for the key spaces, pages, macros and scripts your users depend on, including search results, permission outcomes and rendering of custom macros. Each script states the expected result so a tester can pass or fail it without judgment calls. Agree the list of critical spaces with the business owners before testing begins.

Cutover and rollback plan

The window, freeze rules, go or no-go criteria, communication steps and the rollback path with its own tested backup restore. It names who can call a rollback and the point after which rollback is no longer practical. Ask how user edits made during the window are handled before you approve the plan.

Post-upgrade verification

Checks run on production after cutover, covering the regression scripts, search index health, scheduled jobs, authentication flows and error logs. The results are written up and signed off by your owner, with any open defects tracked to closure. Verification ends the one-time work and hands over to the support schedule.

Support schedule

The recurring service after go-live: monitoring of the platform, review of XWiki security and patch releases, scheduled backup restore tests, and a named contact for incidents. Response times and coverage hours are set by the written scope and your XWiki support plan, so confirm both in writing before you rely on them.

What drives upgrade cost and duration

This table lists the factors that change how much work an XWiki upgrade takes, why each one matters and what you can do to keep it contained.

DriverWhy it mattersHow to keep it down
Installed extensionsEach extension must work on the target release, and most upgrade effort comes from checking and replacing extensions rather than from the core package itself.Inventory every extension with its version, remove unused ones, and confirm target-version compatibility with the extension maintainer before scheduling.
Custom Groovy and Velocity scriptsScripts that call internal APIs can break when those APIs change between releases, and each break needs diagnosis and a fix.Keep scripts small, document the APIs they call, and move reusable logic into a tested extension with its own test cases.
Macros and page contentMacros that depend on older syntax or deprecated behavior may render differently or fail after the upgrade, and affected pages must be found and checked.Run a scan of macro usage across spaces, prioritize heavily used pages, and fix or retire macros that no longer serve a purpose.
Gap between current and target versionA larger jump means more release notes to review, more migrations to run and more extensions that may lack a matching release.Plan intermediate steps where the vendor documentation calls for them, and keep the target on a supported line such as LTS.
Number of spaces and attachmentsMigration and reindexing time grow with content volume, and large attachment stores lengthen backup and restore windows.Archive inactive spaces, clean up unused attachments before the upgrade, and measure content volume in a staging copy.
Database engine and sizeSchema migrations run against the database, and engine choice (MySQL, PostgreSQL or MariaDB) and data size affect how long they take and how a rollback is handled.Take a verified database backup, confirm the engine and version are supported for the target release, and test the migration timing on a copy.
Number of environments and staging copyWithout a staging copy, issues surface in production, and each additional environment adds a test cycle.Maintain a staging environment built from a recent production backup, and keep environment configuration in version control.
Integrations such as SSO and Confluence exportsIdentity connectors, reverse proxy rules and any data exchanges with Confluence must be retested after the upgrade.List every integration with its owner, add a test for each login path and data flow, and retest these before cutover.
Skin customizationCustom skins and template overrides depend on page structure and CSS classes that can change between releases.Keep skin changes minimal, use supported extension points where available, and review them in staging before each upgrade.
Edition in useXWiki Standard relies on community extensions, while XWiki Pro includes Pro apps and support plans that may need their own version checks and renewals.Confirm which Pro apps are installed and their target-version support, and ask the vendor for a compatibility statement before the upgrade window.

Project phases and outputs

The sequence moves from an inventory of what is installed to a rehearsed, signed-off upgrade and a support schedule that keeps the wiki on a supported line afterward.

  1. Inventory the installation and choose the target line

    The team lists the running XWiki version, database and servlet container, installed extensions, scripts and customizations, then compares the current line with the stable, LTS and intermediate LTS options. The output is an installed extension and script inventory and a documented target line decision, which the client approves before any build work starts.

  2. Build a staging copy and rehearse the upgrade

    The team restores a recent copy of production data into a staging environment in the client's infrastructure and runs the planned upgrade path against it. The rehearsal is complete when the upgrade finishes on the copy and every failure is logged with its cause and fix, producing a rehearsed upgrade on a production copy.

  3. Fix or replace extensions and customizations

    Each extension and custom script is checked against the target release. Incompatible items receive a compatibility fix, or a replacement plan where the extension is no longer suitable. The output is a compatibility fix or replacement plan for every extension in the inventory, reviewed by the client's wiki owner.

  4. Run regression tests on key spaces

    Testers, usually the client's content owners with DeployOpen support, run scripted checks on the spaces that carry the most business use: page rendering, macros, search, permissions, attachments and any applications used in those spaces. The output is signed-off test results for each key space, with open defects tracked to closure or accepted by the client in writing.

  5. Rehearse cutover and rollback

    The team writes a runbook with each cutover step timed on the staging environment, including database backup, maintenance mode, upgrade, post-upgrade checks and the rollback path. The rehearsal is complete when the runbook names a rollback point and the team has actually executed the rollback once. The output is that runbook.

  6. Go live and run hypercare

    The upgrade runs in the production window set out in the runbook, followed by post-upgrade checks on rendering, search, authentication and key spaces. A hypercare period follows in which incidents are logged with their status and resolution. The output is the post-upgrade check record and an incident log that the client signs off.

  7. Hand over to the support schedule

    The team transfers the documentation, inventory, runbook and open items to the client's operators and agrees the ongoing support arrangement, including who applies patch releases and how extension updates are tested. The handover is complete when the client confirms receipt and the support schedule is in place.

What teams keep in-house and what they outsource

This table shows which XWiki upgrade and support work most teams keep internally, which they often hand to a partner, and the skills each area needs, so you can judge where your own gaps are.

Work areaUsually kept in-houseUsually outsourcedSkills needed
Page correctness sign-offBusiness owners confirm that key pages, processes and reference content are still right after each upgradeTest scripts or checklists written with the partner from owner inputDomain knowledge of the content and its consumers
Space content reviewSpace owners review their spaces after the upgrade and report macro, layout or rendering problemsTriage of technical defects found during reviewKnowledge of how each space is used day to day
Tomcat and database operationsInternal operators run the servlet container, database and reverse proxy on a routine basisInitial setup, runbook writing and knowledge transfer for the first upgrade cycleLinux administration, Tomcat, MySQL, PostgreSQL or MariaDB administration
Backup and restoreYour team owns backup schedules, retention and proven restore testsRestore rehearsal design and a first end-to-end test in a staging copyDatabase backup tooling, file-level backup of XWiki data, restore procedures
Extension selection and testingYour team decides which extensions the wiki needs and signs off their useCompatibility testing of extensions against the target XWiki version before the upgradeExtension manager knowledge, XWiki release notes review, test environments
Custom code changesOwners of custom applications or scripts approve changes and keep them documentedPorting custom code and macros to the target version and fixing breakageXWiki scripting, Velocity and Groovy, Java where extensions are involved
Release planningYour team chooses the target line (stable, LTS or intermediate LTS) and sets the upgrade calendarUpgrade plan drafting, effort estimate and staged rollout proposalUnderstanding of XWiki release lines and your change control process
On-call and incident responseInternal staff receive alerts and decide on rollback during business hours and after hoursOptional retainer covering out-of-hours escalation, if contractedMonitoring, log analysis and the XWiki admin console

What goes wrong and how to prevent it

Most failed XWiki upgrades trace back to a few preventable gaps. Each card names the risk and the check that closes it.

Staying on an unsupported line

Running an older XWiki line past its support window means security fixes arrive late or not at all. Confirm the support dates for your current line in XWiki's release information, and plan the move to an LTS or intermediate LTS line before support ends. Security releases also need a fast path that skips the normal change cycle. Hardening detail is in the security hardening topic.

Upgrading core without extension checks

Extensions are versioned separately from the core, so an upgrade can break an extension that worked before. Before the upgrade, list every installed extension with its version, check each one against the target release, and test them on a staging copy of production data. Remove unused extensions so the test list stays short.

Custom scripts that break silently

Scripts in pages, macros and application code often fail without an error on screen, so users discover the breakage days later. Inventory every script that calls an API or renders dynamic content, define the expected output for each, and compare results on staging after the upgrade. Keep scripts in version control with a named owner.

Skipped migration steps and runtime drift

An upgrade may require database migration and a rebuilt search index, and skipping either leaves pages missing from results or the wiki misbehaving. Write both as ordered runbook steps with a check after each. The search topic covers index repair in detail. Also confirm the Java and Tomcat versions the target release requires, and match them on staging before cutover.

Backups and rollback never tested

A backup that has never been restored is an assumption, not a recovery plan. Restore a recent backup of the database and the XWiki data directory to a separate host, then start the target version against it. Rehearse the rollback on the same copy and time each step, so the team knows before the window opens whether reverting is practical.

Changes made directly in production

Fixes applied live during an upgrade window bypass staging and often never reach the next environment. Freeze production configuration, extensions and scripts for the window, route every change through the runbook, and record any emergency edit so it is replayed on staging. Name who approves changes during the window before it starts.

How the work changes by starting point

An instance on an older line may need to cross more than one release before it reaches a newer LTS, so the plan starts with the upgrade path.

  • Plan: Confirm the supported upgrade path from your current line to the target in the XWiki release notes, and decide whether an intermediate step is needed. Check which LTS and intermediate LTS tags are current, since the tags listed at research time were 17.10.14 for LTS and 18.4.7 for the intermediate LTS.
  • Verify: Run the upgrade on a copy of production data, then check every extension, custom script and macro for behavior changes.
  • Provide: A current inventory of installed extensions, the database and servlet container versions, a recent verified backup and a test environment that resembles production.
  • Confirm: The database and Java servlet container requirements of the target line with the release documentation before any hosts are changed.

What the client needs to provide

The upgrade cannot start until the client supplies access to the current XWiki servers or containers and to the database, along with a current backup and a restore test completed against that backup. A backup that has never been restored is not evidence of recoverability, so ask your team to restore it into a separate environment and confirm that pages, attachments and users come back. Also supply an inventory of installed extensions, or read-only access to the extension list in the administration area, so the provider can check each one against the target release before any change is made.

Name business owners for the key spaces who will test after the upgrade. Each owner should be able to log in with a test account, open the pages they depend on, run the macros and applications their teams use, and sign off in writing. Agree a maintenance window with the people who own the wiki's users, because the upgrade will take the site offline or make it read-only for a period. Provide a staging environment that matches production as closely as possible in servlet container version, database engine, extensions, operating system and reverse proxy configuration. Differences between staging and production are the most common reason a tested upgrade fails at cutover.

The client must decide the target release line before scoping starts. The options are the stable line, the long term support line and the intermediate LTS line, and that choice determines how often the wiki must be moved again. Also confirm which XWiki support plan the organization holds, because that determines what vendor support from XWiki SAS is available during and after the upgrade. Ask the vendor directly to confirm the plan, its user tier and its coverage terms, rather than relying on an internal record that may be out of date.

Decide before go-live who approves the cutover. In most organizations this is the wiki owner together with the business owners who signed testing, and the approval should be recorded in writing with the rollback conditions. Agree after handover who owns incidents: the internal platform team for the servlet container, database and network, the wiki administrators for spaces and rights, and the support provider for defects in XWiki itself or in extensions. Write these ownership boundaries into the handover document so that an outage on the first Monday after go-live does not stall while teams argue about responsibility.

Frequently asked questions

Should we run the stable line or an LTS line of XWiki?

For a wiki that several teams depend on, an LTS line is often the better starting point, while the stable line suits teams that want the newest features and can upgrade more often. At the time of research, the official Docker tags were 18.8.0 for stable and 17.10.14 for LTS, so the choice shows up in the image version you pin. Consider how quickly your team can complete a release cycle, whether your extensions track the same line, and how long you need each version to receive fixes. Confirm the support window for each line with XWiki SAS before you commit.

Is the intermediate LTS line a good fit for a new XWiki deployment?

It can be, when you want newer functionality than the full LTS line provides without moving to the stable line every few months. At the time of research, the official intermediate LTS Docker tag was 18.4.7, alongside the stable tag 18.8.0 and the LTS tag 17.10.14. Check which extensions and Pro applications you need, because a feature you depend on may be available in only one line. Ask XWiki SAS for the support length and upgrade path of the intermediate line, since those terms determine how long you can stay on it.

How much does an XWiki upgrade cost and what drives it?

Cost depends mainly on scope: the number of extensions, the amount of custom code, the size of the wiki and the number of environments that need testing. One-time work includes the impact assessment, test plan, upgrade rehearsal, fixes to custom code or extensions, and cutover. Recurring costs include support subscriptions and any retainer you choose for later upgrades. If you buy consulting from XWiki SAS, its listed rate is 1200 EUR per day, and that rate requires a Business or Enterprise support plan. Ask any provider for a quote built on a written scope that lists each environment and extension separately.

Can our own team upgrade XWiki without an outside partner?

Yes, a team can handle a minor upgrade in-house if it has a staging copy, a tested backup and someone who understands the Tomcat and database layers. The harder cases involve custom extensions, customized templates, scripts that depend on internal APIs, or a jump across several major versions. Your team must own the rollback plan, the post-upgrade checks and the extension compatibility review. Decide based on who would fix a broken macro late on a Friday. Bring in an outside partner when skills, capacity or the deadline are missing, and ask for the work to be written as a fixed scope.

How do we test extensions before upgrading XWiki?

Build a staging environment from a recent backup, then upgrade it to the target version before touching production. Start with an inventory of every installed extension, application and skin, including the version each one is pinned to and whether it comes from XWiki Pro. Next, test the functions people actually use: page creation and editing, search, permissions, scripted macros, SSO login and any connector to other systems. Record which extensions have a compatible release for the target line, and treat any without one as a blocker. Rehearse the rollback path too, including restoring the database and files.

What does support after go-live include, and do we need a plan?

Support after go-live typically covers incident response, security releases, upgrades within your chosen line and questions about configuration, depending on the plan you buy. XWiki SAS sells support in four tiers: Starter for up to 25 users on XWiki Cloud only, Basic for up to 1,000 users, Business for up to 10,000 users and Enterprise for unlimited users. XWiki SAS states that cloud and on-premises pricing is the same. Confirm with XWiki SAS how long support lasts for each release line and what response times apply. DeployOpen can also provide ongoing support, upgrades and testing under a retainer.

How DeployOpen delivers XWiki upgrades and support

DeployOpen plans and carries out XWiki upgrades in infrastructure you control, starting with a written scope that names the release line, extensions and environments involved. Support after go-live is available as a retainer, so the people who upgraded your wiki can keep it on a supported line.

How we scope

  • Confirm the current XWiki version, database variant and servlet container before agreeing which release line you move to.
  • Inventory installed extensions, custom applications and skins, and record which ones must be retested before any upgrade.
  • Agree in writing which environments, data volumes and user groups the upgrade covers, and what is excluded.

How we build

  • Rehearse the upgrade on a copy of production data in a staging environment that mirrors your database and Tomcat setup.
  • Test extensions, search, permissions and key knowledge base spaces against the target release before cutover is scheduled.
  • Document each step, rollback point and backup check so the upgrade can be repeated or reversed by your team.

How we hand over

  • Deliver a runbook covering the upgrade sequence, configuration changes, extension versions and verification checks performed.
  • Walk your administrators through the post-upgrade checklist, including reindexing, log review and user acceptance testing.
  • Record the agreed retainer or support scope, contacts and escalation steps so ownership after handover is clear.

How we support

  • Ongoing support is available as a retainer, covering planned upgrades to a supported XWiki line and review of security releases.
  • Retainer work is scoped in writing, so you can see which upgrades, testing cycles and incident responses are included.
  • Ask any partner, including DeployOpen, to confirm response expectations, release tracking and what happens when an extension lags behind the core.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.