Introducing Bellows: An Intelligent CLI for Your Laravel Apps
Bellows makes it trivial to launch your Laravel app with Laravel Forge, fully configured with all of your third-party services.
I am beyond excited to announce the release of Bellows.
Heads up! This post is a bit old. Bellows does so much more than this post describes, including:
Kickoff: Scaffold new Laravel apps to your exact specifications
Deploy: Deploy changes to your Forge site
Load Balancers: Launch and deploy to your load-balanced Forge sites
You should check out bellows.dev to learn everything that Bellows can do, it's incredibly powerful.
If you use Laravel Forge and launch sites with any regularity, Bellows is about to be your best friend. Forge already makes launching a site easy, Bellows makes it effortless.
You can learn more at bellows.dev or you can:
Demo
Brief Background
I use Laravel Forge extensively, both personal projects and client work. I launch sites quite often, many of them Laravel apps. They always involve doing the same thing, over and over again:
Updating domain records to point to server
Adding the
run schedule
artisan commandSecuring the site
Configuring the mailer
Logging into mail provider
Adding a new
mail.
domain nameVerifying
mail.
domain name by updating DNS records againSetting
.env
variables
Configuring the database
Logging into DigitalOcean
Creating a database
Creating a user
Copying the user credentials
Copying the database config
Setting
.env
variables
You get the idea, the list goes on.
Is all of this manageable? Sure. Is it automatable? Yes. So I wrote Bellows to handle it all for me. And now, for you too!
What It Does
Bellows walks you through deploying your site for the first time, reading your .env
and installed packages and auto-detecting which services you'd like to configure for your app. If it's unsure about an action, it will ask you (it will never do something without your permission).
Bellows can update your deploy script, add .env
variables, create workers, create daemons, create scheduled jobs, and more. Some examples:
If you use Cloudflare, GoDaddy, or DigitalOcean Bellows is able to point your domain to your server and auto-validate any domains for mail providers.
If it detects that your app is using Octane, it will create the site as an Octane site and create the required daemon.
If it detects that you have the Bugsnag package installed, it will ask you if you want to create a Bugsnag project or select an existing one from the list.
Using Pusher? Just select your Pusher app from the list and let Bellows set up your
.env
values.If Postmark is your mailer, you can choose an existing server and domain or have Bellows create them for you automatically. It'll even automatically verify your new domain if your DNS provider is supported.
There is an entire list of plugins that allows Bellows to support many third-party services, and I'm building more as you are reading this.
Right now the plugin system is closed, but custom plugins are on the roadmap. Looking for a Bellows plugin for a service you use? Hit me up and let me know!
Using Bellows
The first time you use Bellows, you'll be entering some API keys as it walks you through launching your site. These are needed to connect to Forge and any third-party services your app needs.
My policy is that if Bellows needs an API key, it gives you a direct link to retrieve it. Click the link, grab the key, paste it in. Onwards.
The second (and third, and fourth, and fifth, and...) time you use Bellows, you'll be flying. It auto-detects as much as possible to allow you to basically keep pressing the enter key.
Roadmap
Soon, Bellows will be able to do more than just launch your site.
Deploy
The deploy
command will allow you to push changes to an existing site on Forge in the same way launch
does. Let's say you forgot to add Postmark as your mailer when you launched. No problem. deploy
will configure and add Postmark to your site in no time flat.
Kickoff
The kickoff
command creates and configures a Laravel app according to your custom settings. Do you always install certain packages? Always include that code snippet in your AppServiceProvider
? Always adjust that specific config value? With kickoff
you can go from idea to writing actionable code in 30 seconds or less.
Load Balancers
The launch
command will soon be able to create sites associated with a Forge load balancer. No more creating the same site on multiple servers, just do it in one shot with Bellows.
Shout Outs
As with any piece of software, Bellows is standing on the shoulders of giants. A huge thank you to these packages (and their maintainers), they were critical to making Bellows what it is:
Special shout out to Anystack.sh for providing such an excellent platform to make licensing so easy (and to Philo Hermans for patiently and helpfully answering so many of my questions, it is greatly appreciated).
Launch Pricing
Grab Bellows today! Normally, the price is $49 for a year's worth of updates. But for the launch I created a limited set of 25 licenses for $29, get them while they're still available: