2023-12-19 17:20:13 +03:00
|
|
|
#!/bin/sh
|
2023-10-05 17:17:27 +03:00
|
|
|
|
|
|
|
# Colors
|
|
|
|
RED=31
|
|
|
|
GREEN=32
|
|
|
|
BLUE=34
|
|
|
|
|
|
|
|
# Function to display colored output
|
2023-12-19 17:20:13 +03:00
|
|
|
echo_header () {
|
2023-10-05 17:17:27 +03:00
|
|
|
COLOR=$1
|
|
|
|
MESSAGE=$2
|
2023-12-19 17:20:13 +03:00
|
|
|
echo "\e[${COLOR}m\n=======================================================\e[0m"
|
|
|
|
echo "\e[${COLOR}m${MESSAGE}\e[0m"
|
|
|
|
echo "\e[${COLOR}m=======================================================\e[0m"
|
2023-10-05 17:17:27 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
# Function to handle errors
|
2023-12-19 17:20:13 +03:00
|
|
|
handle_error () {
|
2023-10-05 17:17:27 +03:00
|
|
|
echo_header $RED "Error: $1"
|
|
|
|
exit 1
|
|
|
|
}
|
|
|
|
|
|
|
|
cat << "EOF"
|
|
|
|
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
|
|
@@@@@@@#*+=================@@@@@%*+=========++*%@@@@@@@
|
|
|
|
@@@@#- .+@@%=. .+@@@@@
|
|
|
|
@@@- .*@@%- .#@@@
|
|
|
|
@@= .=+++++++++++*#@@@= -++++++++++- %@@
|
|
|
|
@@. %@@@@@@@@@@@@@@@+ =%@@@@@@@@@@@@= +@@
|
|
|
|
@@. .@@@@@@@@@@@@@@+. -%@@@@@@@@@@@@@@+ +@@
|
|
|
|
@@. .@@@@@@@@@@@@*. -#@@#:=@@@@@@@@@@@= +@@
|
|
|
|
@@ @@@@@@@@@@#: :#@@#: -@@@@@@@@@@@= +@@
|
|
|
|
@@#====#@@@@@@@@#- .*@@@= -@@@@@@@@@@@= +@@
|
|
|
|
@@@@@@@@@@@@@@%- .*@@@@# -@@@@@@@@@@@= +@@
|
|
|
|
@@@@@@@@@@@@%= +@@@@@@# -@@@@@@@@@@@= +@@
|
|
|
|
@@@@@@@@@@@+ =@@@@@@@@# -@@@@@@@@@@@= +@@
|
|
|
|
@@@@@@@@@+. -%@@@@@@@@@# -@@@@@@@@@@@= +@@
|
|
|
|
@@@@@@@*. -%@@@@@@@@@@@# -@@@@@@@@@@@= +@@
|
|
|
|
@@@@@#: :#@@@@@@@@@@@@@# -@@@@@@@@@@@+ +@@
|
|
|
|
@@@#: :#@@@@@@@@@@@@@@@# :@@@@@@@@@@@= +@@
|
|
|
|
@@= :+*+++++++++++*%@@@. :+++++++++- %@@
|
|
|
|
@@ :@@@%. .#@@@
|
|
|
|
@@- :@@@@@+: .+@@@@@
|
|
|
|
@@@#+===================+%@@@@@@@%*++=======++*%@@@@@@@
|
|
|
|
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
|
|
EOF
|
|
|
|
|
|
|
|
echo_header $BLUE " DATABASE SETUP"
|
|
|
|
|
2023-11-09 01:44:36 +03:00
|
|
|
PG_MAIN_VERSION=15
|
2024-03-25 17:08:17 +03:00
|
|
|
PG_GRAPHQL_VERSION=1.5.1
|
2023-10-05 17:17:27 +03:00
|
|
|
TARGETARCH=$(dpkg --print-architecture)
|
|
|
|
|
|
|
|
# Install PostgresSQL
|
|
|
|
echo_header $GREEN "Step [1/4]: Installing PostgreSQL..."
|
2023-11-28 20:38:26 +03:00
|
|
|
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
|
|
|
|
wget -qO- https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo tee /etc/apt/trusted.gpg.d/pgdg.asc &>/dev/null
|
2023-10-14 23:40:05 +03:00
|
|
|
sudo apt update -y || handle_error "Failed to update package list."
|
2024-04-11 12:42:48 +03:00
|
|
|
sudo apt install -y postgresql-$PG_MAIN_VERSION postgresql-contrib-$PG_MAIN_VERSION || handle_error "Failed to install PostgreSQL."su
|
2023-10-14 23:40:05 +03:00
|
|
|
sudo apt install -y curl || handle_error "Failed to install curl."
|
2023-10-05 17:17:27 +03:00
|
|
|
|
|
|
|
# Install pg_graphql extensions
|
|
|
|
echo_header $GREEN "Step [2/4]: Installing GraphQL for PostgreSQL..."
|
|
|
|
curl -L https://github.com/supabase/pg_graphql/releases/download/v$PG_GRAPHQL_VERSION/pg_graphql-v$PG_GRAPHQL_VERSION-pg$PG_MAIN_VERSION-$TARGETARCH-linux-gnu.deb -o pg_graphql.deb || handle_error "Failed to download pg_graphql package."
|
2023-10-14 23:43:17 +03:00
|
|
|
sudo dpkg --install pg_graphql.deb || handle_error "Failed to install pg_graphql package."
|
2023-10-05 17:17:27 +03:00
|
|
|
rm pg_graphql.deb
|
|
|
|
|
|
|
|
# Start postgresql service
|
|
|
|
echo_header $GREEN "Step [3/4]: Starting PostgreSQL service..."
|
|
|
|
if sudo service postgresql start; then
|
|
|
|
echo "PostgreSQL service started successfully."
|
|
|
|
else
|
|
|
|
handle_error "Failed to start PostgreSQL service."
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Run the init.sql to setup database
|
|
|
|
echo_header $GREEN "Step [4/4]: Setting up database..."
|
2023-12-19 17:20:13 +03:00
|
|
|
cp ./init.sql /tmp/init.sql
|
2023-10-14 23:40:05 +03:00
|
|
|
sudo -u postgres psql -f /tmp/init.sql || handle_error "Failed to execute init.sql script."
|