Protone Media logo

Announcing our next Laravel project: Launcher. A Docker-based deployment tool to launch apps and sites fully containerized.

It's been a bit quiet when it comes to blogging, streaming, and releasing open-source packages. So instead, we've worked hard on an e-commerce platform written in Laravel and refined Form Components Pro and Inertia Tables along the way. Both packages are heavily used on the platform, and I'm really pleased with how they turned out! In the following weeks, I will write some additional blog posts on e-commerce, but first, I've got some exciting news to share.

Last week I announced a new chapter of our Laravel journey: We released a new deployment tool for Laravel, and we're calling it Launcher! It's based on Docker, so it brings 'per website' isolation out of the box. As each site gets its own container, you can fully customize it to your needs. This also means you can tweak and tinker with each site without breaking another. Furthermore, each site gets its own isolated Redis instance, and even cronjobs and daemons run in isolated containers.

Launcher

Over the past couple of years, I worked with Docker for native desktop and mobile app development. It's a remarkable technique, and we wanted to bring Dockerized deployment to the Laravel community, but do it as easy as possible. First and foremost, we wanted this tool for ourselves, so we started with the absolute basics. We'll add many more features in the coming months, mainly depending on customers' needs, but we wanted to get it out in the open as soon as possible.

I've done this a bit on Twitter as well, but I'll walk you through the feature set! First, you can add your public SSH key to the platform to gain full access to your servers. Next, you can connect your GitHub profile so your servers can access your repositories, but of course, you can use custom Git URLs as well. We spin up servers with Ubuntu Server 20.04 and prepare them to host your sites. Currently, we can provision servers at Digital Ocean and Hetzner Cloud. Once provisioned, we start a shared MySQL container and an Nginx container. Both are manageable through the UI.

Spin up a new server with Launcher

Deploying sites is easy. You pick a domain, select a Git repository, and choose the correct PHP version. Optionally, you can create a database and a database user in the same flow. We make the .env file near-perfect on the first deployment: We generate an app key, fill in the database credentials, and set the correct configuration for services like Redis. After that, you can follow deployments closely as we update the logs almost in real-time. By the way, deployments run in an isolated container as well, independent from the live container.

Deploy a new site with Launcher

So how can you configure each site? We provide a set of pre-built images that you can start with. Then, you can extend the images, install additional PHP modules and other tools and edit configuration files through the UI. For example, you can edit the Nginx and PHP configuration files and the .env file, the deployment script, and add composer and npm credentials. We validate Nginx configuration files before they're being pushed to the server.

Edit the .env file with Launcher

Once your site is deployed, you can configure cronjobs and daemons. We've built-in support for Let's Encrypt certificates and made it really easy to access the Artisan CLI. Furthermore, we've got push-to-deploy, a team activity log, and support for two-factor authentication. So what's all this gonna cost?

We've put every feature we've got in a Basic plan that we sell for € 4,99 per month. We're still figuring out in which order to build new features and what the other plans will look like. To make this tool affordable for everybody, we added "Purchasing Power Parity". We use Paddle to process the payments, and once you fill in your country, it automatically adjusts the price. So, for example, if you're in India, Launcher will not cost you around ₹ 435 per month, but more like ₹ 140, depending on the exchange and other rates.

We've started a new Twitter account for Launcher, and we provide a list of all current and upcoming features on our website. There's a 14-day trial that you can use, and please let me know if you have any questions! This is an exciting new adventure, and we're happy to learn how you use Launcher.

Related posts

Want to stay up-to-date on Laravel news and packages?

Pascal Baljet on Twitter

Follow me on Twitter: @pascalbaljet

Pascal Baljet on Twitter

Subscribe to my YouTube channel

© 2013-2021 Protone Media B.V.