# Come faccio il deploy della mia prima app su Coolify?

https://www.seturack.com/it/base-di-conoscenza/articolo/how-do-i-deploy-my-first-app-on-coolify

1. Nel pannello apri **I miei server** e clicca sul tuo server.
2. Nella scheda **Panoramica** aspetta che la riga **App** dica "Coolify è pronto".
3. Apri il link di **Indirizzo del pannello** e accedi con le righe **Email** e **Password**. Il server e un primo progetto sono pronti.

## Collegare il repository

1. Nella pagina **Projects** apri **My first project** e **production**, poi premi **New resource**.
2. Per un repository pubblico scegli **Public Git Repository**, inserisci l'indirizzo e premi **Check repository**.
3. Per un repository privato, premi prima **Generate ED25519** nella pagina **Private Keys** in **Keys & Tokens** e aggiungi la chiave pubblica ai **Deploy keys** del repository su GitHub. Poi scegli **Private Git Repository (with Deploy Key)** e inserisci `git@github.com:user/project.git`.
4. Lascia **Build pack** su **Railpack** e premi **Continue**. Coolify indica Railpack come beta, quindi se ti dà problemi scegli il tuo Dockerfile.
5. Inserisci le tue variabili nella pagina **Environment Variables** e premi **Deploy**. Un indirizzo di prova HTTPS si trova nella pagina **Domains**.

## Deploy con git push

1. Nella pagina **Webhooks** dell'app, copia il **Webhook URL** dalla sezione GitHub, inserisci in **Webhook secret** un valore casuale di almeno 16 caratteri e salva.
2. Su GitHub apri le **Settings** del repository, vai su **Webhooks** e premi **Add webhook**. Usa quell'indirizzo come **Payload URL**, `application/json` come **Content type**, lo stesso valore come **Secret** e il push come unico evento.

Da quel momento, ogni `git push` sul branch scelto compila e pubblica una nuova versione. Dopo aver cambiato una variabile che inizia con `NEXT_PUBLIC_`, premi **Redeploy**. Se una build esaurisce la memoria, [ingrandisci il server dal pannello](https://www.seturack.com/it/base-di-conoscenza/articolo/how-to-scale-server-up-or-down).

## Il tuo dominio

Punta il record A all'IP del server. Nella pagina **Domains** usa **Add domain**, scegli `https`, inserisci il dominio, salva e premi **Redeploy**. Coolify ottiene il certificato.

## Chiudere le porte 8000, 6001 e 6002

Quando il pannello si apre sul suo indirizzo HTTPS, queste porte non servono più. Docker salta ufw sulle porte che pubblica, quindi ufw non le chiude. [Connettiti via SSH](https://www.seturack.com/it/base-di-conoscenza/articolo/how-to-connect-with-ssh) e segui il metodo ufficiale di 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`

L'ultimo comando aggiorna l'installazione e passa a una versione più recente, se c'è. Per annullare, elimina il file ed esegui lo stesso comando.

## Da sapere

Coolify si connette via SSH come root con una propria chiave. Disattivare l'accesso root o togliere la riga `coolify` da `/root/.ssh/authorized_keys` blocca i deploy.

**Non hai ancora un server?** [Ordina un server con Coolify già installato](https://www.seturack.com/it/coolify-vps): scegli la dimensione e paghi solo ciò che scegli.
