Laravel

Laravel

Despliega Laravel con MySQL o Postgres, APP_KEY, workers de queue, Horizon y el scheduler.

  • Release: php artisan migrate --force.
  • Variables: DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD y APP_URL de tu .env.example se conectan a la base de datos provisionada y a la URL de la app. APP_KEY se genera en el formato base64: propio de Laravel.
  • Workers: php artisan queue:work, o php artisan horizon cuando laravel/horizon está instalado.
  • Octane: con laravel/octane en composer.json y sin Dockerfile, el proceso web ejecuta php artisan octane:start --server=frankenphp --host=0.0.0.0 --port=$PORT automáticamente.
  • Reverb: con laravel/reverb en composer.json, se agrega por ti un worker reverb que ejecuta php artisan reverb:start.

Workers de queue y el scheduler, como procesos

queue (u horizon), reverb y un proceso scheduler son la misma imagen que web, iniciada con un comando artisan distinto — un mismo código y un mismo build, varios tipos de proceso, cada uno escalado por su cuenta.

web: php artisan octane:start --server=frankenphp --host=0.0.0.0 --port=$PORT
queue: php artisan queue:work
scheduler: php artisan schedule:work

Railyard agrega queue (u horizon cuando está instalado) automáticamente; también se ofrece un proceso scheduler que ejecuta schedule:work en cuanto routes/console.php o bootstrap/app.php programan algo. Prefiere en cambio el Cron propio de Railyard y haz que ejecute php artisan schedule:run en un intervalo fijo — ambas opciones funcionan, ya que schedule:run solo dispara las tareas que realmente están pendientes. Agrega más procesos desde la pestaña Workers, o escala lo que ya existe desde la CLI:

railyard scale my-app queue=2

Backend de queue y cache

QUEUE_CONNECTION, CACHE_STORE, SESSION_DRIVER o BROADCAST_CONNECTION definido como redis en tu .env.example (o el propio laravel/horizon) provisiona Redis e inyecta sus variables de conexión automáticamente — sin complemento que agregar a mano. La base de datos sigue la misma regla: DB_CONNECTION=pgsql o mysql en .env.example decide qué motor se provisiona.

Configuración y secretos

Cada variable que la configuración de Laravel lee con env() es una variable normal en Variables, o se define con railyard env:set my-app KEY=VALUE — nunca incrustada en la imagen, así el mismo build corre sin cambios desde staging hasta producción: paridad dev/prod, no una reconstrucción por entorno. APP_KEY se genera una sola vez en el propio formato base64: de Laravel y se cifra; las claves de terceros nunca se inventan. Apunta a una base de datos o Redis que corra como su propio servicio en el canvas con ${{redis.RAILYARD_PRIVATE_URL}} — resuelto por entorno. Consulta Variables y secretos.

Despliégalo

  • Desde un repositorio: pega la URL de Git, o elígelo del selector una vez que conectes GitHub — Railyard lee composer.json y .env.example, completa artisan migrate, el worker de queue y la base de datos provisionada, y despliega con cada push.
  • Desde la CLI: railyard create my-app https://github.com/me/my-app --addons mysql,redis, o railyard git:remote && git push railyard main desde dentro del repositorio.
  • Con un clic: agrega el botón de despliegue a tu README, o publícalo en el catálogo de plantillas para que cualquiera pueda lanzarlo con sus complementos y variables ya completados.