Rodando Laravel no seu próprio droplet da DigitalOcean, sem o Forge
O Laravel Forge existe porque configurar um droplet da DigitalOcean corretamente — Nginx ou Octane, PHP-FPM, um worker de fila, o scheduler, TLS, deploys sem downtime — é trabalho de verdade que a maioria das equipes prefere pagar pra não fazer. A parte que vale separar: esse trabalho de configuração é um problema de uma vez só, não um motivo pra pagar uma taxa recorrente em cima do droplet que você já está pagando pra DigitalOcean.
O que realmente precisa acontecer no droplet
Cada um desses itens é configuração de verdade, não um acabamento opcional: composer install, php artisan migrate --force antes do código novo receber tráfego, APP_KEY gerada e mantida estável entre deploys, um worker de fila rodando junto com o processo web sem pisar nele, php artisan schedule:run disparando no horário certo, e uma troca sem downtime pra um deploy não derrubar requisições no meio do release.
Conectando seu próprio droplet
Servers → Add a server → Create on your cloud → DigitalOcean
Um personal access token do painel da DigitalOcean (API → gere um token com acesso de leitura e escrita) é tudo que é preciso — a Railyard provisiona o droplet direto na sua própria conta da DigitalOcean, no preço da própria DigitalOcean, sem markup. s-1vcpu-2gb (1 vCPU, 2 GB) é um tamanho inicial razoável pra uma única aplicação Laravel; Frankfurt ou Amsterdã se os dados precisam ficar na UE.
Já tem um droplet rodando? Bring your own server funciona do mesmo jeito contra qualquer máquina Ubuntu 22.04/24.04 com sudo sem senha e as portas 22/80/443 abertas — sem precisar provisionar um novo só pra conectar.
O que acontece depois que o repositório é conectado
railyard create my-app https://github.com/me/my-app --addons mysql,redis
O composer.json e o .env.example são lidos pra preencher o engine do banco de dados, php artisan migrate --force como etapa de release, e APP_KEY gerada uma vez no formato próprio do Laravel. Ter laravel/horizon ou laravel/octane instalado é detectado e configurado do mesmo jeito — veja as regras exatas de detecção nos docs do Laravel completos. Todo push depois do primeiro refaz o build e o deploy no mesmo droplet, com a troca sem downtime tratada automaticamente.
A comparação de verdade
O valor do Forge é real — ele resolve exatamente o problema acima. A pergunta que vale fazer é só onde esse valor deveria morar: como um markup em cada droplet pra sempre, ou como uma escolha de plataforma de uma vez só sobre uma infraestrutura que já é sua de qualquer jeito. Os dois caminhos terminam com um droplet funcionando, configurado corretamente; só um deles continua cobrando depois que a configuração termina.
Referência completa: docs do Laravel, Add a server.