Laravel
Faça deploy de Laravel com MySQL ou Postgres, APP_KEY, queue workers, Horizon e o scheduler.
Passo a passo: Fazer deploy de Laravel no DigitalOcean · Fazer deploy de Laravel no Hetzner · Fazer deploy de Laravel no Vultr · Fazer deploy de Laravel no OVHcloud · Fazer deploy de Laravel no Scaleway · Fazer deploy de Laravel no UpCloud
- Release:
php artisan migrate --force. - Variáveis:
DB_HOST,DB_PORT,DB_DATABASE,DB_USERNAME,DB_PASSWORDeAPP_URLdo seu.env.examplesão ligadas ao banco de dados provisionado e à URL do app. OAPP_KEYé gerado no formatobase64:do próprio Laravel. - Workers:
php artisan queue:work, ouphp artisan horizonquandolaravel/horizonestá instalado. - Octane: com
laravel/octanenocomposer.jsone sem Dockerfile, o processo web rodaphp artisan octane:start --server=frankenphp --host=0.0.0.0 --port=$PORTautomaticamente. - Reverb: com
laravel/reverbnocomposer.json, um workerreverbrodandophp 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.jsone.env.example, preenche oartisan 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, ourailyard git:remote && git push railyard maindentro 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.