Servidor & DevOps 69 visualizações

Como subir uma aplicação Python (Flask/Django)

Ver no WHMCS

Como subir uma aplicação Python (Flask/Django) na GeHost

Olá! Eu sou a Sensei da GeHost e vou te pegar pela mão nessa jornada de colocar sua aplicação Python no ar. Sei que olhar pra um servidor e pensar "e agora, por onde eu começo?" é super normal — então respira fundo, pega um cafezinho e vem comigo. Vamos fazer isso juntos, um passo de cada vez.

Antes de tudo: qual produto a GeHost é o certo pra você?

Essa é a pergunta mais importante, e eu preciso ser honesta com você logo de cara:

  • Hospedagem compartilhada (Econômico, Básico, Médio, Plus): é ideal para sites estáticos, WordPress, PHP e afins. Ela roda no cPanel e não oferece acesso root, SSH de administrador nem Docker. Para uma aplicação Flask ou Django que precisa de um processo rodando continuamente, esse não é o produto indicado.
  • VPS (linha Virtual Private Server): aqui você tem ambiente próprio com acesso root e SSH, sistema operacional (AlmaLinux ou Ubuntu) e liberdade total para instalar Python, Flask, Django, Gunicorn, Nginx, bancos de dados e o que mais precisar. É o produto certo para subir uma aplicação Python.
💡 Dica da Sensei: Se você ainda está na hospedagem compartilhada e precisa migrar para um VPS, acesse painel.gehost.com.br → Serviços → Upgrade/Downgrade ou fale com a gente por ticket. A equipe vai te orientar sobre o plano que atende sua necessidade. Os preços e especificações de cada VPS você confere na página do plano dentro do painel.

O que você precisa ter em mãos antes de começar

  1. Seu projeto Python pronto e testado — código Flask ou Django funcionando na sua máquina (com requirements.txt gerado via pip freeze > requirements.txt).
  2. Um VPS ativo na GeHost — com sistema operacional instalado (AlmaLinux ou Ubuntu, conforme sua preferência).
  3. Credenciais de acesso — usuário e senha (ou chave SSH) que você recebeu na entrega do VPS. Se não tiver, abra um ticket em painel.gehost.com.br → Suporte → Abrir Ticket.
  4. Um programa de terminal/SSH no seu computador — no Windows, use o PuTTY ou o Windows Terminal; no Mac/Linux, o próprio Terminal já serve.
  5. Um programa de FTP/SFTP para subir arquivos — recomendo o FileZilla (gratuito).

Passo a passo — subindo seu projeto no VPS

Passo 1: Conecte-se ao servidor via SSH

Abra seu terminal e digite:

ssh root@SEU_IP_DO_VPS

Você vai digitar a senha que recebeu na entrega. Não se assuste: ao digitar a senha, nada aparece na tela — é assim mesmo. Aperte Enter e pronto, você está dentro do servidor.

Passo 2: Atualize o sistema e instale o Python

No Ubuntu/Debian:

sudo apt update && sudo apt upgrade -y
sudo apt install python3 python3-pip python3-venv -y

No AlmaLinux:

sudo dnf update -y
sudo dnf install python3 python3-pip -y

Confira com python3 --version. Se aparecer um número (tipo 3.10, 3.11, 3.12...), está tudo certo!

Passo 3: Suba os arquivos do seu projeto

Aqui entra o FileZilla (ou outro SFTP):

  • Host: o IP do seu VPS
  • Usuário: root (ou o usuário que você criou)
  • Senha: a mesma do SSH
  • Porta: 22

Navegue até uma pasta como /var/www/meuprojeto (crie-a antes com mkdir -p /var/www/meuprojeto) e arraste os arquivos do seu projeto para lá. Não esqueça do requirements.txt!

Gerenciador de Arquivos — estrutura de pastas onde você organiza os arquivos do projeto
📌 Dica da Sensei: Se preferir, você pode clonar o repositório direto no servidor com git clone. É ainda mais prático para atualizações futuras.

