# Comment déployer ma première application sur Coolify ?

https://www.seturack.com/fr/base-de-connaissances/article/how-do-i-deploy-my-first-app-on-coolify

1. Dans le panneau, ouvrez **Mes serveurs** et cliquez sur votre serveur.
2. Dans l'onglet **Vue d'ensemble**, attendez que la ligne **Application** indique « Coolify is ready ».
3. Ouvrez le lien **Adresse du panneau** et connectez-vous avec les lignes **E-mail** et **Mot de passe**. Le serveur et un premier projet sont prêts.

## Connecter votre dépôt

1. Sur la page **Projects**, ouvrez **My first project** et **production**, puis cliquez sur **New resource**.
2. Pour un dépôt public, choisissez **Public Git Repository**, saisissez l'adresse et cliquez sur **Check repository**.
3. Pour un dépôt privé, cliquez d'abord sur **Generate ED25519** sur la page **Private Keys** sous **Keys & Tokens** et ajoutez la clé publique aux **Deploy keys** du dépôt sur GitHub. Choisissez ensuite **Private Git Repository (with Deploy Key)** et saisissez `git@github.com:user/project.git`.
4. Laissez **Build pack** sur **Railpack** et cliquez sur **Continue**. Coolify signale Railpack comme bêta ; choisissez donc votre propre Dockerfile s'il vous pose problème.
5. Saisissez vos variables sur la page **Environment Variables** et cliquez sur **Deploy**. Une adresse de test en HTTPS se trouve sur la page **Domains**.

## Déployer avec git push

1. Sur la page **Webhooks** de l'application, copiez le **Webhook URL** de la section GitHub, saisissez dans **Webhook secret** une valeur aléatoire d'au moins 16 caractères et enregistrez.
2. Sur GitHub, ouvrez les **Settings** du dépôt, allez dans **Webhooks** et cliquez sur **Add webhook**. Utilisez cette adresse comme **Payload URL**, `application/json` comme **Content type**, la même valeur comme **Secret**, et push comme seul événement.

Dès lors, chaque `git push` sur la branche choisie compile et publie une nouvelle version. Après avoir modifié une variable qui commence par `NEXT_PUBLIC_`, cliquez sur **Redeploy**. Si un build manque de mémoire, [augmentez la taille depuis votre panneau](https://www.seturack.com/fr/base-de-connaissances/article/how-to-scale-server-up-or-down).

## Votre domaine

Faites pointer l'enregistrement A vers l'IP du serveur. Sur la page **Domains**, utilisez **Add domain**, choisissez `https`, saisissez le domaine, enregistrez et cliquez sur **Redeploy**. Coolify obtient le certificat.

## Fermer les ports 8000, 6001 et 6002

Une fois le panneau ouvert sur son adresse HTTPS, ces ports ne sont plus nécessaires. Docker contourne ufw sur les ports qu'il publie, ufw ne les fermera donc pas. [Connectez-vous en SSH](https://www.seturack.com/fr/base-de-connaissances/article/how-to-connect-with-ssh) et suivez la méthode officielle de 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`

La dernière commande rafraîchit l'installation et passe à une version plus récente s'il y en a une. Pour annuler, supprimez le fichier et relancez la même commande.

## Bon à savoir

Coolify se connecte en SSH en tant que root avec sa propre clé. Désactiver la connexion root ou supprimer la ligne `coolify` de `/root/.ssh/authorized_keys` bloque les déploiements.

**Pas encore de serveur ?** [Commandez un serveur avec Coolify installé](https://www.seturack.com/fr/coolify-vps) : vous choisissez la taille et vous payez ce que vous choisissez.
