Aller au contenu

Déployer Laravel

Une application Laravel avec sa base, son cache, ses files d'attente, son planificateur et ses migrations, sur Fransys.

Vérifié le 23 oct. 2026 sur la console
  • Un projet rattaché à un cluster (Premier déploiement).
  • Votre application dans un dépôt GitHub ou GitLab, ou une image Docker déjà construite.

Ajoutez une Application. Dans Général, la Plateforme dépend de votre compte : choisissez Laravel si elle est proposée, sinon l’image Docker, construite par votre Dockerfile. Branchez le dépôt et la CI : voir Depuis GitHub ou GitLab.

Avec votre propre Dockerfile, réglez le Port du conteneur sur celui où répond votre serveur web (par exemple 8080 avec les images serversideup/php, 80 avec un nginx classique).

Ajoutez une base PostgreSQL ou MariaDB reliée à l’application. L’application reçoit ses variables de connexion : ouvrez l’onglet Variables pour voir leurs noms.

Laravel attend DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME et DB_PASSWORD. Deux façons de faire correspondre :

  • renommer chaque variable reçue dans ce service (Nom dans ce service) ;
  • ou ajouter DB_HOST=${…} en citant la variable reçue, avec Autoriser les références.

Ajoutez DB_CONNECTION=pgsql (ou mariadb).

Importez votre .env.example (mode Plusieurs variables (.env)), puis complétez :

  • APP_KEY : générez-la sur votre poste avec php artisan key:generate --show, et ajoutez-la protégée ;
  • APP_ENV=production, APP_DEBUG=false ;
  • APP_URL : l’adresse du service, en fransysapp.com ou votre domaine.

Gardez les secrets (clés d’API, mots de passe SMTP) en variables protégées.

Ajoutez un Redis relié à l’application : elle reçoit REDIS_HOST, REDIS_PORT et REDIS_PASSWORD, les noms qu’attend Laravel. Puis CACHE_STORE=redis, SESSION_DRIVER=redis, QUEUE_CONNECTION=redis.

Dans Commandes de déploiement, ajoutez php artisan migrate --force à Après la première installation et à Après une mise à jour. Ajoutez au même endroit php artisan optimize si vous mettez la configuration en cache.

Activez Lancer le planificateur Laravel si votre plateforme le propose. Sinon, ajoutez une tâche planifiée php artisan schedule:run chaque minute (* * * * *).

Fransys ne change pas la commande du conteneur. Faites lire un rôle à votre point d’entrée :

entrypoint.sh
#!/bin/sh
if [ "$CONTAINER_ROLE" = "worker" ]; then
exec php artisan queue:work --tries=3
fi
exec "$@"

Puis copiez le service de l’application et ajoutez CONTAINER_ROLE=worker à la copie. Votre agent sait préparer cette copie dans un plan.

Un conteneur redémarre sans ses fichiers. Pour storage/app, ajoutez un volume dans Stockage (point de montage /var/www/html/storage/app, selon votre image), ou utilisez un stockage objet compatible S3.

Pour le broadcasting, ajoutez un service WebSocket relié à l’application et le pilote Pusher. Voir Autres services.

Ouvrez l’agent dans le dossier du dépôt et donnez-lui la consigne du guide de lancement : il lit le Dockerfile, le docker-compose et le .env.example, puis prépare le port, les variables, les bases, le planificateur et les workers dans un plan, que vous relisez. Voir Déployer votre code.