Skip to content

Upgrade from Community to Commercial Edition ​

The Commercial edition comes with the free plan and the flexibility to upgrade to a paid plan at any point.

WARNING

The instructions provided on this page are specific to installations using Docker. If you are running Plane on Kubernetes, you'll need to manually create a database dump and back up your file storage by copying the relevant volumes or storage paths.

Prerequisites ​

  • Install the Commercial Edition on a fresh machine, not the one running the Plane Community Edition.
  • Be sure to log in as the root user or as a user with sudo access. The /opt folder requires sudo or root privileges.

This upgrade path is for installations using Plane's default PostgreSQL database and MinIO object storage.

Back up data on Community instance ​

  1. Download the latest version of setup.sh.

    bash
    curl -fsSL https://github.com/makeplane/plane/releases/latest/download/setup.sh -o setup.sh
  2. Run the setup.sh backup script to take the backup of the Community Edition instance.

    bash
    ./setup.sh backup
  3. When done, your data will be backed up to the folder shown on the screen. e.g., /plane-selfhost/plane-app/backup/20240522-1027 This folder will contain 3 tar.gz files.

    • pgdata.tar.gz
    • redisdata.tar.gz
    • uploads.tar.gz
  4. Copy all the three files from the server running the Community Edition to any folder on the server running the Commercial Edition.

    e.g., ~/ce-backup

Restore data on Commercial instance ​

  1. Start any command-line interface like Terminal and go into the folder with the back-up files.

    cd ~/ce-backup
  2. Copy and paste the script below on Terminal and hit Enter.

     TARGET_DIR=/opt/plane/data
     sudo mkdir -p $TARGET_DIR
    
     for FILE in *.tar.gz; do
         if [ -e "$FILE" ]; then
             tar -xzvf "$FILE" -C "$TARGET_DIR"
         else
             echo "No .tar.gz files found in the current directory."
             exit 1
         fi
     done
    
     # Remove destinations first, then mv
     sudo rm -rf $TARGET_DIR/db && mv $TARGET_DIR/pgdata $TARGET_DIR/db
     sudo rm -rf $TARGET_DIR/redis && mv $TARGET_DIR/redisdata $TARGET_DIR/redis
    
     mkdir -p $TARGET_DIR/minio
     sudo rm -rf $TARGET_DIR/minio/uploads && mv $TARGET_DIR/uploads $TARGET_DIR/minio/uploads
  3. This script will extract your Community Edition data and restore it to /opt/plane/data.

Manual backup and restore without CLI

Use this method if you prefer to back up data manually or if the setup.sh script isn't working for your environment.

What gets migrated ​

  • PostgreSQL database (all Plane data)
  • MinIO uploads (attachments, images, files)

Prerequisites ​

  • Plane CE and Commercial versions should be compatible
  • Shell access to both servers
  • Docker installed on both servers

Back up data on Community instance ​

  1. Create backup folders:

    bash
    mkdir -p ~/ce-backups/db
    mkdir -p ~/ce-backups/minio/uploads
    cd ~/ce-backups
  2. Back up PostgreSQL data:

    bash
    docker cp plane-app-plane-db-1:/var/lib/postgresql/data/. db/
  3. Back up MinIO uploads:

    bash
    docker cp plane-app-plane-minio-1:/export/uploads minio/uploads/
  4. Verify backup sizes:

    bash
    du -sh db minio/uploads

    Make sure sizes look reasonable (not just a few KB).

  5. Transfer backup to Commercial server:

    bash
    scp -r ~/ce-backups user@commercial-server:/tmp/

Restore data on Commercial instance ​

  1. Stop Plane:

    bash
    prime-cli stop

    Verify all containers are down:

    bash
    docker ps
  2. Back up existing Commercial data (safety precaution):

    bash
    mv /opt/plane/data/db /opt/plane/data/db.bak
    mv /opt/plane/data/minio/uploads /opt/plane/data/minio/uploads.bak
  3. Restore PostgreSQL:

    bash
    mv /tmp/ce-backups/db /opt/plane/data/db
  4. Restore MinIO uploads:

    bash
    mv /tmp/ce-backups/minio/uploads /opt/plane/data/minio/uploads
  5. Start Plane:

    bash
    prime-cli restart

Validate the migration ​

  • Login works
  • Projects are visible
  • Attachments open correctly

Rollback ​

If something fails, restore from the backup you created in step 2:

bash
prime-cli stop

rm -rf /opt/plane/data/db
mv /opt/plane/data/db.bak /opt/plane/data/db

rm -rf /opt/plane/data/minio/uploads
mv /opt/plane/data/minio/uploads.bak /opt/plane/data/minio/uploads

prime-cli restart

What's next ​