Laravel Packages

Dynamically Create and Destroy Servers with this Laravel Package

Published
Dynamically Create and Destroy Servers with this Laravel Package image

Laravel Dynamic Servers is a package by Spatie that helps you start and stop servers when needed. The primary use case is creating extra servers to help you with queue workloads.

You might be wondering, "why not just use Kubernetes?" In the author's blog post A package to manage dynamic servers, Freek Van der Herten said:

You can think of laravel-dynamic-servers as a sort of PHP-based version of Kubernetes that has 5% of its features but covers that 80% use case. For most PHP and Laravel developers, this package will also be easier to learn and use.

So while you could solve these problems in other ways, this package might perfect for your needs to scale servers up and down.

Here's an example callback you might add to calculate how many servers to ensure are running based on whatever logic you need:

// In a service provider
use Spatie\DynamicServers\Facades\DynamicServers;
use Spatie\DynamicServers\Support\DynamicServersManager;
 
DynamicServers::determineServerCount(function(DynamicServersManager $servers) {
// Custom logic to decide how many servers are needed.
// This callback runs every minute.
$numberOfServersNeeded = 5;
$servers->ensure($numberOfServersNeeded);
});

The package's readme example uses Horizon's WaitTimeCalculator to determine how many servers to ensure. The above callback would run each minute to scale up and down, depending on what you need.

Some of the other highlights of what this package offers:

  • Ensuring a number of servers are running
  • Rebooting servers
  • Ability to handle multiple server types
  • Manually increasing/decreasing the number of servers
  • Custom service provider
  • Configurable hard limit on the number of servers

Out of the box, this package has a server provider for UpCloud. However, you can create a custom provider for your favorite cloud service provider.

Check out the documentation to get started with this package. The source code is open-source on GitHub at spatie/laravel-dynamic-servers.

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Sponsored

acquaintsoft logo
Acquaint Softtech

Hire Laravel developers with AI expertise at $20/hr. Get started in 48 hours.

Visit Acquaint Softtech

The latest

View all →
What We Know About Laravel 14 image

What We Know About Laravel 14

Read article
Difflock: Lint Laravel Migrations and Diff Your Schema image

Difflock: Lint Laravel Migrations and Diff Your Schema

Read article
Fresh Package: Laravel Package Skeleton with Testbench, CI, and Boost Integration image

Fresh Package: Laravel Package Skeleton with Testbench, CI, and Boost Integration

Read article
Inertia DevTools Now Available for Firefox image

Inertia DevTools Now Available for Firefox

Read article
Laravel Scalpel Scans for Filesystem Intrusion Evidence image

Laravel Scalpel Scans for Filesystem Intrusion Evidence

Read article
Mercure Broadcasting in Laravel 13.32 image

Mercure Broadcasting in Laravel 13.32

Read article