Déployer une application Symfony avec Coolify

15 octobre 20243 min de lecture
SymfonyCoolifyDéploiementDevOps
Déployer une application Symfony avec Coolify

Tutoriel Symfony

Symfony est le principal framework PHP pour créer des sites web et des applications web. Il est construit sur les composants Symfony, qui sont réutilisables et modulaires.

Prérequis

Avant de commencer, assurez-vous de configurer les éléments suivants :

  • Définir Build Pack sur nixpacks
  • Définir APP_ENV pour spécifier l'environnement de l'application (par exemple, prod pour production)
  • Définir APP_SECRET pour la sécurité de l'application
  • Définir NIXPACKS_PHP_FALLBACK_PATH sur /index.php pour indiquer le point d'entrée par défaut
  • Définir NIXPACKS_PHP_ROOT_DIR sur /app/public pour spécifier le répertoire racine de l'application
  • Définir Ports Exposés sur 80 pour exposer le port HTTP

Migrations de Base de Données

Si vous utilisez Doctrine pour la gestion de votre base de données, vous pouvez ajouter le script suivant après le déploiement pour appliquer les migrations :

php bin/console doctrine:migrations:migrate --all-or-nothing --no-interaction

Ce script exécute les migrations de base de données en mode non interactif et garantit que toutes les migrations sont appliquées ou aucune (all-or-nothing).

Autres Composants

Si votre application nécessite des services supplémentaires comme une base de données ou Redis, vous pouvez les créer au préalable dans le tableau de bord Coolify. Vous recevrez les chaînes de connexion à utiliser dans votre application en tant que variables d'environnement.

Chaîne de Connexion à la Base de Données

Utilisez la chaîne de connexion suivante pour PostgreSQL :

DATABASE_URL=postgresql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=16&charset=utf8

Remplacez !ChangeMe! par le mot de passe de votre base de données.

Détails de Connexion Redis

Pour Redis, utilisez les détails de connexion suivants :

REDIS_HOST=<REDIS_HOST>
REDIS_PASSWORD=null
REDIS_PORT=6379

Remplacez <REDIS_HOST> par l'adresse de votre serveur Redis.

Proxy de Confiance

Vous devrez peut-être configurer les paramètres de proxy de confiance si votre application est derrière un proxy inverse. Pour ce faire :

  • Définir la variable d'environnement TRUSTED_PROXIES avec l'IP de votre serveur proxy
  • Ajouter la configuration suivante dans Symfony :

Fichier : config/packages/framework.yaml

framework:
    trusted_proxies: "%env(TRUSTED_PROXIES)%"
    trusted_headers: ['x-forwarded-for', 'x-forwarded-host', 'x-forwarded-proto', 'x-forwarded-port', 'x-forwarded-prefix']

Cette configuration permet à Symfony de faire confiance aux en-têtes HTTP fournis par le proxy inverse, ce qui est essentiel pour la gestion correcte des requêtes HTTP.