Passo 4: Crie um ambiente virtual e instale as dependências

Volte ao terminal SSH e rode:

cd /var/www/meuprojeto
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

O comando source venv/bin/activate "liga" o ambiente isolado do projeto. Assim as bibliotecas do seu Flask/Django não brigam com nada no servidor.

Passo 5: Configure o banco de dados

Se seu projeto usa MySQL ou PostgreSQL:

  • MySQL: sudo apt install mysql-server -y (Ubuntu) ou sudo dnf install mysql-server -y (AlmaLinux). Depois crie o banco e o usuário com os comandos SQL necessários.
  • PostgreSQL: sudo apt install postgresql -y e siga a configuração padrão.

No seu projeto, ajuste o arquivo de configuração (no Django é o settings.py; no Flask, geralmente um .env ou arquivo de config) com o nome do banco, usuário e senha que você criou.

Passo 6: Rode a aplicação com um servidor de produção

Atenção: o servidor embutido do Flask (flask run) ou do Django (manage.py runserver) é só para desenvolvimento. Em produção, use o Gunicorn (para Flask) ou Uvicorn/Gunicorn (para Django):

Instale: pip install gunicorn

Teste rápido:

gunicorn app:app --bind 0.0.0.0:8000 (Flask)

gunicorn meu_projeto.wsgi:application --bind 0.0.0.0:8000 (Django)

Se aparecer no navegador SEU_IP:8000 e sua página carregar, parabéns! 🎉

Passo 7: Coloque a aplicação para rodar sozinha (systemd)

Para que a aplicação volte a funcionar se o servidor reiniciar, crie um serviço systemd. Crie o arquivo /etc/systemd/system/meuprojeto.service com:

[Unit]
Description=Minha Aplicação Flask/Django
After=network.target

[Service]
User=root
WorkingDirectory=/var/www/meuprojeto
ExecStart=/var/www/meuprojeto/venv/bin/gunicorn app:app --bind 127.0.0.1:8000
Restart=always

[Install]
WantedBy=multi-user.target

Ative com:

sudo systemctl enable meuprojeto
sudo systemctl start meuprojeto

Passo 8: Configure o Nginx como proxy reverso

Para que as pessoas acessem pelo domínio (porta 80/443) e não pelo IP:8000:

sudo apt install nginx -y (ou sudo dnf install nginx -y)

Crie uma configuração apontando o domínio para 127.0.0.1:8000, ative com sudo systemctl restart nginx e, se quiser HTTPS, use o Certbot (Let's Encrypt) para emitir um certificado gratuito.

Dicas de ouro da Sensei 🥋

  • Backup é com você: a menos que você tenha contratado backup expressamente, a responsabilidade por cópias de segurança dos seus arquivos e banco de dados é do cliente. Configure um backup automático (rsync, cron, ou upload para um serviço de nuvem) o quanto antes.
  • Teste em ambiente separado antes de mexer em produção. Se possível, tenha um segundo VPS ou uma pasta separada para testar atualizações.
  • Nunca deixe o servidor de desenvolvimento rodando em produção. Ele não foi feito para isso e pode travar ou expor dados.
  • Documente tudo: anote em um arquivo os comandos que você usou, os caminhos, os nomes de banco. Daqui a três meses você vai agradecer a si mesmo.

Precisa de ajuda?

Se em algum passo você travar, não se desespere — a gente está aqui:

💛 Lembrete carinhoso: você tem 30 dias de suporte grátis após a entrega do serviço. Use sem medo! A equipe existe pra te ajudar a colocar tudo pra funcionar. E se precisar de um plano de VPS que atenda melhor o tamanho da sua aplicação, é só consultar as opções na página do plano dentro do painel ou abrir um ticket que a gente te orienta.

Agora vai lá, abre o terminal e manda ver. Você consegue! E se precisar, a Sensei está por aqui. 🐱‍👤

Precisa de Ajuda?

Nossa equipe está pronta para resolver suas dúvidas.