Skip to content

Déploiement Production

  • PHP 8.4+ avec extensions : pdo_pgsql, mbstring, xml, curl, zip
  • Composer 2.x
  • PostgreSQL 18
  • Redis (recommandé pour cache/queues)
  • Nginx ou Apache
  • Node.js 20+ (pour le build)
  • Serveur web statique (Nginx, Vercel, Netlify…)
  1. Cloner et installer

    Terminal window
    git clone https://github.com/xetaio/XetaSuite-core.git
    cd XetaSuite-core
    composer install --no-dev --optimize-autoloader
  2. Configurer l’environnement

    Terminal window
    cp .env.example .env
    php artisan key:generate

    Éditez .env :

    Terminal window
    APP_ENV=production
    APP_DEBUG=false
    APP_URL=https://api.xetasuite.com
    DB_CONNECTION=pgsql
    DB_HOST=your-db-host
    DB_DATABASE=xetasuite
    DB_USERNAME=your-user
    DB_PASSWORD=your-password
    SANCTUM_STATEFUL_DOMAINS=xetasuite.com
    SESSION_DOMAIN=.xetasuite.com
    SPA_URL=https://xetasuite.com
    QUEUE_CONNECTION=redis
    CACHE_DRIVER=redis
    SESSION_DRIVER=database
  3. Optimiser pour la production

    Terminal window
    php artisan config:cache
    php artisan route:cache
    php artisan view:cache
    php artisan event:cache
  4. Exécuter les migrations

    Terminal window
    php artisan migrate --force
  5. Configurer le storage

    Terminal window
    php artisan storage:link
server {
listen 443 ssl http2;
server_name api.xetasuite.com;
root /var/www/xetasuite-core/public;
index index.php;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
  1. Build de production

    Terminal window
    cd XetaSuite-React
    npm ci
    npm run build
  2. Configurer l’environnement

    Créez .env :

    Terminal window
    VITE_API_URL=https://api.xetasuite.com
  3. Déployer les fichiers statiques

    Uploadez le contenu du dossier dist/ sur votre serveur web ou CDN.

server {
listen 443 ssl http2;
server_name app.xetasuite.com;
root /var/www/xetasuite-react/dist;
index index.html;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;
location / {
try_files $uri $uri/ /index.html;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
}

Consultez le guide Queue Workers pour configurer Supervisor ou Systemd.

Terminal window
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d api.xetasuite.com -d app.xetasuite.com
  • APP_DEBUG=false
  • APP_ENV=production
  • Caches générés (config:cache, route:cache, etc.)
  • Queue worker en cours d’exécution
  • Cron du scheduler configuré
  • Certificats SSL installés
  • Sauvegardes configurées
  • Monitoring en place