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.
Tutorials and notes from building Brewless: how to run a Laravel app serverless, on European clouds, in accounts you own.
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.
What Scaleway Transactional Email does, how a Laravel app sends through it, and how its costs and workings differ from Lettermint and Amazon SES.
What lock-in means for Laravel hosting, why owning your cloud accounts matters, and what keeps running when you export, detach and leave Brewless.
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.
Who is controller, processor and sub-processor when a Laravel app runs on Scaleway and bunny.net through Brewless, and which data processing agreements to sign.
A rollback brings back your Laravel code and variables, not your database. What brewless rollback undoes, and how to keep migrations safe to roll back.
The cost model of a serverless Laravel app on Scaleway and bunny.net, what drives each line of the bill, and how to estimate it from your own usage.
Deploy a Laravel app from GitHub Actions or GitLab CI with a Brewless pipeline token in BREWLESS_API_TOKEN, after your tests pass.
European-owned options for mail, payments, error tracking, logs, analytics, search, uptime, SMS and fonts in a Laravel app, and what to check before you switch.
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.
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.
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.
Keep Laravel's production secrets in Scaleway Secret Manager instead of a .env file on a server, with revisions, env:pull and env:push.
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.
Scaleway has a PostgreSQL database that sleeps and one that is always on. What wakes the first, how a Laravel app connects to each, and how to choose.
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.
What happens when a scaled-to-zero Laravel container gets its first request, what makes that start longer, and when web.min is worth paying for.
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.
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.
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.
What the US CLOUD Act of 2018 says, why an EU region of an American cloud is not sovereign, and what it means for Laravel teams and their clients.
How to move a Laravel app from Vapor to Scaleway and bunny.net, from vapor.yml to brewless.yml, with your variables, database, files and DNS.