Blog Laravel, serverless, in Europe.

Tutorials and notes from building Brewless: how to run a Laravel app serverless, on European clouds, in accounts you own.

  1. How to host a Laravel app EU-sovereign

    A practical guide to running Laravel on European clouds with European owners, in accounts you own, from the first deploy to the services around your app.

  2. Redis for Laravel on a private network, over TLS

    How a serverless Laravel app gets a Scaleway Managed Database for Redis on a Private Network, over TLS, and what to keep in it on serverless containers.

  3. An EU-sovereignty checklist for a Laravel SaaS

    One page to hand to a client or DPO, with every part of a Laravel SaaS that holds or sees data, what to check for each and how to note the exceptions.

  4. A database per tenant for Laravel on serverless

    How a multi-tenant Laravel app gets a Serverless SQL Database per tenant at Scaleway, by asking Brewless with a signed request instead of CREATE DATABASE.

  5. Laravel migrations as a release step

    Brewless runs Laravel migrations before a release goes live, and a failing one keeps the old release serving. How to write migrations that are safe for that.

  6. Putting bunny.net in front of a Laravel app

    How to run Laravel behind bunny.net, with the pull zone, Bunny DNS, TLS, Shield, what to cache and what not, and the real visitor IP.

  7. Laravel uploads on Scaleway Object Storage

    How a serverless Laravel app keeps uploads on Scaleway Object Storage with the s3 disk, a private bucket, temporary URLs and a bucket for backups.

  8. Laravel's scheduler without a cron server

    How Brewless runs Laravel's task scheduler on serverless containers. The schedule is read on deploy, and the worker is called only at the moments a task is due.

  9. Laravel queues without a long-running worker

    How Brewless runs Laravel queues on serverless containers. With Scaleway Queues a job reaches the worker the moment it is queued, with its tries and backoff.

  10. Laravel on FrankenPHP: why classic mode, not Octane

    Brewless runs Laravel on FrankenPHP in classic mode and refuses worker mode and Octane. State that outlives a request is a risk, and serverless gains nothing.