Como fazer deploy via push para uma VPS

15/01/2020 às 13:48 Bruno Couty

Aqui vamos aprender como utilizar o Git para fazer o deploy da aplicao para um VPS Voc poder realizar deploys para diferentes servidores: produo, beta, homologao, etc...

Vamos s configuraes.

Servidor Remoto:

Vamos assumir que o diretrio principal de sua aplicao, no VPS seja: "/var/www/application.com" e seu repositrio, no mesmo servidor, estar em: "/var/repo/site.git". Como podemos dar um "push" para "site.git" e, simultaneamente, enviar para: "/var/www/application.com.br"?

Bem, execute:

cd /var
mkdir repo
cd repo
mkdir site.git
cd site.git
git init --bare

O sistema criar algumas pastas e arquivos dentro de site.git. Entre elas, a pasta "hooks". A documentao do Git prev trs tipos possveis de server hooks: pre-receive, update e post-receive.

  • pre-receive: executado antes do servidor receber um push
  • update: similar ao pre-receive, mas executado uma vez a cada branch
  • post-receive: executado quando um push completamente finalizado

Vamos editar o arquivo post-receive:

cd hooks
cat > post-receive

Adicione o seguinte contedo, alterando para sua configurao:

#!/bin/sh
git --work-tree=/var/www/application.com --git-dir=/var/repo/site.git checkout -f

Execute CTRL + D, para sair e salvar.

chmod +x post-receive

Mquina Local (de desenvolvimento com o fonte)

Parto do principio que seu cdigo-fonte j esteja sob o Git.

Vamos adicionar um "remote" apontando para o servidor remoto (onde acabamos de configurar o deploy):

git remote add live ssh://[email protected]/var/repo/site.git

Agora, ao fazer um push, para enviar o cdigo ao repositrio, se enviar para o remote "live", ir para a pasta onde foi configurado o deploy (/var/www/domain.com).