1.7 KiB
1.7 KiB
03 — Configurar o Webhook no Gitea + Listener
A) Subir o listener na VPS 4 (um por projeto, porta única)
# 1. Copiar o exemplo e ajustar variáveis
cp webhook-listener/config.example.env /home/deploy/stack/webhook-listener/<projeto>.env
nano /home/deploy/stack/webhook-listener/<projeto>.env
# PORT=9003
# WEBHOOK_TOKEN=<token-forte>
# DEPLOY_SCRIPT=/home/deploy/stack/<projeto>/deploy-prod-onhost.sh
# GITEA_TOKEN=<token-da-API-do-gitea>
# 2. Instalar a unit systemd
sudo cp webhook-listener/webhook-listener.service /etc/systemd/system/webhook-<projeto>.service
sudo systemctl daemon-reload
sudo systemctl enable --now webhook-<projeto>
# 3. Conferir
systemctl status webhook-<projeto>
B) Criar o webhook no Gitea (VPS 3)
No repositório → Settings → Webhooks → Add Webhook → Gitea:
| Campo | Valor |
|---|---|
| Target URL | http://10.99.0.4:9003/webhook?token=<WEBHOOK_TOKEN> |
| HTTP Method | POST |
| Content Type | application/json |
| Trigger | Push events (branch main) |
| Branch filter | main |
O
GITEA_TOKEN(para reportar status) é gerado em Settings → Applications → Generate Token com escoporepo:status(ouwrite:repository).
C) Testar
# Push de teste dispara o deploy:
git commit --allow-empty -m "test: dispara webhook" && git push origin main
# Acompanhar:
tail -f /home/deploy/stack/webhook-listener/deploy.log
Pré-requisitos
- Chave SSH do usuário
deploy(VPS4) com acesso sem senha à VPS 1 (ssh deploy@10.99.0.1 echo ok). - Chave SSH do
deploycom permissão de push no repositório do Gitea. - Porta do listener liberada apenas na rede VPN (
10.99.0.0/24).