Complete fix: Replace all sudo commands with su for LXC compatibility

- Replace 'sudo -u' with 'su -' throughout the script
- Works perfectly in LXC containers running as root (no sudo installed)
- Also works on regular VMs/servers where sudo is available
- Fixes all remaining: sudo: command not found errors
This commit is contained in:
ilia 2025-12-14 21:05:35 -05:00
parent 9bb39c9913
commit 44ddd88879

View File

@ -87,7 +87,8 @@ if [ ! -d "$POTE_DIR" ]; then
read -r REPO_URL
if [ -n "$REPO_URL" ]; then
sudo -u $POTE_USER git clone "$REPO_URL" "$POTE_DIR"
# Clone as the pote user
su - $POTE_USER -c "git clone '$REPO_URL' '$POTE_DIR'"
else
echo "Skipping git clone. Make sure code is in $POTE_DIR"
fi
@ -97,8 +98,8 @@ fi
# Step 6: Setup Python environment
echo -e "${GREEN}[6/9]${NC} Setting up Python environment..."
sudo -u $POTE_USER bash << 'EOF'
cd $POTE_DIR
su - $POTE_USER << 'EOF'
cd pote
python3.11 -m venv venv
source venv/bin/activate
pip install --upgrade pip
@ -108,21 +109,21 @@ EOF
# Step 7: Create .env file
echo -e "${GREEN}[7/9]${NC} Creating environment configuration..."
sudo -u $POTE_USER bash << EOF
cat > $POTE_DIR/.env << ENVEOF
su - $POTE_USER << EOF
cat > pote/.env << ENVEOF
DATABASE_URL=postgresql://$DB_USER:$DB_PASS@localhost:5432/$DB_NAME
QUIVERQUANT_API_KEY=
FMP_API_KEY=
LOG_LEVEL=INFO
ENVEOF
chmod 600 $POTE_DIR/.env
chmod 600 pote/.env
EOF
echo "✓ Environment file created"
# Step 8: Run database migrations
echo -e "${GREEN}[8/9]${NC} Running database migrations..."
sudo -u $POTE_USER bash << 'EOF'
cd $POTE_DIR
su - $POTE_USER << 'EOF'
cd pote
source venv/bin/activate
alembic upgrade head
EOF
@ -130,8 +131,8 @@ echo "✓ Database schema initialized"
# Step 9: Setup directories
echo -e "${GREEN}[9/9]${NC} Creating directories..."
sudo -u $POTE_USER mkdir -p $POTE_HOME/logs
sudo -u $POTE_USER mkdir -p $POTE_HOME/backups
su - $POTE_USER -c "mkdir -p ~/logs"
su - $POTE_USER -c "mkdir -p ~/backups"
echo "✓ Log and backup directories created"
# Summary