Plane upgrades and support

Plane ships Community, Commercial and Airgapped editions on separate release cycles, so each upgrade needs the right edition, a verified backup and a tested rollback. This page covers what that work includes, what drives its effort, and what ongoing support can take off your team.

On this page

What upgrading and supporting self-hosted Plane involves

An upgrade to self-hosted Plane starts with one question: which edition does this instance run? Plane offers three self-hosted editions, Community, Commercial and Airgapped, and each is built on a distinct codebase with its own release cycle. A release published for Community does not automatically apply to a Commercial or Airgapped install, so the upgrade plan must follow the release line of the edition you actually operate. Confirm the edition and the exact running version before anyone pulls a new image or changes a chart value.

Upgrades usually come from one of five triggers. A new Community release is the most common. A move from Community to Commercial is a deliberate switch, needed when you want paid plans with a license key. Security patches arrive on their own timing and may be urgent. Dependency changes, such as a PostgreSQL major version, Redis or Valkey, RabbitMQ or the S3-compatible object store, can break an upgrade even when Plane itself is unchanged. A Kubernetes or Helm chart change carries the same risk. Each trigger should have a named owner and a short written record of what changed.

Small teams running Docker Compose with a dedicated administrator often handle routine upgrades in-house, provided they take a backup first and read each release note. Teams that need a fixed change window, a documented rollback, a Helm-based cluster or an edition switch usually benefit from a partner for the planning and the first upgrade cycle. Ask any partner for a written scope that names the edition, the target release, the backup and restore test, the rollback steps and who signs off the cutover. Ongoing support after that first cycle is a separate decision with its own scope.

What the work includes

The engagement breaks into one-time work that moves a self-hosted Plane instance to a current, supported state, and recurring support under a retainer. Each item below is agreed in writing before work starts.

Upgrade assessment

We record the current Plane edition, version, deployment method (Docker Compose, Kubernetes with Helm, Podman or an air-gapped install) and the external services each deployment depends on. The assessment identifies the target release and the upgrade steps between your version and that target. Confirm with us which edition your install runs before any other step begins.

Community to Commercial switch

A self-hosted Community install must move to the Commercial Edition before it can use a paid plan with a license key. We handle the edition switch, license key entry and seat mapping, so paid roles are counted correctly against your plan. This is one-time work, though seat counts change as people join or leave and should be reviewed when they do.

Pre-upgrade backup plan

We define and test a backup for each stateful component: PostgreSQL, object storage holding attachments and uploads, and the configuration and environment files. The plan records where each backup is stored, how it is restored, and who signs off before the upgrade starts. Ask us to demonstrate a restore, not just a completed backup job.

Upgrade run and rollback

We run the upgrade against the agreed target release in a planned window, following the sequence set in the assessment. A written rollback procedure restores the previous containers or Helm release and the verified backup if a step fails. Each upgrade is one-time work, and later upgrades are scheduled under the retainer.

Post-upgrade verification

After cutover we check that workspaces, projects, cycles, modules and pages open with their data intact, that integrations still send and receive events, and that identity login works through the configured SSO or local accounts. Results are recorded against a checklist you approve. Verification ends when you sign off, not when the upgrade job finishes.

Ongoing support scope

Under a retainer we review patches and new releases, triage release notes for changes that affect your deployment, and schedule upgrades with you. Support scope, included channels and any response expectations are defined in the retainer agreement, so confirm them there. Recurring work is quoted separately from the one-time upgrade scope.

What drives upgrade and support effort

This table lists the factors that change how much work each Plane upgrade and ongoing support cycle takes, why each one matters, and how to keep it manageable.

