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

Product

Product May 5, 2020

Forge: Composer Update Times

At the beginning of April, we deployed a change to all new and existing Forge servers to randomize the `composer self-update` cron task. Previously, all Forge servers would attempt to update Composer at midnight which was unintentionally DDoS Composer's servers.

James Brooks

Product April 16, 2020

Forge: Metric Monitoring

Today we are launching an exciting new feature for [Laravel Forge](https://forge.laravel.com/): metric monitoring! Laravel team member James Brooks has been working hard on this feature for two months. This feature allows you to monitor your server's CPU load, RAM, and disk space and receive an email alerting you when any of these metrics cross a configured threshold that you specify! ![](https://laravel-blog-assets.s3.amazonaws.com/OgvYIDRf4llHwirtfnCMveQ0bDPLf2ALEPPXsqfl.png)You can read more about this feature in the [Forge documentation](https://forge.laravel.com/docs/1.0/servers/monitoring.html). During its initial launch period, we are only offering this feature to our Business plan customers. It is possible we will extend this feature to other plans in the future. 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 April 10, 2020

Vapor: HTTP APIs / API Gateway 2.0

When you launch an application on Laravel Vapor, we use AWS API Gateway to point web traffic to the AWS Lambda function that is powering your application. Normally, this is all magic that happens behind the scenes when using Vapor. A few months ago, Amazon released API Gateway 2.0 (HTTP APIs) with significantly reduced pricing. **So, today we are thrilled to announce that Vapor now supports HTTP APIs for applications running on Laravel Vapor. Applications running on API Gateway 2.0 can expect up to a 70% cost reduction and 60% faster request routing.** API Gateway 1.0 charged $3.50 per million requests to your application. When using API Gateway 2.0, you will only be charged $1.00 per million requests. To use the new HTTP APIs, you must define a gateway-version for an environment within your `vapor.yml` file: ``` gateway-version: 2 ``` After adding this to your configuration file and deploying project, Vapor will automatically migrate the environment to API Gateway 2.0. You can read more about HTTP APIs on the [AWS Compute Blog](https://aws.amazon.com/fr/blogs/compute/building-better-apis-http-apis-now-generally-available/).

Mohamed Said

Product April 7, 2020

Cashier v11

We're very excited to announce the immediate availability of Cashier v11. This release of Cashier introduces support for [Multiplan Subscriptions](https://laravel.com/docs/7.x/billing#multiplan-subscriptions) as well as Stripe's new [Tax Rates](https://laravel.com/docs/7.x/billing#subscription-taxes) feature. ### Multiplan Subscriptions Multiplan subscriptions allow you to assign multiple billing plans to a single subscription. For example, imagine you are building a customer service "helpdesk" application that has a base subscription of $10 per month, but offers a live chat add-on plan for an additional $15 per month: ``` $user = User::find(1); $user->subscription('default')->addPlan('chat-plan'); ``` Now the customer will have two plans on their default subscription. The example above will add the new plan and the customer will be billed for it on their next billing cycle. If you would like to bill the customer immediately you may use the `addPlanAndInvoice` method: ``` $user->subscription('default')->addPlanAndInvoice('chat-plan'); ``` You may remove plans from subscriptions using the `removePlan` method: ``` $user->subscription('default')->removePlan('chat-plan'); ``` If you would like to update quantities on individual subscription plans, you may do so using the existing quantity methods and passing the name of the plan as an additional argument to the method: ``` $user = User::find(1); $user->subscription('default') ->incrementQuantity(5, 'chat-plan'); $user->subscription('default') ->decrementQuantity(3, 'chat-plan'); $user->subscription('default') ->updateQuantity(10, 'chat-plan'); ``` ### Tax Rates To specify the tax rates a user pays on a subscription, implement the `taxRates` method on your billable model, and return an array with the Tax Rate IDs. You can define these tax rates in your Stripe dashboard: ``` public function taxRates() {   return ['tax-rate-id']; } ``` The `taxRates` method enables you to apply a tax rate on a model-by-model basis, which may be helpful for a user base that spans multiple countries and tax rates. If you're working with multiplan subscriptions you can define different tax rates for each plan by implementing a `planTaxRates` method on your billable model: ``` public function planTaxRates() {   return [     'plan-id' => ['tax-rate-id'],   ]; } ``` For more thorough information and examples of using these new features, please consult [the Cashier upgrade guide](https://github.com/laravel/cashier/blob/11.x/UPGRADE.md) as well as [the Cashier documentation](https://laravel.com/docs/7.x/billing). We hope you enjoy this release and use it build amazing applications!

Dries Vints

Product March 20, 2020

Airlock Renamed To Sanctum

Due to a trademark dispute regarding the name "Airlock", we have renamed Laravel Airlock to Laravel Sanctum ([https://github.com/laravel/sanctum](https://github.com/laravel/sanctum)) and have tagged its initial release. You may install Sanctum using `composer require laravel/sanctum`. All APIs and configuration options remain the same; however, all references to "Airlock" or "airlock" should be changed to "Sanctum" and "sanctum", respectively. The Laravel documentation has been updated to reflect these changes: [https://laravel.com/docs/sanctum](https://laravel.com/docs/sanctum)

Taylor Otwell

Product March 3, 2020

Forge: Revoking LetsEncrypt Certificates

On February 29 2020, Let's Encrypt discovered a bug affecting millions of issued SSL certificates. These certificates will be revoked on March 4th. You can read the announcement on [LetsEncrypt website](https://letsencrypt.org/caaproblem/). In order to ensure your sites certificates remain in place, we recommend you check your site using [this service](https://unboundtest.com/caaproblem.html) and issue a new certificate from the Forge dashboard if your certificate was affected.

Mohamed Said

Product February 26, 2020

Vapor: Custom Lambda Events

Today we released `laravel/vapor-core` version `v2.5.1` with the ability to handle custom Lambda events. To get started, implement a `vapor:handle` artisan command in your application with the following signature: `vapor:handle {payload}` To extract the event payload from the `payload` argument, you should `base64_decode` and `json_decode` the string: ``` $payload = json_decode(   base64_decode($this->argument('payload')) ); ``` Custom Lambda events allow to handle events from other AWS services, such as triggering your application each time an image is uploaded to an S3 bucket.

Mohamed Said

Product February 12, 2020

Forge: Database Backups Now Supported

Yesterday we launched an exciting new feature for [Laravel Forge](https://forge.laravel.com): database backups! Laravel team member James Brooks has been working hard on this feature for several weeks. Forge now allows you to configure hourly, daily, or weekly backups for your MySQL or Postgres databases on your Forge servers. The backups are stored on your own S3 or DigitalOcean Spaces account and you may download the archives at any time. In addition, you may configure how many backups should be kept in storage before being pruned. ![](https://laravel-blog-assets.s3.amazonaws.com/vVwjJqZdjG6hXzWzCRhojFxRfXZkve0wL7gKrqRu.png)During its initial launch period, we are only offering this feature to our Business plan customers. It is possible we will extend this feature to other plans in the future.

Taylor Otwell

Product February 11, 2020

Vapor: Job Timeouts

On February 10th, we've released v2.4.1 of [laravel/vapor-core](https://github.com/laravel/vapor-core). This release includes an important fix for long running queued jobs. Before this fix, long running jobs were left to be terminated by Lambda after reaching the timeout set by `queue-timeout` in your `vapor.yml` file. This causes the PHP process to terminate right away not giving a chance for the queue manager to increment the attempts on the job. The result was timed out jobs retrying indefinitely until the message retention period passes and SQS deletes them. That means they were never reported as failed. In the `2.4.1` release, we use the `pcntl` PHP extension to gracefully terminate the job before it's killed by Lambda. We recommend that you upgrade to the latest version of `vapor-core` and deploy your projects to use the new timeout mechanism.

Mohamed Said

Showing 141 - 150 of 167 results

Stay connected with the latest Laravel news