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. Why your Laravel container never scales to zero

    A serverless Laravel container sleeps only after 15 quiet minutes. Why crawlers and session cookies keep it awake, and how the edge cache lets it rest.

  2. Brewless is open

    Anyone with a work address can now register for Brewless and deploy a Laravel app to their own Scaleway account, free for one application.

  3. Send Laravel mail with Lettermint, set up for you

    Brewless makes the project, the sending token, the domain and the DNS records for a Laravel app that sends through Lettermint, in your own Lettermint team.

  4. Move your S3 files from AWS to Brewless

    Copy a Laravel app's uploads from an S3 bucket at AWS, or any S3 service, into its Scaleway bucket with brewless storage:import. Nothing is removed.

  5. How pg_dump broke a Laravel job on Serverless SQL

    A nightly backup job failed with 'relation does not exist' on a table that was there. The cause: pg_dump and a connection pooler sharing session settings.

  6. 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.

  7. 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.

  8. 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.

  9. 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.

  10. 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.

  11. 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.

  12. 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.

  13. 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.

  14. 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.

  15. 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.