DriverWhy it mattersHow to keep it down
Edition in use and version gapPlane ships Community, Commercial and Airgapped editions on separate codebases and release cycles, so each edition has its own upgrade path. The further an install sits behind the current release, the more changes must be reviewed and tested at once.Confirm which edition you run, track its release notes, and upgrade in small steps on a regular schedule rather than letting the gap grow.
Deployment methodDocker Compose, Kubernetes with Helm, Podman and air-gapped installs each have different upgrade steps, rollback options and access to images. Air-gapped installs also need packages moved in by hand.Document the exact method and its upgrade procedure, and keep a tested runbook for that method only.
Self-managed or external PostgreSQL, Redis or Valkey, RabbitMQ and object storageEach self-managed service has its own version, patching, backup and failover work. Helm can point these at external managed services, which moves some of that work to the provider but adds connection and permission checks.Decide early which services you run yourself, pin their versions, and confirm the upgrade order with the service owners.
Number of workspaces and seatsMore workspaces mean more data to validate after each upgrade and more permissions to check. Seat counts also determine which plan and license terms apply, which can change the upgrade and support scope.Keep the workspace list current, test a representative workspace from each group, and confirm seat counts against your license before scheduling changes.
Custom integrations and identity connectionsSAML, OIDC or LDAP connections, importers, webhooks and any custom scripts depend on Plane's API and login behavior, so each upgrade may require retesting them.Keep a list of every integration with its owner and a short test script, and retest them in staging before each production upgrade.
Number of environmentsEach environment such as development, staging and production needs the same upgrade, data copy and verification. Environments that drift apart make results hard to compare.Keep environments as close in configuration as practical, and promote the same tested version through each one in order.
Change-control and compliance evidenceAudit or internal review may require approval records, change tickets, backup proof and post-change test results. Gathering this evidence after the fact takes extra time.Define the evidence list before the first upgrade, store records with each change, and confirm the required format with your assessor or internal audit team.
Backups before each upgradeA restorable backup is the rollback path if an upgrade fails. Without a tested restore, every upgrade carries more risk and more troubleshooting time.Take a backup of the database and object storage before each change, test restoring it in a separate environment on a set schedule, and record the results.

How an upgrade engagement runs

The sequence moves a self-hosted Plane instance from its current release to a planned target with a tested rollback point and a documented handover.

  1. Discover the current edition and deployment

    We record the installed edition (Community, Commercial or Airgapped), the running version, the deployment method (Docker Compose or Kubernetes with Helm), and the external dependencies: PostgreSQL, Redis or Valkey, RabbitMQ and S3-compatible object storage. The output is a written inventory that the client's platform team confirms against their own records.

  2. Write the upgrade plan

    The plan names the target release, the edition path (including any switch from Community to Commercial, which requires a license key for paid plans), the change window agreed with the client, and the order of dependency updates. It also lists who approves the change. The plan is complete when the client signs off in writing.

  3. Rehearse the upgrade in staging

    We restore a fresh backup of the production database and object storage into a staging environment that matches production's deployment method and configuration. We run the full upgrade there and record every step, error and manual correction. The rehearsal is done when the staging upgrade completes and the runbook reflects what actually happened.

  4. Apply the production change

    Immediately before the change, we take a new backup and record it as the documented rollback point. We then run the rehearsed steps in the agreed window and watch service health throughout. The step closes when the rollback point is recorded and the upgraded services report healthy.

  5. Verify against a checklist

    We check workspaces and projects for expected content and permissions, confirm each integration still syncs, test login through the identity provider, and send and receive a test email through the configured mail path. Each item is marked pass or fail with evidence. The step is done when every item passes or has an agreed follow-up.

  6. Hand over the runbook and support scope

    We deliver the updated runbook covering the new version, backup and rollback steps, and known issues from the rehearsal. The written support scope states what the client's team owns and what DeployOpen covers under any retainer. The handover closes when the client's operators walk through the runbook and the scope is signed.

What usually goes wrong and how to prevent it

Most Plane upgrade problems come from a small set of repeatable mistakes around editions, backups, configuration drift and silent integration failures. Each card below names one pattern and the check that prevents it.

Upgrading without the right edition line

Plane ships Community, Commercial and Airgapped editions, each on its own codebase and release cycle. Before any upgrade, confirm which edition is installed and that the target version belongs to the same edition's release line. Mixing lines can leave you on a version your edition does not publish, so check the editions and versions documentation first.

Switching to Commercial without a plan

Moving from Community to Commercial to unlock a paid plan requires a verified backup and the license key process in place before you change editions. Confirm who holds the license, how seats are counted by paid roles, and that a restore path exists if the switch fails partway. Test the procedure on a non-production copy first.

Backups that were never restored

A backup of the PostgreSQL database and the S3-compatible object storage is only useful if it restores cleanly. Schedule a restore into a separate environment before each upgrade, then open projects, cycles, modules, pages and attachments to confirm the data is complete. Record how long the restore took so the rollback window is known in advance.

Helm values drifting after upgrades

Chart upgrades can add, rename or remove values, and a file carried forward from an older release may silently override new defaults. Diff your current values file against the target chart's default values before applying changes. Keep environment-specific settings in version control so each upgrade produces a reviewable change.

External services changed out of sync

