Laravel

Laravel

Faça deploy de Laravel com MySQL ou Postgres, APP_KEY, queue workers, Horizon e o scheduler.

  • Release: php artisan migrate --force.
  • Variáveis: DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD e APP_URL do seu .env.example são ligadas ao banco de dados provisionado e à URL do app. O APP_KEY é gerado no formato base64: do próprio Laravel.
  • Workers: php artisan queue:work, ou php artisan horizon quando laravel/horizon está instalado.
  • Octane: com laravel/octane no composer.json e sem Dockerfile, o processo web roda php artisan octane:start --server=frankenphp --host=0.0.0.0 --port=$PORT automaticamente.
  • Reverb: com laravel/reverb no composer.json, um worker reverb rodando php artisan reverb:start é adicionado para você.

Queue workers e o scheduler, como processos

queue (ou horizon), reverb e um processo scheduler são a mesma imagem do web, iniciados com um comando artisan diferente — um único código-fonte e um único build, vários tipos de processo, cada um escalado separadamente.

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

O Railyard adiciona o queue (ou horizon, quando instalado) automaticamente; um processo scheduler rodando schedule:work também é oferecido assim que routes/console.php ou bootstrap/app.php agenda alguma coisa. Prefira o Cron do próprio Railyard e deixe ele rodar php artisan schedule:run em um intervalo fixo — os dois funcionam, já que schedule:run só dispara as tarefas que realmente estão no horário. Adicione mais processos na aba Workers, ou escale o que já existe pela CLI:

railyard scale my-app queue=2

Backend de queue e cache

QUEUE_CONNECTION, CACHE_STORE, SESSION_DRIVER ou BROADCAST_CONNECTION definidos como redis no seu .env.example (ou o próprio laravel/horizon) provisionam o Redis e injetam suas variáveis de conexão automaticamente — nenhum addon para adicionar na mão. O banco de dados segue a mesma regra: DB_CONNECTION=pgsql ou mysql no .env.example decide qual engine é provisionada.

Configuração e secrets

Toda variável que a configuração do Laravel lê com env() é uma variável comum em Variables, ou definida com railyard env:set my-app KEY=VALUE — nunca embutida na imagem, então o mesmo build roda sem alterações de staging até produção: paridade dev/prod, não um rebuild por ambiente. O APP_KEY é gerado uma única vez no formato base64: do próprio Laravel e criptografado; chaves de terceiros nunca são inventadas. Aponte para um banco de dados ou Redis rodando como serviço próprio no canvas com ${{redis.RAILYARD_PRIVATE_URL}} — resolvido por ambiente. Veja Variáveis e secrets.

Fazendo o deploy

  • A partir de um repositório: cole a URL do Git, ou escolha no seletor depois que o GitHub estiver conectado — o Railyard lê composer.json e .env.example, preenche o artisan migrate, o queue worker e o banco de dados provisionado, e faz deploy a cada push.
  • Pela CLI: railyard create my-app https://github.com/me/my-app --addons mysql,redis, ou railyard git:remote && git push railyard main dentro do repositório.
  • Um clique só: adicione o botão de deploy ao seu README, ou publique no catálogo de templates para qualquer pessoa lançar com os addons e variáveis já preenchidos.