Manage your servers with freedom and control. Learn more about the new Forge
Blog /

Product

Product September 18, 2020

Vapor: Customize Default Role

Starting today, you can now disable Vapor updates on the laravel-vapor-role role and manage this role yourself in AWS Console. To disable updates on the laravel-vapor-role role, just head over to...

Nuno Maduro

Product September 17, 2020

Envoyer: Extended Deployment Timeouts and New Notification Channels

We're excited to announce a few changes we've just shipped to [Envoyer](https://envoyer.io). Extended Deployment Timeouts ----------------------------- Starting today, all customers on the **Premium Plan** have a 15 minute timeout on deployments. Customers on the Basic and Plus plans remain limited to 10 minutes. We hope that this extended timeout helps you get the most out of your deployments. New Notification Channels ------------------------- Recently we deployed new notification channels to [Forge](https://forge.laravel.com) and we've now brought them to Envoyer. You can now pick from one of the following channels: - Slack - Microsoft Teams - Discord - Email We'll be adding more channels in the future! ![](https://laravel-blog-assets.s3.amazonaws.com/rB2UwCNiK2fnc7KGIG4iK5pE4S3ps3FsmqG8V0EP.png)

James Brooks

Product September 14, 2020

Jetstream: Customization + Password Confirmation

As many of you know, we released Laravel 8.x and [Laravel Jetstream](https://jetstream.laravel.com) last week. Thanks to very valuable feedback from the community, I am thrilled to give you an overview of some new customization options and features in Jetstream that I think you will find very valuable. Let's dive in! ### Authentication View Customization Sometimes you may wish to customize how a particular authentication view is rendered. All of the authentication view's rendering logic may be customized using the appropriate methods available via the `Laravel\Fortify\Fortify` class. Typically, you should call this method from the `boot` method of your `JetstreamServiceProvider`: ```php use Laravel\Fortify\Fortify; Fortify::loginView(function () { return view('auth.login'); }); Fortify::registerView(function () { return view('auth.register'); }); ``` ### Customizing User Authentication Sometimes, you may wish to have full customization over how login credentials are authenticated and users are retrieved. Thankfully, Jetstream allows you to easily accomplish this using the `Fortify::authenticateUsing` method. This method accepts a Closure which that receives the incoming HTTP request. The Closure is responsible for validating the login credentials attached to the request and returning the associated user instance. If the credentials are invalid or no user can be found, `null` or `false` should be returned by the Closure. Typically, this method should be called from the `boot` method of your `JetstreamServiceProvider`: ```php use App\Models\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use Laravel\Fortify\Fortify; Fortify::authenticateUsing(function (Request $request) { $user = User::where('email', $request->email)->first(); if ($user && Hash::check($request->password, $user->password)) { return $user; } }) ``` ### Password Confirmation While building your application, you may occasionally have actions that should require the user to confirm their password before the action is performed. Thankfully, Jetstream has built-in functionality to make this a breeze. We'll demo the Livewire code for this feature below, but be sure to check out [the full documentation](https://jetstream.laravel.com/1.x/features/security.html#inertia) for the Inertia example! If you are using the Livewire stack, your Livewire component that contains the password confirmed action should use the `Laravel\Jetstream\ConfirmsPasswords` trait. Next, you should wrap the action you wish to confirm using the `confirms-password` Blade component. `confirms-password` wrapper should contain `wire:then` directive that specifies which Livewire action should be run once the user's password has been confirmed. Once the user has confirmed their password, they will not be required to re-enter their password for 15 minutes: ```html {{ __('Enable') }} ``` Next, within your Livewire action that is being confirmed, you should call the `ensurePasswordIsConfirmed` method. This should be done at the very beginning of the relevant action method: ```php /** * Enable administration mode for user. * * @return void */ public function enableAdminMode() { $this->ensurePasswordIsConfirmed(); // ... } ``` ### Custom Rendered Inertia Authentication Pages Some of Jetstream's Inertia pages, such as `Teams/Show` and `Profile/Show` are rendered from within Jetstream itself. However, you may need to pass additional data to these pages while building your application. Therefore, Jetstream allows you to customize the data / props passed to these pages using the `Jetstream::inertia()->renderUsing` method. This method accepts the name of the page you wish to customize and a Closure. The Closure will receive the incoming HTTP request and an array of the default data that would typically be sent to the page. You are welcome to customize or add new array elements to the data as necessary. Typically, you should call this method from within the `boot` method of your `JetstreamServiceProvider`: ```php use Illuminate\Http\Request; use Laravel\Jetstream\Jetstream; Jetstream::inertia()->renderUsing( 'Profile/Show', function (Request $request, array $data) { return array_merge($data, [ // Custom data... ]); } ); ```

Taylor Otwell

Product September 7, 2020

Forge: TLS v1.3, Redis Passwords and more!

Over the last few weeks, we've been working on many new features and enhancements in Forge. I often [tweet](https://twitter.com/jbrooksuk) about these changes since they don’t warrant a full-blown blog post by themselves, but that means that they're also missed by a lot of our users! So, let's take a look at some of the recent additions to Forge and what they can do for you. TLS v1.3 Enabled By Default --------------------------- Starting today, TLS v1.3 is enabled on all newly created sites running on servers provisioned with Ubuntu 20.04. Older servers will continue to use v1.1 and v1.2, but not enable v1.3. You can learn more about TLS v1.3 and what it means [here](https://www.cloudflare.com/learning-resources/tls-1-3/). Recipes: One-Click Select All Servers ------------------------------------- You can now select all of your active servers with one-click when running a recipe. Previously, you'd need to individually select each server which could be annoying when you have tens of servers that you need to run the recipe on. Retroactively Toggle Wildcard Sub-Domains ----------------------------------------- You can now enable or disable wildcard sub-domains after you've created a site. Until now, you would need to delete the site and re-create it with the right option selected. This is particularly useful for those times when you forget to select the right option. Redis Passwords --------------- For added security, Forge will never publicly open Redis' 6379 port, but if you need to do so, you can now secure your installation with a password. > Warning: Redis stores the password in plaintext. Firewall Rule Types ------------------- Firewalls do more than just blocking requests, they can also selectively allow requests. You can now select whether to allow or deny requests in your firewall rules. ![](https://laravel-blog-assets.s3.amazonaws.com/Z02U23uSCUzpjXLtJgyW20mFAripUWkLqpIm7jSP.png)A good example of this would be to allow another server to connect to an existing Redis server. You can create an "Allow" rule that only accepts requests to **6379** from a known IP address. When combined with the Redis password from above, you can create flexible yet secure installations. Password Generator ------------------ Choosing a password is hard at the best of times, choosing a secure one is harder still — that's why we use a password manager, right? Forge now displays a password generator button next to any password field. It'll quickly generate a random password for you to use. ![](https://laravel-blog-assets.s3.amazonaws.com/h1xaPHMOv6LtJbHB9jvJXTYxcng2AczjWIcaQWsI.png)Editable Database Backup Configurations --------------------------------------- This was one of the most requested features since we first introduced [Database Backups](https://blog.laravel.com/forge-database-backups-now-supported) back in February! You're now able to both view and edit an existing backup configuration within the Forge dashboard. ![](https://laravel-blog-assets.s3.amazonaws.com/5NJziMpeJ3B08hD14TEd9kMku6RRn8NQHS9YlDaz.png)Backup Multiple Databases At Once --------------------------------- Alongside editing backups, we also received many requests to backup multiple databases at once. The ability to do so was actually part of the initial feature, but we didn't have a good way of restoring individual databases — which we do now! You can now select multiple databases when configuring your database backup. If you don’t have a [Forge](https://forge.laravel.com) 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.

James Brooks

Product September 3, 2020

Vapor: UI Dashboard Package

Today on Vapor, we're proud to introduce you to our new open-source package: Vapor UI. In short, this package provides a beautiful dashboard through your application that allows you to monitor your application's logs...

Nuno Maduro

Product August 12, 2020

Forge: phpMyAdmin One Click Install

Beginning today, phpMyAdmin is now available as a "one click" installation option on Laravel Forge! ![](https://laravel-blog-assets.s3.amazonaws.com/keKwe2lWseOUZozsiyEcow7fe1eBKAR0XPUVSwfk.png)When installing phpMyAdmin, you will be asked to create an additional database and database user if you have not already done so. If you don’t have a [Forge](https://forge.laravel.com) 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.

Taylor Otwell

Product August 12, 2020

Forge: New Load Balancer Features

Beginning today, you may now customize the "weight" of your load balancer servers, indicating that some servers should serve more traffic than others. In addition, you may now specify servers as "backup" servers. These servers will be used by the load balancer if all of the other servers are down. Finally, you may now pause traffic to a specific server being managed by the balancer. While paused, the selected server will no longer serve incoming traffic. You may unpause the server at any time. ![](https://laravel-blog-assets.s3.amazonaws.com/WdsT1skGD7MT1zOMzxjQ5JDE0oNFeTYb8C0HyYVl.png)Special thanks to Laravel team member [James Brooks](https://twitter.com/jbrooksuk) for his work on these features! If you don’t have a [Forge](https://forge.laravel.com) 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.

Taylor Otwell

Product August 6, 2020

Forge: Load Balancer Methods

Load balancers in Forge are used to distribute web traffic amongst two or more servers and are often used for websites which receive high volumes of traffic. Starting today, you may now choose one of three load balancing methods: - Round Robin (previously the default) - Least Connections - IP Hash ![](https://laravel-blog-assets.s3.amazonaws.com/jiYmzTX1QYjjx5YAHEmBE3OvTadvFxhBlkmiguoM.png)Your existing Load Balancers can be updated to use the method best suited to your project. Load Balancer documentation can be found [here](https://forge.laravel.com/docs/1.0/servers/load-balancing.html).

James Brooks

Showing 121 - 130 of 167 results

Stay connected with the latest Laravel news