Déployer Laravel
Une application Laravel avec sa base, son cache, ses files d'attente, son planificateur et ses migrations, sur Fransys.
Ce qu’il vous faut
Section intitulée « Ce qu’il vous faut »- 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.
Le service de l’application
Section intitulée « Le service de l’application »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).
La base de données
Section intitulée « La base de données »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).
Les variables de l’application
Section intitulée « Les variables de l’application »Importez votre .env.example (mode Plusieurs variables (.env)), puis complétez :
APP_KEY: générez-la sur votre poste avecphp artisan key:generate --show, et ajoutez-la protégée ;APP_ENV=production,APP_DEBUG=false;APP_URL: l’adresse du service, enfransysapp.comou votre domaine.
Gardez les secrets (clés d’API, mots de passe SMTP) en variables protégées.
Redis pour le cache, les sessions et les files
Section intitulée « Redis pour le cache, les sessions et les files »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.
Les migrations
Section intitulée « Les migrations »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.
Le planificateur
Section intitulée « Le planificateur »Activez Lancer le planificateur Laravel si votre plateforme le propose. Sinon, ajoutez une tâche planifiée php artisan schedule:run chaque minute (* * * * *).
Les workers de files d’attente
Section intitulée « Les workers de files d’attente »Fransys ne change pas la commande du conteneur. Faites lire un rôle à votre point d’entrée :
#!/bin/shif [ "$CONTAINER_ROLE" = "worker" ]; then exec php artisan queue:work --tries=3fiexec "$@"Puis copiez le service de l’application et ajoutez CONTAINER_ROLE=worker à la copie. Votre agent sait préparer cette copie dans un plan.
Les fichiers envoyés par vos utilisateurs
Section intitulée « Les fichiers envoyés par vos utilisateurs »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.
Le temps réel
Section intitulée « Le temps réel »Pour le broadcasting, ajoutez un service WebSocket relié à l’application et le pilote Pusher. Voir Autres services.
Le faire faire par votre agent
Section intitulée « Le faire faire par votre agent »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.