mirror of
https://github.com/makeplane/plane
synced 2024-06-14 14:31:34 +00:00
59335618b4
* feat: session authentication and god-mode implementation (#4302) * dev: move authentication to base class for credentials * chore: new account creation * dev: return error as query parameter * dev: accounts and profile endpoints for user * fix: user store updates * fix: store fixes * fix: type fixes * dev: set is_password_autoset and is_email_verifier for auth providers * dev: move all auth configuration to different apps * dev: fix circular imports * dev: remove unused imports * dev: fix imports for authentication * dev: update endpoints to use rest framework api viewa * fix: onboarding fixes * dev: session model changes * fix: session model and add check for last name first name and avatar * dev: fix referer redirect * dev: remove auth imports * dev: fix imports * dev: update migrations * fix: instance admin login * comflict: conflicts resolved * dev: fix import errors and email check endpoint * fix: error messages and redirects after login * dev: configs api * fix: is github enabled boolean * dev: merge config and instance api * conflict: merge conflict resolved * dev: instance admin sign up endpoint * dev: enable magic link login * dev: configure instance variables for github and google enabled * chore: typo fixes * fix: god mode docker file changes * build-error: resolved build errors * fix: docker compose changes * dev: add email credential check endpoint * fix: minor package changes * fix: docker related changes * dev: add nginx rules in the nginx template * dev: refactor the url patterns * fix: docker changes * fix: docker files for god-mode * fix: static export * fix: nginx conf * dev: smtp sender refused exception * fix: godmode fixes * chore: god mode revamp. * dev: add csrf secured flag * fix: oauth redirect uri and session settings * chore: god mode app changes. (#3982) * chore: send test email functionality. * style: authentication methods page UI revamp. * chore: create workspace popup. * fix: user me endpoint * dev: fix redirection after authentication * dev: handle god mode redirection * fix: redirections * fix: auth related hooks * fix: store related fixes * dev: fix session authentication for rest apis * fix: linting errors * fix: removing references of useStore= * dev: fix redirection and password validation * dev: add useUser hook * fix: build fixes and lint issues * fix: removing useApplication hook * fix: build errors * fix: delete unused files * fix: auth build fixes * fix: bugfixes * dev: alter avatar to support more than 255 chars * dev: fix profile endpoint and increase session expiry time and update session on every request * chore: resolved the migration * chore: resolved merge conflicts * dev: error codes and error messages for the auth flow * dev: instance admin sign up and sign in endpoint * dev: use zxcvbn to validate password strength * dev: add extra parameters when error handling on instance god mode * chore: auth init * chore: signin/ signup form ui updates and password strength meter. * chore: update password fields. * chore: validations and error handling. * chore: updated sign-up form * chore: updated workflow and updated the code structure * chore: instance empty state for god-mode. * chore: instance and auth wrappers update * fix: renaming godmode * fix: docker changes * chore: updated authentication wrappers * chore: updated the authentication workflow and rendered all pages * fix: build errors * fix: docker related fixes * fix: tailing slash added to space and admin for valid nginx locations * chore: seperate pages for signup and login * git-action modified for admin file changes * feature build action updated for admin app * self host modified * chore: resolved build errors and handled signin and signup in a seperate route * chore: sign-in and sign-up revamp. * fix: migration conflicts * dev: migrations * chore: handled redirection * dev: admin url * dev: create seperate endpoint for instance admin me * dev: instance admin endpoint * git action fixed * chore: handled auth wrappers * dev: add serializer and remove print logs * fix: build errors * dev: fix migrations * dev: instance folder structuring * fix: linting errors * chore: resolved build errors * chore: updated store and auth workflow and updates api service types * chore: Replaced Next Link with Anchoer tag for god-mode redirection * add 3333 port to allowed origins * make password login working again * dev: fix redirection, add admin signout endpoint and fix email credential check endpoint * fix unique code sign in * fix small build error * enable sign out * dev: add google client secret variable to configure instance * dev: add referer for redirection * fix origin urls for oauths * admin setup and login separation * dev: fix user redirection and tour completed endpoint * fix build errors * dev: add set password endpoint * dev: remove user creation logic for redirection * fix unique code page * fix forgot password * chore: onboarding revamp. * dev: fix workspace slug redirection in login * chore: invited user onboarding flow update. * chore: fix switch or delete account modal. * fix members exception * refactor auth flows and add invitations to auth flow * fix sig in sign up url * fix action url * fix build errors * dev: fix user set password when logging in * dev: reset password endpoint * chore: confirm password validation for signup and onboarding. * enable reset password * fix build error * chore: minor UI updates. * chore: forgot and reset password UI revamp. * fix authentication re directions * dev: auth redirections * change url paths for signup and signin * dev: make the user logged in when changing passwords * dev: next path redirection for web and space app * dev: next path for magic sign in endpoint * dev: github space endpoint * chore: minor ui updates and fixes in web app. * set password screen * fix multiple unique code generation * dev: next path base redirection * dev: remove print logs * dev: auth space endpoints * fix build errors * dev: invalidate cache on configuration update, god mode exception errors and authentication failed code * dev: fix space endpoints and add extra endpoints * chore: space auth revamp. * dev: add sign up for space app * fix: build errors. * fix: auth redirection logic. * chore: space app onboarding revamp. --------- Co-authored-by: pablohashescobar <nikhilschacko@gmail.com> Co-authored-by: NarayanBavisetti <narayan3119@gmail.com> Co-authored-by: gurusainath <gurusainath007@gmail.com> Co-authored-by: Prateek Shourya <prateekshourya29@gmail.com> Co-authored-by: Manish Gupta <59428681+mguptahub@users.noreply.github.com> Co-authored-by: Manish Gupta <manish@mgupta.me> Co-authored-by: = <=> Co-authored-by: rahulramesha <rahulramesham@gmail.com> * chore: updated file structure for admin * chore: updated admin-sidebar * chore: auth error handling * chore: onboarding UI updates and dark mode fixes. * chore: add `user personalization` step to onboarding profile setup screen. * chore: fix minor UI bugs * chore: authentication workflow changes * chore: handled signin workflow * style: switch or delete account workflow * chore: god mode redirection URL * feat(dashboard): improve label readability (#4321) change none label for all time in dashbard filters * chore: god-mode redirection * chore: onboarding ui updates and accept invitation workflow updates. * chore: rename unique code auth form. * style: space auth ux copy. * chore: updated intance and auth wrapper logic * chore: update default layout style. * chore: update confirm password. * chore: backend redirection * style: update banner ui * chore: minor ui updates and validation fix. * chore: removed old auth hook * chore: handled auth wrapper * chore: handled store loaders in the user * chore: handled logs * chore: add loading spinners for all auth and onboarding form buttons. * chore: add background pattern in admin auth forms and minor ui fixes. * chore: UI changes and revamp components for authentication * chore: auth UI consistency in web, space and admin. * chore: resolved build errors * chore: removed old auth hooks * chore: handled lint errors in use accounts * chore: updated authentication wrapper logic in web app * [WEB -1149] dev: update dependencies (#4333) * dev: upgrade dependencies remove unwanted dependency and add ruff as local dependency * dev: add comments * chore: authentication wrapper fetch user * chore: updated store loader * chore: removed old auth wrapper and replaced the imports with new auth wrapper * chore: join workspace invitation workflow updates * chore: build error resolved in deploy * chore: handled onboarding step error in web app * chore: SMTP Name and Password validation removed * chore: handled seo and signout logic and new user popup * chore: added redirection to plane in the sidebar * chore: resolved build errors * dev: admin session cookie update * chore: updated cookie session time for admin * dev: add start date and end date to projects (#4355) * chore: add email security dropdown and remove SMTP username and password validation. * chore: add tooltip to admin sidebar help-section. * chore: add dropdown to collapsed admin sidebar. * chore: profile themning * chore: updated page error messages and theme in command palette * dev: add email validation in email check apis * dev: remove start date and end date from project * chore: updated space folder structure and updated the store hooks * dev: error codes for authentication * chore: handled authentication in space and web apps * chore: banner redirect handling the email * dev: god mode error codes * chore: updated error codes * chore: updated onboarding images * dev: signout endpoints and saving login domain while creating sessions * feat: Self Host Data Backup (#4383) * feat: implemented backup , support for docker-compose tool, readme updated * minor fix in shell script * codacy fixes * chore: handled build errors in web * chore: updated react, react-dom, and next versions * chore: updated password autioset in the signin * dev: add logo prop to views and pages * chore: updated api service and handled the set password in store * chore: handled build errors and code cleanup * dev: return 401 when the session is not valid * dev: users/me exception for api * chore: installed lodash in space app * dev: add auth route in nginx --------- Co-authored-by: pablohashescobar <nikhilschacko@gmail.com> Co-authored-by: NarayanBavisetti <narayan3119@gmail.com> Co-authored-by: gurusainath <gurusainath007@gmail.com> Co-authored-by: Prateek Shourya <prateekshourya29@gmail.com> Co-authored-by: Manish Gupta <59428681+mguptahub@users.noreply.github.com> Co-authored-by: Manish Gupta <manish@mgupta.me> Co-authored-by: rahulramesha <rahulramesham@gmail.com> Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com> Co-authored-by: Daniel Alba <56451942+redrum15@users.noreply.github.com> Co-authored-by: Nikhil <118773738+pablohashescobar@users.noreply.github.com>
448 lines
14 KiB
Markdown
448 lines
14 KiB
Markdown
# Self Hosting
|
|
|
|
In this guide, we will walk you through the process of setting up a self-hosted environment. Self-hosting allows you to have full control over your applications and data. It's a great way to ensure privacy, control, and customization.
|
|
|
|
We will cover two main options for setting up your self-hosted environment: using a cloud server or using your desktop. For the cloud server, we will use an AWS EC2 instance. For the desktop, we will use Docker to create a local environment.
|
|
|
|
Let's get started!
|
|
|
|
## Setting up Docker Environment
|
|
|
|
<details>
|
|
<summary>Option 1 - Using Cloud Server</summary>
|
|
<p>Best way to start is to create EC2 maching on AWS. It must of minimum t3.medium/t3a/medium</p>
|
|
<p>Run the below command to install docker engine.</p>
|
|
|
|
`curl -fsSL https://get.docker.com | sh -`
|
|
|
|
</details>
|
|
|
|
---
|
|
|
|
<details>
|
|
<summary>Option 2 - Using Desktop</summary>
|
|
|
|
#### For Mac
|
|
|
|
<ol>
|
|
<li> Download Docker Desktop for Mac from the <a href="https://hub.docker.com/editions/community/docker-ce-desktop-mac/" target="_blank">Docker Hub</a>. </li>
|
|
<li> Double-click the downloaded `.dmg` file and drag the Docker app icon to the Applications folder. </li>
|
|
<li>Open Docker Desktop from the Applications folder. You might be asked to provide your system password to install additional software.</li>
|
|
</ol>
|
|
|
|
#### For Windows:
|
|
|
|
<ol>
|
|
<li>Download Docker Desktop for Windows from the <a href="https://hub.docker.com/editions/community/docker-ce-desktop-windows/" target="_blank">Docker Hub</a>.</li>
|
|
<li>Run the installer and follow the instructions. You might be asked to enable Hyper-V and "Containers" Windows features.</li>
|
|
<li>Open Docker Desktop. You might be asked to log out and log back in, or restart your machine, for changes to take effect.</li>
|
|
</ol>
|
|
|
|
After installation, you can verify the installation by opening a terminal (Command Prompt on Windows, Terminal app on Mac) and running the command `docker --version`. This should display the installed version of Docker.
|
|
|
|
</details>
|
|
|
|
---
|
|
|
|
## Installing Plane
|
|
|
|
Installing plane is a very easy and minimal step process.
|
|
|
|
### Prerequisite
|
|
|
|
- Docker installed and running
|
|
- OS with bash scripting enabled (Ubuntu, Linux AMI, macos). Windows systems need to have [gitbash](https://git-scm.com/download/win)
|
|
- User context used must have access to docker services. In most cases, use sudo su to switch as root user
|
|
- Use the terminal (or gitbash) window to run all the future steps
|
|
|
|
### Downloading Latest Stable Release
|
|
|
|
```
|
|
mkdir plane-selfhost
|
|
|
|
cd plane-selfhost
|
|
|
|
curl -fsSL -o setup.sh https://raw.githubusercontent.com/makeplane/plane/master/deploy/selfhost/install.sh
|
|
|
|
chmod +x setup.sh
|
|
```
|
|
|
|
<details>
|
|
<summary>Downloading Preview Release</summary>
|
|
|
|
```
|
|
mkdir plane-selfhost
|
|
|
|
cd plane-selfhost
|
|
|
|
export RELEASE=preview
|
|
|
|
curl -fsSL https://raw.githubusercontent.com/makeplane/plane/$BRANCH/deploy/selfhost/install.sh | sed 's@BRANCH=master@BRANCH='"$RELEASE"'@' > setup.sh
|
|
|
|
chmod +x setup.sh
|
|
```
|
|
|
|
</details>
|
|
|
|
---
|
|
|
|
### Proceed with setup
|
|
|
|
Above steps will set you ready to install and start plane services.
|
|
|
|
Lets get started by running the `./setup.sh` command.
|
|
|
|
This will prompt you with the below options.
|
|
|
|
```bash
|
|
Select a Action you want to perform:
|
|
1) Install (arm64)
|
|
2) Start
|
|
3) Stop
|
|
4) Restart
|
|
5) Upgrade
|
|
6) View Logs
|
|
7) Backup Data
|
|
8) Exit
|
|
Action [2]: 1
|
|
```
|
|
|
|
For the 1st time setup, type "1" as action input.
|
|
|
|
This will create a create a folder `plane-app` or `plane-app-preview` (in case of preview deployment) and will download 2 files inside that
|
|
|
|
- `docker-compose.yaml`
|
|
- `plane.env`
|
|
|
|
Again the `options [1-7]` will be popped up and this time hit `7` to exit.
|
|
|
|
---
|
|
|
|
### Continue with setup - Environment Settings
|
|
|
|
Before proceeding, we suggest used to review `.env` file and set the values.
|
|
Below are the most import keys you must refer to. _<span style="color: #fcba03">You can use any text editor to edit this file</span>_.
|
|
|
|
> `NGINX_PORT` - This is default set to `80`. Make sure the port you choose to use is not preoccupied. (e.g `NGINX_PORT=8080`)
|
|
|
|
> `WEB_URL` - This is default set to `http://localhost`. Change this to the FQDN you plan to use along with NGINX_PORT (eg. `https://plane.example.com:8080` or `http://[IP-ADDRESS]:8080`)
|
|
|
|
> `CORS_ALLOWED_ORIGINS` - This is default set to `http://localhost`. Change this to the FQDN you plan to use along with NGINX_PORT (eg. `https://plane.example.com:8080` or `http://[IP-ADDRESS]:8080`)
|
|
|
|
There are many other settings you can play with, but we suggest you configure `EMAIL SETTINGS` as it will enable you to invite your teammates onto the platform.
|
|
|
|
---
|
|
|
|
### Continue with setup - Start Server
|
|
|
|
Lets again run the `./setup.sh` command. You will again be prompted with the below options. This time select `2` to start the sevices
|
|
|
|
```bash
|
|
Select a Action you want to perform:
|
|
1) Install (x86_64)
|
|
2) Start
|
|
3) Stop
|
|
4) Restart
|
|
5) Upgrade
|
|
6) View Logs
|
|
7) Backup Data
|
|
8) Exit
|
|
|
|
Action [2]: 2
|
|
```
|
|
|
|
Expect something like this.
|
|
![Downloading docker images](images/download.png)
|
|
|
|
Be patient as it might take sometime based on download speed and system configuration. If all goes well, you must see something like this
|
|
|
|
![Downloading completed](images/started.png)
|
|
|
|
This is the confirmation that all images were downloaded and the services are up & running.
|
|
|
|
You have successfully self hosted `Plane` instance. Access the application by going to IP or domain you have configured it (e.g `https://plane.example.com:8080` or `http://[IP-ADDRESS]:8080`)
|
|
|
|
---
|
|
|
|
### Stopping the Server
|
|
|
|
In case you want to make changes to `.env` variables, we suggest you to stop the services before doing that.
|
|
|
|
Lets again run the `./setup.sh` command. You will again be prompted with the below options. This time select `3` to stop the sevices
|
|
|
|
```bash
|
|
Select a Action you want to perform:
|
|
1) Install (x86_64)
|
|
2) Start
|
|
3) Stop
|
|
4) Restart
|
|
5) Upgrade
|
|
6) View Logs
|
|
7) Backup Data
|
|
8) Exit
|
|
|
|
Action [2]: 3
|
|
```
|
|
|
|
If all goes well, you must see something like this
|
|
|
|
![Stop Services](images/stopped.png)
|
|
|
|
---
|
|
|
|
### Restarting the Server
|
|
|
|
In case you want to make changes to `.env` variables, without stopping the server or you noticed some abnormalies in services, you can restart the services with RESTART option.
|
|
|
|
Lets again run the `./setup.sh` command. You will again be prompted with the below options. This time select `4` to restart the sevices
|
|
|
|
```bash
|
|
Select a Action you want to perform:
|
|
1) Install (x86_64)
|
|
2) Start
|
|
3) Stop
|
|
4) Restart
|
|
5) Upgrade
|
|
6) View Logs
|
|
7) Backup Data
|
|
8) Exit
|
|
|
|
Action [2]: 4
|
|
```
|
|
|
|
If all goes well, you must see something like this
|
|
|
|
![Restart Services](images/restart.png)
|
|
|
|
---
|
|
|
|
### Upgrading Plane Version
|
|
|
|
It is always advised to keep Plane up to date with the latest release.
|
|
|
|
Lets again run the `./setup.sh` command. You will again be prompted with the below options. This time select `5` to upgrade the release.
|
|
|
|
```bash
|
|
Select a Action you want to perform:
|
|
1) Install (x86_64)
|
|
2) Start
|
|
3) Stop
|
|
4) Restart
|
|
5) Upgrade
|
|
6) View Logs
|
|
7) Backup Data
|
|
8) Exit
|
|
|
|
Action [2]: 5
|
|
```
|
|
|
|
By choosing this, it will stop the services and then will download the latest `docker-compose.yaml` and `variables-upgrade.env`. Here system will not replace `.env` with the new one.
|
|
|
|
You must expect the below message
|
|
|
|
![Alt text](images/upgrade.png)
|
|
|
|
Once done, choose `8` to exit from prompt.
|
|
|
|
> It is very important for you to compare the 2 files `variables-upgrade.env` and `.env`. Copy the newly added variable from downloaded file to `.env` and set the expected values.
|
|
|
|
Once done with making changes in `plane.env` file, jump on to `Start Server`
|
|
|
|
---
|
|
|
|
### View Logs
|
|
|
|
There would a time when you might want to check what is happening inside the API, Worker or any other container.
|
|
|
|
Lets again run the `./setup.sh` command. You will again be prompted with the below options. This time select `6` to view logs.
|
|
|
|
```bash
|
|
Select a Action you want to perform:
|
|
1) Install (x86_64)
|
|
2) Start
|
|
3) Stop
|
|
4) Restart
|
|
5) Upgrade
|
|
6) View Logs
|
|
7) Backup Data
|
|
8) Exit
|
|
|
|
Action [2]: 6
|
|
```
|
|
|
|
|
|
This will further open sub-menu with list of services
|
|
```bash
|
|
Select a Service you want to view the logs for:
|
|
1) Web
|
|
2) Space
|
|
3) API
|
|
4) Worker
|
|
5) Beat-Worker
|
|
6) Migrator
|
|
7) Proxy
|
|
8) Redis
|
|
9) Postgres
|
|
10) Minio
|
|
0) Back to Main Menu
|
|
|
|
Service:
|
|
```
|
|
|
|
Select any of the service to view the logs e.g. `3`. Expect something similar to this
|
|
```bash
|
|
api-1 | Waiting for database...
|
|
api-1 | Database available!
|
|
api-1 | Waiting for database migrations to complete...
|
|
api-1 | Waiting for database migrations to complete...
|
|
api-1 | Waiting for database migrations to complete...
|
|
api-1 | Waiting for database migrations to complete...
|
|
api-1 | Waiting for database migrations to complete...
|
|
api-1 | Waiting for database migrations to complete...
|
|
api-1 | Waiting for database migrations to complete...
|
|
api-1 | No migrations Pending. Starting processes ...
|
|
api-1 | Instance registered
|
|
api-1 | ENABLE_SIGNUP loaded with value from environment variable.
|
|
api-1 | ENABLE_EMAIL_PASSWORD loaded with value from environment variable.
|
|
api-1 | ENABLE_MAGIC_LINK_LOGIN loaded with value from environment variable.
|
|
api-1 | GOOGLE_CLIENT_ID loaded with value from environment variable.
|
|
api-1 | GITHUB_CLIENT_ID loaded with value from environment variable.
|
|
api-1 | GITHUB_CLIENT_SECRET loaded with value from environment variable.
|
|
api-1 | EMAIL_HOST loaded with value from environment variable.
|
|
api-1 | EMAIL_HOST_USER loaded with value from environment variable.
|
|
api-1 | EMAIL_HOST_PASSWORD loaded with value from environment variable.
|
|
api-1 | EMAIL_PORT loaded with value from environment variable.
|
|
api-1 | EMAIL_FROM loaded with value from environment variable.
|
|
api-1 | EMAIL_USE_TLS loaded with value from environment variable.
|
|
api-1 | EMAIL_USE_SSL loaded with value from environment variable.
|
|
api-1 | OPENAI_API_KEY loaded with value from environment variable.
|
|
api-1 | GPT_ENGINE loaded with value from environment variable.
|
|
api-1 | UNSPLASH_ACCESS_KEY loaded with value from environment variable.
|
|
api-1 | Checking bucket...
|
|
api-1 | Bucket 'uploads' does not exist. Creating bucket...
|
|
api-1 | Bucket 'uploads' created successfully.
|
|
api-1 | Public read access policy set for bucket 'uploads'.
|
|
api-1 | Cache Cleared
|
|
api-1 | [2024-05-02 03:56:01 +0000] [1] [INFO] Starting gunicorn 21.2.0
|
|
api-1 | [2024-05-02 03:56:01 +0000] [1] [INFO] Listening at: http://0.0.0.0:8000 (1)
|
|
api-1 | [2024-05-02 03:56:01 +0000] [1] [INFO] Using worker: uvicorn.workers.UvicornWorker
|
|
api-1 | [2024-05-02 03:56:01 +0000] [25] [INFO] Booting worker with pid: 25
|
|
api-1 | [2024-05-02 03:56:03 +0000] [25] [INFO] Started server process [25]
|
|
api-1 | [2024-05-02 03:56:03 +0000] [25] [INFO] Waiting for application startup.
|
|
api-1 | [2024-05-02 03:56:03 +0000] [25] [INFO] ASGI 'lifespan' protocol appears unsupported.
|
|
api-1 | [2024-05-02 03:56:03 +0000] [25] [INFO] Application startup complete.
|
|
|
|
```
|
|
|
|
To exit this, use `CTRL+C` and then you will land on to the main-menu with the list of actions.
|
|
|
|
Similarly, you can view the logs of other services.
|
|
|
|
---
|
|
|
|
### Backup Data
|
|
|
|
There would a time when you might want to backup your data from docker volumes to external storage like S3 or drives.
|
|
|
|
Lets again run the `./setup.sh` command. You will again be prompted with the below options. This time select `8` to view logs.
|
|
|
|
```bash
|
|
Select a Action you want to perform:
|
|
1) Install (x86_64)
|
|
2) Start
|
|
3) Stop
|
|
4) Restart
|
|
5) Upgrade
|
|
6) View Logs
|
|
7) Backup Data
|
|
8) Exit
|
|
|
|
Action [2]: 7
|
|
```
|
|
|
|
In response, you can find the backup folder
|
|
|
|
```bash
|
|
Backing Up plane-app_pgdata
|
|
Backing Up plane-app_redisdata
|
|
Backing Up plane-app_uploads
|
|
|
|
Backup completed successfully. Backup files are stored in /....../plane-app/backup/20240502-1120
|
|
```
|
|
|
|
---
|
|
|
|
|
|
## Upgrading from v0.13.2 to v0.14.x
|
|
|
|
This is one time activity for users who are upgrading from v0.13.2 to v0.14.0
|
|
|
|
As there has been significant changes to Self Hosting process, this step mainly covers the data migration from current (v0.13.2) docker volumes from newly created volumes
|
|
|
|
> Before we begin with migration, make sure your v0.14.0 was started and then stopped. This is required to know the newly created docker volume names.
|
|
|
|
Begin with downloading the migration script using below command
|
|
|
|
```
|
|
|
|
curl -fsSL -o migrate.sh https://raw.githubusercontent.com/makeplane/plane/master/deploy/selfhost/migration-0.13-0.14.sh
|
|
|
|
chmod +x migrate.sh
|
|
|
|
```
|
|
|
|
Now run the `./migrate.sh` command and expect the instructions as below
|
|
|
|
```
|
|
******************************************************************
|
|
|
|
This script is solely for the migration purpose only.
|
|
This is a 1 time migration of volume data from v0.13.2 => v0.14.x
|
|
|
|
Assumption:
|
|
1. Postgres data volume name ends with _pgdata
|
|
2. Minio data volume name ends with _uploads
|
|
3. Redis data volume name ends with _redisdata
|
|
|
|
Any changes to this script can break the migration.
|
|
|
|
Before you proceed, make sure you run the below command
|
|
to know the docker volumes
|
|
|
|
docker volume ls -q | grep -i "_pgdata"
|
|
docker volume ls -q | grep -i "_uploads"
|
|
docker volume ls -q | grep -i "_redisdata"
|
|
|
|
*******************************************************
|
|
|
|
Given below list of REDIS volumes, identify the prefix of source and destination volumes leaving "_redisdata"
|
|
---------------------
|
|
plane-app_redisdata
|
|
v0132_redisdata
|
|
|
|
Provide the Source Volume Prefix :
|
|
```
|
|
|
|
**Open another terminal window**, and run the mentioned 3 command. This may be different for users who have changed the volume names in their previous setup (v0.13.2)
|
|
|
|
For every command you must see 2 records something like shown in above example of `redisdata`
|
|
|
|
To move forward, you would need PREFIX of old setup and new setup. As per above example, `v0132` is the prefix of v0.13.2 and `plane-app` is the prefix of v0.14.0 setup
|
|
|
|
**Back to original terminal window**, _Provide the Source Volume Prefix_ and hit ENTER.
|
|
|
|
Now you will be prompted to _Provide Destination Volume Prefix_. Provide the value and hit ENTER
|
|
|
|
```
|
|
Provide the Source Volume Prefix : v0132
|
|
Provide the Destination Volume Prefix : plane-app
|
|
```
|
|
|
|
In case the suffixes are wrong or the mentioned volumes are not found, you will receive the error shown below. The image below displays an error for source volumes.
|
|
|
|
![Migrate Error](images/migrate-error.png)
|
|
|
|
In case of successful migration, it will be a silent exit without error.
|
|
|
|
Now its time to restart v0.14.0 setup.
|