Como Fazer Deploy Automatigo Github
Deploy Automatico GitHub Actions
Aviso: No exemplo abaixo, estamos usando o usuário root, mas recomendamos criar um usuário específico na sua VPS para isso.
Passos a Seguir
- Crie uma pasta
.github
na raiz do seu repositório. - Dentro da pasta
.github
, crie outra pasta chamadaworkflows
. - Crie um arquivo chamado
deploy.yml
dentro da pastaworkflows
. - Cole o exemplo de script abaixo no arquivo
deploy.yml
e ajuste as configurações conforme suas necessidades pessoais.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
name: "Deploy"
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Copy files to VPS
uses: appleboy/scp-action@v0.1.7
with:
host: $
username: $
key: $
port: 22
source: "."
target: "/seu/caminho/do/repositorio"
- name: Deploy Application
uses: appleboy/ssh-action@v1.2.1
with:
host: $
username: $
key: $
port: 22
script: |
cd /seu/caminho/do/repositorio
docker compose down
docker compose up --build -d
Substitua /seu/caminho/do/repositorio
pelo caminho real do seu repositório na VPS.
- Na sua VPS, entre no repositório que deseja automatizar o deploy.
- Rode o comando
pwd
e copie a localização exata do repositório. - No script, substitua
target
ecd
pela localização obtida no passo anterior.
Exemplo: Substitua target: "/root/Developer/Phyrexia-Font"
pela localização do seu repositório. Exemplo: Substitua cd /root/Developer/Phyrexia-Font
pela localização do seu repositório.
Script
Modifique o script conforme a forma que você utiliza para fazer o deploy da sua aplicação. No exemplo abaixo, usamos Docker.
1
2
3
4
script: |
cd /root/Developer/Phyrexia-Font
docker compose down
docker compose up --build -d
Configuração no GitHub
- No repositório do seu projeto, vá em Configurações > Segurança > Actions.
- Crie novas chaves secretas:
HOST
: Coloque o IP do seu servidor.USERNAME
: Coloque o nome do usuário para acessar a VPS (ex: root).KEY
: Coloque a chave privada SSH do seu servidor.
Para obter a chave privada, rode o comando no seu servidor:
1
cat ~/.ssh/id_rsa
Copie todo o conteúdo, incluindo -----BEGIN RSA PRIVATE KEY-----
e -----END RSA PRIVATE KEY-----
, e cole no campo KEY
das chaves secretas do GitHub.
Autorizar Chave SSH
Para autorizar a chave SSH pública, rode o comando:
1
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Após isso, basta subir o pipeline para o GitHub.
Lembre-se: Altere o script conforme a forma que sua stack faz o deploy e ajuste o caminho do repositório na VPS.