Plane can point PostgreSQL, Redis or Valkey, RabbitMQ and object storage at external managed services. When a database endpoint, credential, bucket name or storage region changes, the deployment keeps running on stale settings until something fails. Keep a register of every external endpoint and update it in the same change record as the Plane configuration.

Integrations and SSO failing quietly

SAML, OIDC and other identity connections, along with importers and any webhooks, can stop working after an upgrade without a clear error for users. Build a short post-upgrade test that signs in with a test account through each identity path, checks that role mapping still works, and confirms that outbound integrations deliver. Do this in staging before production.

Skipping release notes

Release notes are where configuration changes, removed environment variables and required migrations are announced. Skipping them is how an upgrade breaks a setting that appeared to work for months. Read every release between your current version and the target, list the required configuration actions, and assign an owner to each one before the upgrade window opens.

Which upgrade tasks stay in-house and which go to a partner

This table separates the Plane upgrade tasks that most teams keep internally from those they often hand to a partner, with the skills each task needs so you can match them to your staff.

TaskUsually kept in-houseUsually outsourcedSkills the task needs
Routine patch reviewReading each Community release note and deciding whether it affects your workspaceNot usually outsourcedRelease-note review, basic knowledge of your Plane feature usage
Owning the backup scheduleSetting frequency, retention and who can restoreSetting up the first backup and restore tests for PostgreSQL and object storagePostgreSQL administration, object storage (S3-compatible) administration, backup tooling
Edition path planningDeciding whether you need Community, Commercial or AirgappedMapping the edition change to your deployment, data and identity setupPlane edition knowledge, architecture review, licensing review
First Helm or Compose upgrade cycleAttending the change window and checking users after the upgradeRunning the first upgrade with pinned versions, config diffs and health checksKubernetes and Helm, Docker and Docker Compose, configuration management
Community to Commercial switch supportConfirming seat counts and which users hold paid rolesExecuting the switch, license key setup and post-switch verificationPlane administration, Docker or Kubernetes, PostgreSQL migrations
Rollback rehearsalApproving the rollback decision and communicating downtimeRehearsing restore of database and object storage to a known-good versionPostgreSQL administration, Kubernetes and Helm, object storage restore, identity administration for test users
Business sign-off on workspace changesApproving changes to projects, cycles, modules and permissionsNot usually outsourcedWorkspace administration, knowledge of team process
User communicationAnnouncing maintenance windows and new behavior to teamsNot usually outsourcedInternal communications, support desk coordination
Runbook for future upgradesReviewing and adopting the runbook for your teamWriting the step-by-step runbook from the first cycleTechnical writing, Kubernetes and Helm, Docker, identity administration

How the work changes by starting point

A single-node Community install on Docker Compose is the simplest upgrade path, but the plan still depends on the Community release cycle, which runs separately from the Commercial and Airgapped editions. Confirm the target version against the editions and versions documentation before scheduling anything.

  • Plan: Read the release notes for each Community version between your current release and the target, and check whether any compose file or environment variable changes.
  • Backup scope: Dump the PostgreSQL database, copy the object storage volume, and save the compose file and environment file together so you can restore the exact prior state.
  • Verification: Log in as the admin, open a project with recent work items, upload and download an attachment, and confirm background jobs such as notifications still run.
  • Approval: The single admin usually approves the change, but record a second sign-off from whoever owns the workspace data if the instance holds client or regulated project information.

What your team needs to provide

Before any upgrade work starts, your team needs to provide access to the Plane host or cluster with privileges that allow pulling images, changing the running configuration and restarting services. For a Docker Compose install that means the Compose file and environment file in use; for a Kubernetes install it means the current Helm values file and the release name, so the upgrade can be planned against what is actually running rather than a default template.

Provide the database and object storage details as well: PostgreSQL and S3-compatible storage (for example MinIO) credentials, the locations of the most recent backups, and the restore procedure your team already uses. Also name a business owner who can approve the workspace after the upgrade, since the people who sign off on functionality are rarely the people who run the server. Agree a change window and any freeze dates for the project and for your organization in general, so the cutover does not land in a sprint close or a reporting period.

Decide on the license and plan position early. If you intend to use features that require a paid plan, a self-hosted Community install must first move to the Commercial Edition and be given a license key. Confirm which plan you are on, who holds the license, and who can approve a change of edition. Also confirm with Plane the supported upgrade path for your edition and check the edition and version documentation and the release notes for the target release. Finally, provide a staging environment or permission to create one, so the upgrade is rehearsed on a copy of your data first.

Questions about Plane upgrades and support

Can our own team upgrade self-hosted Plane, or should we outsource it?

