← Voltar
deploy.sh
#!/bin/bash
# --- Variáveis ---
VENV_DIR="venv"
REQUIREMENTS_FILE="requirements.txt"
BOT_MAIN_FILE="main.py"
echo "Iniciando o processo de deploy do bot Telegram MP3..."
# --- 1. Verificar e instalar python3-venv ---
echo "Verificando e instalando 'python3-venv' se necessário..."
if ! dpkg -s python3-venv >/dev/null 2>&1; then
echo "'python3-venv' não encontrado. Tentando instalar..."
if [ -f /etc/debian_version ]; then
# Debian/Ubuntu
sudo apt update
sudo apt install -y python3-venv
elif [ -f /etc/redhat-release ]; then
# CentOS/RHEL/Fedora
sudo yum install -y python3-virtualenv
else
echo "Sistema operacional não detectado para instalação automática de 'python3-venv'."
echo "Por favor, instale 'python3-venv' manualmente e execute o script novamente."
exit 1
fi
fi
echo "'python3-venv' está instalado."
# --- 2. Criar e ativar ambiente virtual ---
echo "Criando ambiente virtual em '$VENV_DIR'..."
python3 -m venv "$VENV_DIR"
echo "Ativando ambiente virtual..."
source "$VENV_DIR/bin/activate"
echo "Ambiente virtual ativado."
# --- 3. Instalar dependências Python ---
echo "Instalando dependências Python de '$REQUIREMENTS_FILE'..."
pip install --upgrade pip
pip install -r "$REQUIREMENTS_FILE"
echo "Dependências Python instaladas."
# --- 4. Verificar e instalar FFmpeg ---
echo "Verificando e instalando FFmpeg se necessário (necessário para yt-dlp)..."
if ! command -v ffmpeg &> /dev/null; then
echo "FFmpeg não encontrado. Tentando instalar..."
if [ -f /etc/debian_version ]; then
# Debian/Ubuntu
sudo apt update
sudo apt install -y ffmpeg
elif [ -f /etc/redhat-release ]; then
# CentOS/RHEL/Fedora
sudo yum install -y ffmpeg
else
echo "Sistema operacional não detectado para instalação automática de FFmpeg."
echo "Por favor, instale FFmpeg manualmente e execute o script novamente."
deactivate # Desativa o venv antes de sair
exit 1
fi
fi
echo "FFmpeg está instalado."
# --- 5. Instruções de execução ---
echo ""
echo "==================================================="
echo "Deploy concluído com sucesso!"
echo "Para iniciar o bot, siga os passos:"
echo "1. Ative o ambiente virtual:"
echo " source $VENV_DIR/bin/activate"
echo "2. Execute o bot:"
echo " python $BOT_MAIN_FILE"
echo ""
echo "Para rodar o bot em segundo plano (recomendado para servidores):"
echo " nohup python $BOT_MAIN_FILE &"
echo " (Para ver a saída, use 'tail -f nohup.out')"
echo ""
echo "Para desativar o ambiente virtual:"
echo " deactivate"
echo "==================================================="
# Não desativa o venv aqui para que o usuário possa executar o bot imediatamente
# deactivate