# Como faço o deploy do meu primeiro app no Coolify?

https://www.seturack.com/pt-br/base-de-conhecimento/artigo/how-do-i-deploy-my-first-app-on-coolify

1. No painel, abra **Meus servidores** e clique no seu servidor.
2. Na aba **Visão geral**, espere a linha **App** mostrar "Coolify está pronto".
3. Abra o link de **Endereço do painel** e entre com as linhas **E-mail** e **Senha**. O servidor e um primeiro projeto já estão prontos.

## Conecte seu repositório

1. Na página **Projects**, abra **My first project** e **production** e pressione **New resource**.
2. Para um repositório público, escolha **Public Git Repository**, digite o endereço e pressione **Check repository**.
3. Para um repositório privado, primeiro pressione **Generate ED25519** na página **Private Keys**, em **Keys & Tokens**, e adicione a chave pública às **Deploy keys** do repositório no GitHub. Depois escolha **Private Git Repository (with Deploy Key)** e digite `git@github.com:user/project.git`.
4. Deixe o **Build pack** em **Railpack** e pressione **Continue**. O Coolify marca o Railpack como beta, então escolha o seu próprio Dockerfile se ele der problemas.
5. Informe suas variáveis na página **Environment Variables** e pressione **Deploy**. Um endereço de teste com HTTPS está na página **Domains**.

## Deploy com git push

1. Na página **Webhooks** do app, copie a **Webhook URL** da seção do GitHub, digite um valor aleatório de pelo menos 16 caracteres em **Webhook secret** e salve.
2. No GitHub, abra as **Settings** do repositório, vá em **Webhooks** e pressione **Add webhook**. Use esse endereço como **Payload URL**, `application/json` como **Content type**, o mesmo valor como **Secret** e push como único evento.

A partir daí, cada `git push` na branch escolhida faz o build e publica uma nova versão. Depois de alterar uma variável que começa com `NEXT_PUBLIC_`, pressione **Redeploy**. Se um build ficar sem memória, [aumente o servidor pelo seu painel](https://www.seturack.com/pt-br/base-de-conhecimento/artigo/how-to-scale-server-up-or-down).

## Seu domínio

Aponte o registro A para o IP do servidor. Na página **Domains**, use **Add domain**, escolha `https`, digite o domínio, salve e pressione **Redeploy**. O Coolify obtém o certificado.

## Fechando as portas 8000, 6001 e 6002

Quando o painel abrir pelo endereço HTTPS, essas portas não são mais necessárias. O Docker ignora o ufw nas portas que publica, então o ufw não as fecha. [Conecte-se por SSH](https://www.seturack.com/pt-br/base-de-conhecimento/artigo/how-to-connect-with-ssh) e siga o procedimento oficial do Coolify:

`cd /data/coolify/source`

`printf 'services:\n coolify:\n ports: !override\n - "127.0.0.1:8000:8080"\n - "127.0.0.1:6001:6001"\n - "127.0.0.1:6002:6002"\n' > docker-compose.custom.yml`

`curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash`

O último comando atualiza a instalação e passa para uma versão mais nova, se houver. Para desfazer, exclua o arquivo e execute o mesmo comando.

## Bom saber

O Coolify se conecta por SSH como root com a chave própria dele. Desativar o login do root ou remover a linha `coolify` de `/root/.ssh/authorized_keys` interrompe os deploys.

**Ainda não tem um servidor?** [Peça um servidor com Coolify instalado](https://www.seturack.com/pt-br/coolify-vps): você escolhe o tamanho e paga só pelo que escolheu.
