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
This commit is contained in:
ilia 2025-12-14 21:01:30 -05:00
parent 204cd0e75b
commit 9bb39c9913

View File

@ -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"