Often yes, if your team already runs containers and PostgreSQL in production, because Plane publishes its self-hosting methods and upgrade steps. Plane offers Community, Commercial and Airgapped editions, each built on a distinct codebase with its own release cycle, so every upgrade starts with confirming which edition you run and which release notes apply. Consider outsourcing if no one on staff owns the stack, if upgrades keep slipping, or if you want a fixed scope with written deliverables. DeployOpen plans and runs these upgrades in your infrastructure and offers ongoing upgrades as a retainer.

How much effort does a Plane upgrade take and what drives it?

Effort depends on your install and the version gap, so no single figure fits every team. The main drivers are the edition, whether you run Docker Compose or the Helm chart on Kubernetes, and whether PostgreSQL, Redis or Valkey, RabbitMQ and S3-compatible storage are bundled or external. Customizations, identity integrations such as SSO, and the number of environments you must test also add time. Ask any partner for a written estimate that lists each of these inputs, and review the release notes for every version between your current release and the target.

Does moving from Community to Commercial keep our existing Plane data?

Plane's editions and versions documentation says a self-hosted Community install must first switch to the Commercial Edition before it can use a paid plan with a license key. Because the editions are built on distinct codebases, treat the switch as a planned migration and confirm in that documentation exactly what carries over for your install method. Test the switch on a copy of your data first and keep a restorable backup of the original instance. Plane's pricing page lists Pro at 6 to 8 US dollars and Business at 13 to 15 US dollars per user per month, with Enterprise Grid on request.

What must we back up before each Plane upgrade?

Back up everything the instance needs to restore to the exact version it runs today. In practice that means a consistent PostgreSQL dump or snapshot, the object storage bucket that holds attachments and uploads, and your environment files or Helm values. Record the current image tags so you can roll back. Check the release notes for whether anything in Redis or Valkey or RabbitMQ also needs saving. Restore the backup into a test environment and confirm logins, attachments and a sample project before you upgrade production.

What does ongoing Plane support cover, and what does it leave out?

Support scope is whatever your written agreement names. DeployOpen offers ongoing support, upgrades and continuous testing as retainers, and most engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts. Common items to list include upgrade execution, backup verification, monitoring follow-up and infrastructure changes. Items to confirm as excluded are fixes to Plane's own source code, new feature development, and your cloud or hardware costs. Make sure the quote states response expectations in writing before you sign.

Do we need a partner for an air-gapped or Kubernetes Plane install?

Not always, but a partner usually saves time when the install must run offline or on a high-availability cluster. Plane documents Kubernetes with Helm for high availability and air-gapped installs, and its Kubernetes guide installs the Commercial Edition, while the Airgapped edition is a separate proprietary build. Plan for external PostgreSQL, Redis or Valkey, RabbitMQ and S3-compatible storage, and for how images and updates reach an isolated network. Confirm with Plane which edition fits your air-gapped requirement and what its update path looks like.

How DeployOpen runs Plane upgrades and support

DeployOpen plans and carries out Plane upgrades inside your own infrastructure, starting from the edition you run and the release line you plan to reach. Ongoing support is available as a retainer once the instance is handed over.

How we scope

  • We confirm which Plane edition you run, since Community, Commercial and Airgapped each follow their own release cycle.
  • We inventory the deployment method, such as Docker Compose or Kubernetes with Helm, and the external database, Redis or Valkey, RabbitMQ and object storage in use.
  • Engagements are fixed-scope, so the written scope states the upgrade path, any edition switch, the backup and rollback steps, and the deliverables before work starts.

How we build

  • We take a verified backup of the database and object storage before each upgrade step, and confirm it can be restored.
  • We run the upgrade first in a non-production copy, then check sign-in, projects, cycles, modules, pages and integrations against a written test list.
  • When a switch from Community to Commercial is in scope, we plan the license key, seat counts by paid role and the change in edition as explicit steps.

How we hand over

  • You receive a runbook covering the versions tested, the order of upgrade steps, the rollback procedure and the backup restore check.
  • We document configuration changes, environment variables and any deviations from the vendor's standard deployment method.
  • Handover includes a review with your platform and admin team so they can repeat the upgrade process without us.

How we support

  • Ongoing support, upgrades and continuous testing are available as a retainer, with the scope agreed in writing.
  • Support covers upgrades across Plane release lines, backup verification and reviewing changes in each vendor release before rollout.
  • Confirm with us what response times, maintenance windows and escalation paths the retainer includes before you sign.

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.