Skip to main content

How To Forge Round-Up in Laravel8 | Laravelnote

 April has been a busy month at Laravel Forge. With such a feature-packed month, I thought it would be great to finish the month with a blog post highlighting some of the best bits.


Firstly, Claudio Dekker joined us on the 5th April. Claudio will be primarily working alongside myself on Forge.


Server Events Panel | Laravelnote

Claudio's first contribution to Forge is the addition of a new Server Events panel. This panel displays the last 30 days of server events, such as adding an SSH key, creating a new site, installing a new version of PHP, etc. It also doubles as an server audit trail, allowing you to see who did what, and when.


The new Server Events panel in Forge.

The new Server Events panel in Forge.


Site Commands Panel Improvements & API

We shipped the Site Commands Panel at the end of March, and have continued to improve it since. The latest round of improvements include:


Commands which fail due to server connection issues will correctly be marked as failed.

The panel is now always available, even for sites that don't have projects installed. This is particularly useful when you're using Forge in combination with Envoyer.

Commands can now be re-ran via the dropdown menu.

Furthermore, we also introduced an API for Site Commands. This is also available via the latest version of the forge-sdk package.


Editing Security Rules

Until recently, if you wanted to add additional users to an existing security rule, you'd have to first delete it and manually re-add it. Now, you can simply add a new rule with the same path and new users and Forge will automatically add the users to the existing rule.


Improved Support for Internationalized Domains

Whilst Forge has supported internationalized domains for a while, you had to know how to provide the decoded version of the domain.


The Forge frontend will now automatically encode and decode the domain name for you at every point between adding the new site, creating the Nginx configuration, and requesting LetsEncrypt certificates.


When using the API to manage sites, you should encode and decode the domain manually.


Change Databases Within Backups

Database Backups have been a much-loved feature in Forge and we've continued to develop it since releasing it last year.


When editing a backup configuration, it is now possible to change the databases that will be backed up. If the selected databases are changed, Forge will ask you to confirm that it's an intended change to prevent any accidental data loss.


Forge will ask for confirmation when changing databases in a backup configuration.

Forge will ask for confirmation when changing databases in a backup configuration.


Hetzner Backups

Hetzner's "Daily Backups" option may be enabled when creating a server to enable the provider's daily backup feature, similar to DigitalOcean's backup offering.


Laravel Octane Support

We've announced Laravel Octane support on our blog already, but we couldn't not mention it again!


The feedback from users already testing Octane has been great, and we plan on releasing the first stable release of Laravel Octane next week.


Environment Panel Improvements

The Environment Panel has been updated with a few neat features:


The panel now polls in the background for server-side changes and notifies you if it has changed.

The contents of the file are now only loaded when the panel is viewed.

Environment file polling.

Environment file polling.


DigitalOcean VPC Support

Last year DigitalOcean replaced their Private Network feature with a much better VPC offering.


A VPC (or Virtual Private Cloud) allows you to privately network your servers together so that they can communicate via a local network.


By default, DigitalOcean has already created a VPC for some of their available regions. Forge will now allow you to select an existing VPC or create a new one.


Selecting a DigitalOcean VPC.

Selecting a DigitalOcean VPC.


Better Deployment Failure Email Notifications

Being notified of failed deployments is critical to ensuring that your changes actually deployed.


You can now manually set who should be notified of failed deployments. Previously, only the site owner and circle members would be notified.


LetsEncrypt (SSL) Improvements

Finally, we've made several stability improvements to the way LetsEncrypt certificates are issued, and have also added the ability to select a Public Key Algorithm.


While most of our customers are already using modern ECDSA-based SSL certificates on their websites, this change means that those who need an (older, but still secure) RSA-based SSL certificate, can now choose to do so.


We hope that these enhancements and features provide you with all the tools you need for easier server management.


If you don’t have a Forge account, now is a great time to sign up! Forge allows you to painlessly create and manage PHP servers which include MySQL, Redis, Memcached, database backups, and everything else you need to run robust, modern Laravel applications.

Popular posts from this blog

Laravel8 in Serializes Models trait | laravelnote

This article was originally posted, with additional formatting, on my personal blog at laravel serializes model Background  When dispatching an object onto the queue, behind the scenes Laravel is recursively serializing the object and all of its properties into a string representation that is then written to the queue. There it awaits a queue worker to retrieve it from the queue and unserialize it back into a PHP object (Phew!). Problem When complicated objects are serialized, their string representations can be atrociously long, taking up unnecessary resources both on the queue and application servers. Solution Because of this, Laravel offers a trait called SerializesModels which, when added to an object, finds any properties of type Model or Eloquent\Collection during serialization and replaces them with a plain-old-PHP-object (POPO) known as a ModelIdentifier. These identifier objects represent the original properties Model type and ID, or IDs in the case of an Eloquent\Collection,

Laravel Parallel Testing Is Now Available in laravel8 | Laravelnote

 Parallel Testing | Laravelnote As such we know Laravel and PHP Unit execute your tests sequentially within a single process.  As such laravel check the single process doesn’t use multiple cores so that therefore, your test execution is seriously bottlenecked! we glad to say that Parallel Testing is now available in Laravel. You can use this Laravel version8.25 you may also use to laravel8 built-in test Artisan command to run your cmd to tests simultaneously across multiple processes to use significantly reduce the time required for to run the entire test suite. It is about sure that in laravel8 new on top of Paratest Laravel automatically use to handles creating and migrating a test for database for each parallel process. In The  Laravel8 for testing purpose goodies - such as Storage::fake - are ready for used in Parallel too. Laravel Provide Each all individual laravel8 version use test suite will receive a varying benefits from parallel testing. In The Laravel Tests are execution wa

What is HTTP client in laravel8 by laravenote 2021 | Laravelnote

Laravel provides an expressive, minimal API around the Guzzle HTTP client, allowing you to quickly make outgoing HTTP requests to communicate with other web applications. Laravel's wrapper around Guzzle is focused on its most common use cases and a wonderful developer experience. Before getting started, you should ensure that you have installed the Guzzle package as a dependency of your application. By default, Laravel automatically includes this dependency. However, if you have previously removed the package, you may install it again via Composer: composer require guzzlehttp/guzzle Making Requests To make requests, you may use the get, post, put, patch, and delete methods provided by the Http facade. First, let's examine how to make a basic GET request to another URL: use Illuminate\Support\Facades\Http; $response = Http::get('http://example.com'); The get method returns an instance of Illuminate\Http\Client\Response, which provides a variety of methods that may be use