Skip to content

Commit ca3c456

Browse files
authored
Merge pull request #189 from makeplane/add-note-for-upgrade
Add note on cloud database and S3 storage during migration from Community to Commercial
2 parents 7beb3fc + 7913d43 commit ca3c456

2 files changed

Lines changed: 102 additions & 49 deletions

File tree

self-hosting/methods/docker-compose.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ Ensure you're using the **latest version of Docker Compose**. Check your Docker
3232
curl -fsSL https://prime.plane.so/install/ | sh -
3333
```
3434
3. Follow the instructions on the terminal. Hit `Enter` or `Return` to continue.
35-
4. Enter the domain name where you will access the Plane app in the format `domain.tld` or `subdomain.domain.tld`. If you are using a paid plan, the domain linked to the license can’t be changed later.
35+
4. Enter the domain name where you will access the Plane app in the format `domain.tld` or `subdomain.domain.tld`.
3636
5. Choose one of the options below:
3737
- **Express**: Plane installs with the default configurations.
3838
- **Advanced**: You can customize the database, Redis, storage and other settings.

self-hosting/upgrade-from-community.mdx

Lines changed: 101 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -6,58 +6,111 @@ The Commercial edition comes with the free plan and the flexibility to upgrade t
66

77
<Warning>
88
**IMPORTANT**
9-
10-
Make sure you already have Commercial Edition installed on a fresh machine before starting this migration. If you haven’t installed it yet, follow our [Commercial Edition](/self-hosting/methods/docker-compose#recommended-edition) installation guide first.
11-
129
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.
1310
</Warning>
1411

1512
## Prerequisites
1613
- Install the [Commercial Edition](/self-hosting/methods/docker-compose#recommended-edition) on a fresh machine, not the one running the Plane Community Edition.
1714
- Be sure to log in as the root user or as a user with sudo access. The `/opt` folder requires sudo or root privileges.
1815

19-
## Back up data on Community instance
20-
1. Download the latest version of `setup.sh`.
21-
```bash
22-
curl -fsSL https://github.com/makeplane/plane/releases/latest/download/setup.sh -o setup.sh
23-
```
24-
25-
2. Run the setup.sh backup script to take the backup of the Community Edition instance.
26-
```bash
27-
./setup.sh backup
28-
```
29-
3. When done, your data will be backed up to the folder shown on the screen.
30-
e.g., `/plane-selfhost/plane-app/backup/20240522-1027`
31-
This folder will contain 3 `tar.gz` files.
32-
- `pgdata.tar.gz`
33-
- `redisdata.tar.gz`
34-
- `uploads.tar.gz`
35-
36-
4. Copy all the three files from the server running the Community Edition to any folder on the server running the Commercial Edition.
37-
38-
e.g., `~/ce-backup`
39-
40-
## Restore data on Commercial instance
41-
1. Start any command-line interface like Terminal and go into the folder with the back-up files.
42-
```
43-
cd ~/ce-backup
44-
```
45-
2. Copy and paste the script below on Terminal and hit Enter.
46-
```
47-
TARGET_DIR=/opt/plane/data
48-
sudo mkdir -p $TARGET_DIR
49-
for FILE in *.tar.gz; do
50-
if [ -e "$FILE" ]; then
51-
tar -xzvf "$FILE" -C "$TARGET_DIR"
52-
else
53-
echo "No .tar.gz files found in the current directory."
54-
exit 1
55-
fi
56-
done
57-
58-
mv $TARGET_DIR/pgdata/ $TARGET_DIR/db
59-
mv $TARGET_DIR/redisdata/ $TARGET_DIR/redis
60-
mkdir -p $TARGET_DIR/minio
61-
mv $TARGET_DIR/uploads/ $TARGET_DIR/minio/uploads/
62-
```
63-
3. This script will extract your Community Edition data and restore it to `/opt/plane/data`.
16+
<Tabs>
17+
<Tab title="Standard setup (built-in DB & storage)">
18+
19+
This upgrade path is for installations using Plane's default PostgreSQL database and MinIO object storage.
20+
21+
22+
## Back up data on Community instance
23+
1. Download the latest version of `setup.sh`.
24+
```bash
25+
curl -fsSL https://github.com/makeplane/plane/releases/latest/download/setup.sh -o setup.sh
26+
```
27+
28+
2. Run the setup.sh backup script to take the backup of the Community Edition instance.
29+
```bash
30+
./setup.sh backup
31+
```
32+
3. When done, your data will be backed up to the folder shown on the screen.
33+
e.g., `/plane-selfhost/plane-app/backup/20240522-1027`
34+
This folder will contain 3 `tar.gz` files.
35+
- `pgdata.tar.gz`
36+
- `redisdata.tar.gz`
37+
- `uploads.tar.gz`
38+
39+
4. Copy all the three files from the server running the Community Edition to any folder on the server running the Commercial Edition.
40+
41+
e.g., `~/ce-backup`
42+
43+
## Restore data on Commercial instance
44+
1. Start any command-line interface like Terminal and go into the folder with the back-up files.
45+
```
46+
cd ~/ce-backup
47+
```
48+
2. Copy and paste the script below on Terminal and hit Enter.
49+
```
50+
TARGET_DIR=/opt/plane/data
51+
sudo mkdir -p $TARGET_DIR
52+
for FILE in *.tar.gz; do
53+
if [ -e "$FILE" ]; then
54+
tar -xzvf "$FILE" -C "$TARGET_DIR"
55+
else
56+
echo "No .tar.gz files found in the current directory."
57+
exit 1
58+
fi
59+
done
60+
61+
mv $TARGET_DIR/pgdata/ $TARGET_DIR/db
62+
mv $TARGET_DIR/redisdata/ $TARGET_DIR/redis
63+
mkdir -p $TARGET_DIR/minio
64+
mv $TARGET_DIR/uploads/ $TARGET_DIR/minio/uploads/
65+
```
66+
3. This script will extract your Community Edition data and restore it to `/opt/plane/data`.
67+
</Tab>
68+
69+
<Tab title="Managed services (external DB and storage)">
70+
71+
This upgrade path is for installations using external or managed database and object storage services (like AWS RDS and S3). Since your data already lives in external services, you only need to update your configuration — no backup and restore required.
72+
73+
## Update configuration for Commercial Edition
74+
75+
1. Open the `plane.env` file located at `/opt/plane/plane.env`.
76+
77+
2. Configure database connection.
78+
79+
1. Find the `DATABASE_URL` environment variable.
80+
2. Verify it points to your external database:
81+
```env
82+
DATABASE_URL=postgresql://user:password@your-db-host:5432/plane
83+
```
84+
85+
If you need to change it, update the value with your managed database connection string.
86+
87+
3. Configure object storage
88+
89+
1. Find the `#DATASTORE SETTINGS` section in `plane.env`
90+
2. Update these environment variables for your external storage:
91+
```env
92+
USE_MINIO=0
93+
AWS_REGION=us-east-1
94+
AWS_ACCESS_KEY_ID=<your-access-key>
95+
AWS_SECRET_ACCESS_KEY=<your-secret-key>
96+
AWS_S3_ENDPOINT_URL=https://s3.amazonaws.com
97+
AWS_S3_BUCKET_NAME=plane-uploads
98+
```
99+
100+
:::info
101+
Setting `USE_MINIO=0` disables the local MinIO service and enables external object storage (S3 or S3-compatible services).
102+
:::
103+
104+
4. Restart Plane services to apply the configuration:
105+
```bash
106+
prime-cli restart
107+
```
108+
109+
Your Commercial Edition instance is now connected to your existing external database and storage.
110+
111+
</Tab>
112+
</Tabs>
113+
114+
## What's next
115+
116+
- [Activate a paid plan license](/self-hosting/manage/manage-licenses).

0 commit comments

Comments
 (0)