From 9bb39c9913c3d69fffe52a35f69cee15798c9659 Mon Sep 17 00:00:00 2001 From: ilia Date: Sun, 14 Dec 2025 21:01:30 -0500 Subject: [PATCH] Fix proxmox_setup.sh to work when running as root in LXC - Detect if running as root and use 'su' instead of 'sudo' for postgres - Fixes: sudo: command not found error in LXC containers --- scripts/proxmox_setup.sh | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) 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"