Blog /

Product

Product May 20, 2020

Forge: Removing "beanstalkd"

Beginning today, Forge will no longer install [beanstalkd](https://beanstalkd.github.io/) on new servers. We have noted an increase in provisioning failures due to the beanstalkd service failing. In addition, beanstalkd usage among Laravel users has declined sharply with the introduction of more robust tools like Laravel Horizon. However, if you would like to manually install beanstalkd, you may still install it manually using the following Bash script: ``` apt-get install -y --force-yes beanstalkd sed -i "s/BEANSTALKD_LISTEN_ADDR.*/BEANSTALKD_LISTEN_ADDR=0.0.0.0/" /etc/default/beanstalkd if grep START= /etc/default/beanstalkd; then     sed -i "s/#START=yes/START=yes/" /etc/default/beanstalkd else     echo "START=yes" >> /etc/default/beanstalkd fi service beanstalkd start sleep 5 service beanstalkd restart systemctl enable beanstalkd ```

James Brooks

Product May 6, 2020

Forge: Telegram Notifications

Forge can now send deployment notifications to your [Telegram](https://telegram.com) group chat. You can configure Telegram within the Notifications tab of your site. Check the documentation [here](< https://forge.laravel.com/docs/1.0/sites/notifications.html#deployment-notifications>). Like with Slack notifications, Forge will notify you on the success and failure of a deployment. We’ll be looking to add support for other channels in the future.

James Brooks

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

Showing 141 - 150 of 169 results

Stay connected with the latest Laravel news