feat: cwctl install pgvector for new deployments (v4.0) (#10657)
Starting v4.0, pgvector support is mandatory. This PR adds pgvector support for new/existing Linux installations via cwctl. - Install `pgvector` for new deployments via cwctl - Show a warning before upgrading to 4.0 or above for existing installations. The user is expected to install `pgvector` based on their version of self-hosted Postgres or managed Postgres.
This commit is contained in:
@@ -1 +1 @@
|
|||||||
3.0.0
|
3.1.0
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
# Description: Install and manage a Chatwoot installation.
|
# Description: Install and manage a Chatwoot installation.
|
||||||
# OS: Ubuntu 20.04 LTS, 22.04 LTS, 24.04 LTS
|
# OS: Ubuntu 20.04 LTS, 22.04 LTS, 24.04 LTS
|
||||||
# Script Version: 3.0.0
|
# Script Version: 3.1.0
|
||||||
# Run this script as root
|
# Run this script as root
|
||||||
|
|
||||||
set -eu -o errexit -o pipefail -o noclobber -o nounset
|
set -eu -o errexit -o pipefail -o noclobber -o nounset
|
||||||
@@ -19,7 +19,7 @@ fi
|
|||||||
# option --output/-o requires 1 argument
|
# option --output/-o requires 1 argument
|
||||||
LONGOPTS=console,debug,help,install,Install:,logs:,restart,ssl,upgrade,webserver,version
|
LONGOPTS=console,debug,help,install,Install:,logs:,restart,ssl,upgrade,webserver,version
|
||||||
OPTIONS=cdhiI:l:rsuwv
|
OPTIONS=cdhiI:l:rsuwv
|
||||||
CWCTL_VERSION="3.0.0"
|
CWCTL_VERSION="3.1.0"
|
||||||
pg_pass=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 15 ; echo '')
|
pg_pass=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 15 ; echo '')
|
||||||
CHATWOOT_HUB_URL="https://hub.2.chatwoot.com/events"
|
CHATWOOT_HUB_URL="https://hub.2.chatwoot.com/events"
|
||||||
|
|
||||||
@@ -179,6 +179,9 @@ function install_dependencies() {
|
|||||||
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
|
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
|
||||||
NODE_MAJOR=20
|
NODE_MAJOR=20
|
||||||
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
|
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
|
||||||
|
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list
|
||||||
|
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
|
||||||
|
|
||||||
|
|
||||||
apt-get update
|
apt-get update
|
||||||
|
|
||||||
@@ -203,7 +206,7 @@ function install_dependencies() {
|
|||||||
# None
|
# None
|
||||||
##############################################################################
|
##############################################################################
|
||||||
function install_databases() {
|
function install_databases() {
|
||||||
apt-get install -y postgresql postgresql-contrib redis-server
|
apt-get install -y postgresql-16 postgresql-16-pgvector postgresql-contrib redis-server
|
||||||
}
|
}
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
@@ -830,6 +833,21 @@ function upgrade() {
|
|||||||
get_cw_version
|
get_cw_version
|
||||||
echo "Upgrading Chatwoot to v$CW_VERSION"
|
echo "Upgrading Chatwoot to v$CW_VERSION"
|
||||||
sleep 3
|
sleep 3
|
||||||
|
|
||||||
|
# Check if CW_VERSION is 4.0 or above
|
||||||
|
if [[ "$(printf '%s\n' "$CW_VERSION" "4.0" | sort -V | head -n 1)" == "4.0" ]]; then
|
||||||
|
echo "Chatwoot v4.0 and above requires pgvector support in PostgreSQL."
|
||||||
|
read -p "Does your postgres support pgvector and want to proceed with the upgrade? [Y/n]: " user_input
|
||||||
|
user_input=${user_input:-Y}
|
||||||
|
if [[ "$user_input" =~ ^([yY][eE][sS]|[yY])$ ]]; then
|
||||||
|
echo "Proceeding with the upgrade..."
|
||||||
|
else
|
||||||
|
echo "Upgrade aborted. Please install pgvector support before upgrading."
|
||||||
|
echo "Read more at https://chwt.app/v4/migration"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
upgrade_prereq
|
upgrade_prereq
|
||||||
upgrade_redis
|
upgrade_redis
|
||||||
upgrade_node
|
upgrade_node
|
||||||
|
|||||||
Reference in New Issue
Block a user