updates
This commit is contained in:
93
install-postgresql.sh
Executable file
93
install-postgresql.sh
Executable file
@@ -0,0 +1,93 @@
|
||||
#!/bin/bash
|
||||
|
||||
# PostgreSQL Installation and Configuration Script for GNX-WEB
|
||||
# This script installs PostgreSQL and configures it to use port 5433
|
||||
# to avoid conflicts with Docker PostgreSQL instance on port 5432
|
||||
|
||||
set -e
|
||||
|
||||
echo "=========================================="
|
||||
echo "PostgreSQL Installation Script"
|
||||
echo "=========================================="
|
||||
|
||||
# Colors for output
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Check if running as root
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo -e "${RED}Please run as root (use sudo)${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Update package list
|
||||
echo -e "${GREEN}[1/7] Updating package list...${NC}"
|
||||
apt-get update
|
||||
|
||||
# Install PostgreSQL
|
||||
echo -e "${GREEN}[2/7] Installing PostgreSQL...${NC}"
|
||||
apt-get install -y postgresql postgresql-contrib
|
||||
|
||||
# Get PostgreSQL version
|
||||
PG_VERSION=$(psql --version | grep -oP '\d+' | head -1)
|
||||
PG_MAJOR_VERSION=$(echo $PG_VERSION | cut -d. -f1)
|
||||
|
||||
echo -e "${GREEN}[3/7] PostgreSQL version: $PG_VERSION${NC}"
|
||||
|
||||
# Find postgresql.conf file
|
||||
PG_CONF="/etc/postgresql/$PG_MAJOR_VERSION/main/postgresql.conf"
|
||||
|
||||
if [ ! -f "$PG_CONF" ]; then
|
||||
echo -e "${RED}Error: Could not find PostgreSQL configuration file${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Backup original configuration
|
||||
echo -e "${GREEN}[4/7] Backing up PostgreSQL configuration...${NC}"
|
||||
cp "$PG_CONF" "${PG_CONF}.backup.$(date +%Y%m%d_%H%M%S)"
|
||||
|
||||
# Configure PostgreSQL to use port 5433
|
||||
echo -e "${GREEN}[5/7] Configuring PostgreSQL to use port 5433...${NC}"
|
||||
|
||||
# Check if port is already set
|
||||
if grep -q "^port = " "$PG_CONF"; then
|
||||
# Replace existing port setting
|
||||
sed -i "s/^port = .*/port = 5433/" "$PG_CONF"
|
||||
else
|
||||
# Add port setting
|
||||
echo "port = 5433" >> "$PG_CONF"
|
||||
fi
|
||||
|
||||
# Restart PostgreSQL
|
||||
echo -e "${GREEN}[6/7] Restarting PostgreSQL...${NC}"
|
||||
systemctl restart postgresql
|
||||
|
||||
# Wait for PostgreSQL to start
|
||||
sleep 2
|
||||
|
||||
# Verify PostgreSQL is running on port 5433
|
||||
if netstat -tlnp 2>/dev/null | grep -q ":5433" || ss -tlnp 2>/dev/null | grep -q ":5433"; then
|
||||
echo -e "${GREEN}[7/7] PostgreSQL is running on port 5433${NC}"
|
||||
else
|
||||
echo -e "${YELLOW}Warning: Could not verify PostgreSQL is running on port 5433${NC}"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo -e "${GREEN}=========================================="
|
||||
echo "PostgreSQL Installation Complete!"
|
||||
echo "==========================================${NC}"
|
||||
echo ""
|
||||
echo "Next steps:"
|
||||
echo "1. Create database and user:"
|
||||
echo " sudo -u postgres psql"
|
||||
echo " CREATE DATABASE gnx_db;"
|
||||
echo " CREATE USER gnx_user WITH PASSWORD 'your_password';"
|
||||
echo " GRANT ALL PRIVILEGES ON DATABASE gnx_db TO gnx_user;"
|
||||
echo " \\q"
|
||||
echo ""
|
||||
echo "2. Update your .env file with:"
|
||||
echo " DATABASE_URL=postgresql://gnx_user:your_password@localhost:5433/gnx_db"
|
||||
echo ""
|
||||
|
||||
Reference in New Issue
Block a user