Criando um Servidor de Atualização para PythonAnywhere e GitHub

Aprenda a configurar um webhook do GitHub para atualizar automaticamente seu aplicativo no PythonAnywhere. Este guia passo a passo simplifica o deploy contínuo para seus projetos.

Se você mantém projetos no PythonAnywhere e usa o GitHub para versionamento, configurar um servidor de atualização automática pode poupar tempo e garantir que seu código esteja sempre sincronizado. Com um webhook, o GitHub notifica seu servidor sempre que houver um push, e o servidor executa os comandos necessários para atualizar o repositório e reiniciar a aplicação.

Passo 1: Criar o Webhook no GitHub

No seu repositório, vá em Settings > Webhooks > Add webhook. Defina a Payload URL como o endpoint que criaremos no PythonAnywhere (ex.: https://seuusuario.pythonanywhere.com/update). Escolha Content type como application/json. Se desejar, defina um Secret para segurança. Selecione Just the push event (ou outros eventos conforme necessário) e ative o webhook.

Passo 2: Criar o Servidor de Atualização no PythonAnywhere

No PythonAnywhere, crie uma aplicação web (por exemplo, Flask). Adicione uma rota /update que receba solicitações POST. A função deve verificar a assinatura (se configurou segredo), executar git pull no diretório do projeto e, em seguida, tocar o arquivo WSGI para reiniciar a aplicação.

Exemplo básico com Flask:

from flask import Flask, request, jsonify
import subprocess, os, json

app = Flask(__name__)

@app.route('/update', methods=['POST'])
def update():
    # Verificar assinatura (opcional)
    # payload = request.get_json()
    # if request.headers.get('X-Hub-Signature') != '...': abort(403)
    projeto = '/home/seuusuario/seuprojeto'
    subprocess.run(['git', '-C', projeto, 'pull'])
    wsgi = '/var/www/seuusuario_pythonanywhere_com_wsgi.py'
    os.utime(wsgi, None)
    return jsonify({'status': 'ok'}), 200

Lembre-se de configurar as chaves SSH no PythonAnywhere para que o Git possa acessar repositórios privados sem senha.

Passo 3: Testar e Monitorar

Após criar o webhook e implantar o servidor, faça um push no repositório e verifique os logs do PythonAnywhere (em Web > Logs) para confirmar que a atualização foi bem-sucedida. Você pode também acessar o endpoint manualmente com curl para testar.

Conclusão

Com esses passos, cada push no GitHub atualizará automaticamente o código no PythonAnywhere, eliminando a necessidade de acesso manual ao servidor. Essa configuração é ideal para projetos pessoais, sites estáticos ou aplicações em desenvolvimento, garantindo que o deploy seja rápido e confiável.

Este artigo foi contribuído pela comunidade Música e Saúde.

Conteúdo recomendado
K8Bet — 580+ jogos premium com PIX em minutos
Apostas Online no Brasil com PIX Rápido e Jogos Premium
Cassino ao vivo com dealers brasileiros
Jogue no K8Bet com mais de 580 jogos premium, slots com RTP até 98% e cassino ao vivo com dealers brasileiros. Saques via PIX processados em menos de 3 minutos, sem taxas e sem burocracia.
Jogos: Slots, Cassino ao Vivo, Apostas Esportivas, Crash Games, E-Sports · Bônus: Bônus de boas-vindas (cadastre-se grátis)
SlotsVIP — Bônus de até R$ 5.000 + 200 rodadas grátis no cadastro
O Cassino Online VIP do Brasil
Mais de 2.000 caça-níqueis e cassino ao vivo 24h
Cadastre-se no SlotsVIP e ganhe 100% no primeiro depósito mais 200 rodadas grátis nos slots mais populares. Depósito via PIX instantâneo.
Jogos: Caça-níqueis online (slots), cassino ao vivo, jogos de mesa (blackjack, roleta, baccarat, pôquer) · Bônus: Bônus de boas-vindas de até R$ 5.000 — 100% no 1º depósito + 200 rodadas grátis