Correr Laravel en tu propio droplet de DigitalOcean, sin Forge
Laravel Forge existe porque configurar correctamente un droplet de DigitalOcean — Nginx u Octane, PHP-FPM, un queue worker, el scheduler, TLS, despliegues sin downtime — es trabajo real que la mayoría de los equipos preferiría pagar para evitarse. La parte que vale la pena separar: ese trabajo de configuración es un problema de una sola vez, no una razón para pagar una cuota recurrente encima del droplet que ya le estás pagando a DigitalOcean.
Qué tiene que pasar en realidad en el droplet
Cada una de estas cosas es configuración real, no un pulido opcional: composer install, php artisan migrate --force antes de que el código nuevo reciba tráfico, APP_KEY generado y mantenido estable entre despliegues, un queue worker corriendo junto al proceso web sin pisarlo, php artisan schedule:run disparándose a tiempo, y un cambio sin downtime para que un despliegue no tire requests a mitad del release.
Conectar tu propio droplet
Servers → Add a server → Create on your cloud → DigitalOcean
Un personal access token del panel de control de DigitalOcean (API → genera un token con acceso de lectura y escritura) es todo lo que se necesita — Railyard aprovisiona el droplet directamente en tu propia cuenta de DigitalOcean, al precio propio de DigitalOcean, sin sobreprecio. s-1vcpu-2gb (1 vCPU, 2 GB) es un tamaño inicial razonable para una sola app de Laravel; Frankfurt o Ámsterdam si los datos tienen que quedarse en la UE.
¿Ya tienes un droplet corriendo? Bring your own server funciona igual contra cualquier máquina Ubuntu 22.04/24.04 con sudo sin contraseña y los puertos 22/80/443 abiertos — no hace falta aprovisionar uno nuevo solo para conectarlo.
Qué pasa en cuanto el repo está conectado
railyard create my-app https://github.com/me/my-app --addons mysql,redis
composer.json y .env.example se leen para completar el motor de base de datos, php artisan migrate --force como el paso de release, y APP_KEY se genera una sola vez en el propio formato de Laravel. laravel/horizon o laravel/octane instalados se detectan y se conectan de la misma forma — revisa la documentación completa de Laravel para las reglas exactas de detección. Cada push después del primero reconstruye y redespliega en el mismo droplet, con el cambio sin downtime manejado automáticamente.
La comparación real
El valor de Forge es real — resuelve exactamente el problema de arriba. La pregunta que vale la pena hacerse es simplemente dónde debería vivir ese valor: como un sobreprecio sobre cada droplet para siempre, o como una decisión de plataforma de una sola vez sobre infraestructura que ya es tuya de cualquier forma. Los dos caminos terminan con un droplet funcionando y configurado correctamente; solo uno de ellos sigue cobrando después de que la configuración ya está hecha.
Referencia completa: Documentación de Laravel, Agregar un servidor.