Laravel (PHP)
Laravel fonctionne sur Kavio, avec deux réglages à faire vous-même.
1. Variables d'environnement
Dans le panneau de configuration à l'import (ou dans la section Variables d'environnement de la page projet), déclarez :
| Variable | Valeur | Pourquoi |
|---|---|---|
APP_KEY | une clé générée localement avec php artisan key:generate --show (commence par base64:) | Requise par Laravel, absente du dépôt par convention. Doit être définie avant le premier déploiement : Kavio met en cache votre configuration au moment du build, donc une clé ajoutée après coup n'est prise en compte qu'au déploiement suivant. |
APP_ENV | production | Sans elle, l'app tourne en environnement local — plus lent, et pas ce que vous voulez servir à vos visiteurs. |
Vous n'avez rien à déclarer pour le point d'entrée (public/) : contrairement à Symfony, Kavio détecte Laravel automatiquement et sert le bon dossier sans configuration.
2. Base de données SQLite : créez-la et migrez-la au build
Par convention, Laravel ne commit jamais database/database.sqlite (il est dans .gitignore), et Kavio n'exécute aucune migration de lui-même. Sans action de votre part, ce fichier n'existe pas du tout une fois déployé.
⚠️ Ce point concerne toutes les apps Laravel, pas seulement celles qui utilisent une base de données pour leurs propres données : par défaut, Laravel stocke les sessions et le cache dans la base (SESSION_DRIVER=database, CACHE_STORE=database). Comme une session démarre sur n'importe quelle requête web, une base absente ou non migrée fait planter toutes vos pages, même celles qui n'affichent aucune donnée.
La solution, dans package.json :
{
"scripts": {
"build": "vite build && touch database/database.sqlite && php artisan migrate --force --no-interaction"
}
}
Kavio lance npm run build automatiquement à chaque déploiement, juste après l'installation des dépendances PHP — artisan est donc déjà disponible à ce moment-là.
Si vous utilisez MySQL ou PostgreSQL plutôt que SQLite, ignorez ce point : déclarez simplement DB_CONNECTION et les variables de connexion correspondantes, et gardez php artisan migrate --force --no-interaction dans le script build.
Ce qui n'est pas nécessaire
Vous n'avez rien à faire concernant :
PORT— automatiquement imposé par la plateforme, votre app n'a pas à le déclarer ni à le lire.- Le CSS et le JS (Vite) —
vite buildfait déjà partie du chemin npm standard que Kavio exécute toujours, aucun contournement nécessaire. - Les dossiers
storage/etbootstrap/cache/— Kavio les crée et les rend inscriptibles automatiquement au build, puis exécuteconfig:cache,event:cache,route:cacheetview:cacheà votre place. - Le cache, les sessions et les logs (
storage/framework/,storage/logs/) — le disque applicatif est inscriptible sur Kavio, Laravel y écrit normalement.