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 
.githubna raiz do seu repositório. - Dentro da pasta 
.github, crie outra pasta chamadaworkflows. - Crie um arquivo chamado 
deploy.ymldentro da pastaworkflows. - Cole o exemplo de script abaixo no arquivo 
deploy.ymle 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 
pwde copie a localização exata do repositório. - No script, substitua 
targetecdpela 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.

