Plane is a versatile open-source project management platform that many teams rely on for organizing tasks and improving collaboration. Yet, maintaining and customizing a self-hosted Plane instance requires careful planning, especially when upgrading or adapting it to specific requirements.

This article covers how to upgrade Plane. It explains how to work with specific versions of Plane. It also details how to use a custom Docker registry for Plane Docker images. We’ll also examine the benefits and downsides of this approach.

Upgrading a Self-Hosted Instance of Plane

Upgrading Plane ensures access to the latest features, performance enhancements, and security patches. Using the provided setup.sh script simplifies the process for self-hosted environments.

Backup Your Plane Instance

Always create a backup of your Plane database before an upgrade!

Download the Latest setup.sh Script

Make sure you have the latest version of the setup.sh script:

Execute the script:

This will bring up a menu, choose Option 5 to Upgrade.

Select a Action you want to perform:

This choice stops all the containers, downloads the latest docker-compose.yaml and new variables-upgrade.env files. The plane.env file won’t be overwritten, after the update completes choose Option 6 to exit the menu.

After the upgrade, open variables-upgrade.env and compare it with your existing plane.env file. Copy new variables from variables-upgrade.env to plane.env and set correct values. This is essential to make sure that all the changes are configured for the latest version.

Once the plane.env file is updated, execute the setup.sh script again and choose Option 2 to start the services.

Verify the Upgrade

Access the Plane dashboard and confirm that the version matches the latest release.

Please note that, even though all services are running it takes 1-2 minutes until you can access the dashboard.

Using a Specific Version of Plane

If the latest version is unsuitable for your setup or dependencies, you can specify a desired version during upgrade.

How to Use a Specific Version

Change the variable APP_RELEASE in the plane.env file and instead of stable add the desired tag e.g. v0.20-dev.

Execute the setup.sh script and choose Option 4 to restart the services.

Test the Deployment

After the upgrade, verify that the specified version is installed by checking the Plane dashboard or run docker ps command to check if the services are running the specific desired version:

By explicitly setting the version, you keep control over what features or changes are introduced to your instance.

Setting Up a Custom Artifact Registry for Plane Images

A custom artifact registry enables better control over Docker images, ensuring you deploy only trusted and tested versions of Plane.

Pull and Retag Plane Images

Fetch the desired Plane image and push it to your custom registry:

Make sure you do this for all Docker images Plane uses.

Update Plane’s Configuration

Edit your Plane deployment configuration to point to the custom registry.

Create a variable in the plane.env file called DOCKER_IMAGE with the value of the custom registry and use that variable in the docker-compose.yaml for all the needed services.

Authenticate (If Required)

For private registries, log in before pulling images:

Benefits of Using a Custom Artifact Registry

  • Enhanced Security: Ensures only vetted and secure images are used, reducing exposure to malicious or compromised images.
  • Version Control: Stores only specific versions, preventing accidental upgrades or downgrades.

Downsides to Using a Custom Artifact Registry

  • Increased Maintenance: You’ll need to regularly update, secure, and monitor the registry itself.
  • Complexity: Setting up and managing a custom registry adds overhead compared to relying on public repositories.

Conclusion

Upgrading and customizing a self-hosted Plane instance can be straightforward with tools like the setup.sh script and custom artifact registries.

By upgrading to the latest version or targeting a specific release, you guarantee stability and compatibility within your environment. Adding a custom registry introduces control and security, though it comes with extra setup and maintenance requirements.

These approaches offer a robust and secure foundation for managing your Plane instance. They allow your team to focus on what matters most — collaboration and productivity.

Author avatar

About Stefan Stojanovski

is part of Keitaro

How may we help you with ?

By submitting this form you agree to Keitaro using your personal data in accordance with the General Data Protection Regulation. You can unsubscribe at any time. For information about our privacy practices, please visit our Privacy Policy page.