Despliegue
VPS (Nginx + PHP-FPM)
Requisitos
- Ubuntu 22.04+ o Debian 12+
- PHP 8.4 con
php-fpm,php-cliy extensiones requeridas - Nginx (o Apache)
- MySQL 8+ o PostgreSQL 14+
- Node.js 18+ para compilar assets frontend
- Composer
- Supervisor (recomendado, para workers en segundo plano)
Pasos
# 1. Clonar el proyectocd /var/wwwgit clone https://github.com/jambostack/jambo-api.gitcd jambo-api
# 2. Instalar dependenciascomposer install --no-dev --optimize-autoloadernpm ci && npm run build
# 3. Configurar el entornocp .env.example .env# Edita .env con tu base de datos, mailer y APP_SECRET
# 4. Crear la base de datosphp bin/console doctrine:database:createphp bin/console doctrine:migrations:migratephp bin/console app:setup
# 5. Establecer permisossudo chown -R www-data:www-data var/ public/uploads/Configuración Nginx
server { listen 80; server_name api.ejemplo.com; root /var/www/jambo-api/public;
location / { try_files $uri /index.php$is_args$args; }
location ~ \.php$ { fastcgi_pass unix:/var/run/php/php8.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
location ~ /\.(ht|git|env) { deny all; }}Supervisor para workers
[program:jambo-worker]command=php /var/www/jambo-api/bin/console messenger:consume async -vvuser=www-datanumprocs=2autostart=trueautorestart=trueDocker
# Clonar y lanzargit clone https://github.com/jambostack/jambo-api.gitcd jambo-apidocker compose up -d
# Ejecutar setup dentro del contenedordocker compose exec app php bin/console app:setupEl archivo compose.yaml incluido configura PHP-FPM, Nginx, MySQL y Meilisearch.
Checklist de producción
- Establecer
APP_ENV=prodyAPP_DEBUG=0 - Generar un
APP_SECRETrobusto (openssl rand -hex 32) - Configurar HTTPS (Let’s Encrypt recomendado)
- Establecer copias de seguridad de la base de datos
- Activar OPcache en
php.ini - Establecer permisos correctos (
var/,public/uploads/) - Configurar un DSN de correo real (no usar
null://en producción) - Ejecutar
php bin/console cache:cleardespués de cada despliegue