diff --git a/scripts/proxmox_setup.sh b/scripts/proxmox_setup.sh index 76556f5..4a06e2d 100755 --- a/scripts/proxmox_setup.sh +++ b/scripts/proxmox_setup.sh @@ -51,13 +51,27 @@ apt install -y \ # Step 3: Setup PostgreSQL echo -e "${GREEN}[3/9]${NC} Setting up PostgreSQL..." -sudo -u postgres psql -tc "SELECT 1 FROM pg_database WHERE datname = '$DB_NAME'" | grep -q 1 || \ -sudo -u postgres psql << EOF + +# Check if we need sudo (if we're not root) +if [ "$EUID" -eq 0 ]; then + # Running as root, use su directly + su - postgres -c "psql -tc \"SELECT 1 FROM pg_database WHERE datname = '$DB_NAME'\"" | grep -q 1 || \ + su - postgres -c "psql << EOF +CREATE DATABASE $DB_NAME; +CREATE USER $DB_USER WITH PASSWORD '$DB_PASS'; +GRANT ALL PRIVILEGES ON DATABASE $DB_NAME TO $DB_USER; +ALTER DATABASE $DB_NAME OWNER TO $DB_USER; +EOF" +else + # Not root, use sudo + sudo -u postgres psql -tc "SELECT 1 FROM pg_database WHERE datname = '$DB_NAME'" | grep -q 1 || \ + sudo -u postgres psql << EOF CREATE DATABASE $DB_NAME; CREATE USER $DB_USER WITH PASSWORD '$DB_PASS'; GRANT ALL PRIVILEGES ON DATABASE $DB_NAME TO $DB_USER; ALTER DATABASE $DB_NAME OWNER TO $DB_USER; EOF +fi echo "✓ PostgreSQL database '$DB_NAME' created"