Laravel Cloud launched in 2025 as the Laravel team's own first-party hosting platform — auto-scaling, git-push deploys, managed Postgres, Octane-ready, Vapor-style serverless. It's genuinely polished, and for many US-based teams it's the fastest way to get a Laravel app into production.
But if you're running a Laravel application for a European customer base — or if your data is covered by GDPR, HDS, Germany's BDSG, or any of the sector-specific European frameworks — Laravel Cloud isn't automatically the right answer. The platform is hosted on AWS, primarily in us-east-1, which reopens the entire Schrems II conversation about EU-to-US data transfers.
This post walks through what Laravel Cloud actually gives you, why a lot of European Laravel shops are looking for alternatives in 2026, and the seven realistic paths you can take — including a concrete €38/mo production stack running entirely in Falkenstein, Germany.
We already covered the hands-on mechanics of deploying Laravel in two sibling posts — Laravel Deployment on a VPS and Zero-Downtime Laravel Deploys. This one is the higher-level decision guide: where should your Laravel app live, and how do the options compare on pricing, residency, and features.
What Laravel Cloud Actually Offers
Before comparing alternatives, let's be honest about what Laravel Cloud does well. Understanding the baseline matters — you're not replacing it because it's bad. You're replacing it because some of its defaults don't match a European compliance posture.
- First-party Laravel hosting. Built by the Laravel team (Taylor Otwell and the core contributors). Framework support is the best you'll find anywhere.
- Git-push deploys. Push to
main, Cloud builds a container, runs your migrations, and flips traffic. Zero-downtime by default. - Auto-scaling. Horizontal scale based on request volume and queue depth. Scale-to-zero for preview environments.
- Managed Postgres. Serverless Postgres with branching for preview environments — similar in spirit to Neon.
- First-class Octane. FrankenPHP and Swoole workers with warm state; ship Octane without hand-wiring the runtime.
- Horizon, Reverb, Scheduler, Workers. The full supporting cast (queues, WebSockets, cron) runs without extra servers.
- Vapor DNA. A lot of Vapor's serverless patterns were ported into Cloud — SQS-style queues, S3-backed filesystem, edge HTTP.
The developer experience is genuinely delightful. The issue is strictly where the code runs and what it costs — not how it runs.
Why European Teams Look for Alternatives
1. Schrems II and EU-to-US data transfers
Laravel Cloud currently runs on AWS, with us-east-1 (Virginia) as the default region. Even when EU regions are available, you're still operating inside a US-headquartered parent stack (AWS / Amazon). Since the Schrems II ruling (CJEU, 2020) and the introduction of the EU-US Data Privacy Framework (2023), transfers of personal data to US-controlled cloud providers require a case-by-case transfer impact assessment (TIA) plus Standard Contractual Clauses (SCCs).
That doesn't make Laravel Cloud illegal in the EU — it makes it paperwork-heavy. If your customers are EU public sector, healthcare, fintech, or simply GDPR-conscious, running on a European-owned, European-hosted provider is the cleaner answer.
2. Pricing curves
Laravel Cloud starts free and scales by compute-seconds, requests, queue executions, and Postgres storage. For small side projects that's great. For a production SaaS sitting on top of a busy Octane worker, the costs climb quickly once you add Horizon workers, Reverb WebSockets, a real database, and egress traffic. Teams regularly report €80-€250/mo bills for what would be a single €25 VPS elsewhere.
3. Vendor lock-in
Laravel Cloud uses proprietary deployment primitives on top of AWS. Moving away from Vapor 2 years ago was painful because filesystem, queues, and scheduling all looked AWS-native. The same risk applies to Cloud: the more you lean on its managed Postgres branches, scheduler, and queue primitives, the harder it is to leave.
4. Data residency and certification
Many European enterprises have hard procurement rules: data must live in Germany, France, or "EU only" regions, and the underlying provider must be a European entity. Laravel Cloud — a US LLC on top of AWS — does not satisfy those rules without additional DPAs and SCCs. A German GmbH or Romanian SRL running in Falkenstein does.
5. Predictable monthly costs
Fixed-price VPS pricing is still the easiest line item to defend in a budget review. €12.49 means €12.49, every month, forever — no surprise auto-scaling bill after a Reddit hug-of-death.
The Seven Realistic Alternatives
There is no single "best" Laravel Cloud replacement — the right answer depends on team size, ops comfort, and how much of the managed experience you want to keep. Here are the seven paths European Laravel teams are actually taking in 2026.
Option 1: Laravel Forge + DanubeData VPS (our recommended stack)
Laravel Forge is the Laravel team's server-management SaaS. It provisions Nginx, PHP 8.4, MySQL/Postgres, Redis, queues, schedulers, certificates, and zero-downtime deploys on your server. You bring the VPS, Forge handles everything else.
Pair Forge (~$19/mo) with a DanubeData DD Small VPS (€12.49/mo) in Falkenstein, and you have a production-ready, GDPR-clean Laravel host for under €30/mo — with Octane support, git deploys, auto-SSL, and no US touchpoint.
- Pros: Forge is built by Laravel, so Octane/Horizon/Reverb/Scheduler are first-class. Full IP ownership. EU residency. Predictable cost.
- Cons: You own kernel patching and backups (Forge automates most of it, but you're still the operator). No auto-scaling horizontally — you scale by upgrading the VPS or adding workers manually.
Option 2: Ploi.io + DanubeData VPS
Ploi.io is a Dutch-built Forge competitor (~€10/mo) with a strong European user base and good Laravel affinity. Feature parity with Forge is essentially complete for Laravel workloads — git deploys, queues, schedulers, SSL, database management.
- Pros: Cheaper than Forge. European company. Nice UI. Multi-server support in the base plan.
- Cons: Not built by the Laravel team, so Octane/Reverb support sometimes lags Forge by a release.
Option 3: RunCloud + DanubeData VPS
RunCloud is a more general PHP server-management panel (not Laravel-specific). Good for teams running WordPress + Laravel + legacy PHP side-by-side on the same VPS.
- Pros: Great multi-tenant PHP hosting. Containerized web apps. Cheap.
- Cons: Less Laravel-aware — no one-click Octane, Reverb, Horizon provisioning. Better for agencies than Laravel-first SaaS.
Option 4: SpinupWP + DanubeData VPS
SpinupWP is optimized for WordPress but supports generic PHP/Laravel sites. Useful if your Laravel app lives next to a WordPress marketing site on the same box.
- Pros: Excellent caching defaults, built-in backups, monitoring.
- Cons: Laravel is a second-class citizen. Would not be the default choice for a Laravel-only shop.
Option 5: DanubeData Managed Apps + Serverless Containers
DanubeData's own managed platform gives you two flavors of Laravel-compatible hosting without touching a VPS:
- Managed MySQL/MariaDB/PostgreSQL from €19.99/mo — replica-ready, daily snapshots, point-in-time recovery.
- Managed Redis/Valkey from €4.99/mo — for sessions, cache, Horizon queues.
- Serverless Containers (Knative, scale-to-zero) from €5/mo — deploy a Docker image of your Laravel Octane app, and it scales from zero to N instances based on traffic.
This is the closest "Laravel Cloud-shaped" experience you'll get fully inside the EU: push a container, get a scale-to-zero endpoint, bolt on managed Postgres and Redis, done.
- Pros: Zero server management. Scale-to-zero for preview/staging environments. GDPR-clean by default. No vendor lock-in — it's standard Docker + Knative.
- Cons: You need to produce a Docker image (Forge won't do that for you). Octane on cold-start takes a few hundred milliseconds to boot.
Option 6: Fly.io
Fly.io has excellent regional coverage including fra (Frankfurt) and ams (Amsterdam), strong Laravel support via their Dockerfile patterns, and a pleasant CLI. It's a reasonable EU-friendly alternative to Cloud for teams happy with Docker workflows.
- Pros: Real global anycast. Good Octane support. Transparent pricing.
- Cons: US-headquartered (Wilmington, DE). Pricing is usage-based and can surprise you. EU residency possible but not the default.
Option 7: Self-managed DanubeData VPS with Octane
Skip the control plane entirely. SSH into a €12.49 DD Small, install PHP 8.4 + FrankenPHP + MySQL + Redis, point a domain at it, run php artisan octane:start --server=frankenphp. You own every layer.
- Pros: Cheapest possible stack. Complete control. No SaaS dependencies.
- Cons: You handle provisioning, SSL, backups, log rotation, security patching, and zero-downtime deploys yourself. See the Laravel Deployment guide if you want the step-by-step.
Head-to-Head Comparison
| Feature | Laravel Cloud | Forge + DanubeData VPS | DanubeData Managed / Serverless | Fly.io | Laravel Vapor |
|---|---|---|---|---|---|
| Starting price | ~$20/mo hobby | €12.49 VPS + $19 Forge | €5-€30/mo | ~$5-$30/mo | $39/mo + AWS usage |
| EU data residency | AWS us-east default | Falkenstein, DE | Falkenstein, DE | EU regions available | AWS EU regions |
| GDPR / Schrems II | US provider, needs SCCs | EU provider, clean | EU provider, clean | US provider w/ EU region | AWS, needs SCCs |
| Auto-scaling | Built-in | Vertical (upgrade VPS) | Knative scale-to-N | Built-in | Lambda-native |
| Scale-to-zero | Yes (preview envs) | No | Yes (Serverless Containers) | Yes | Yes (Lambda) |
| Laravel Octane | First-class | Supported (Swoole/FrankenPHP) | Supported (container) | Supported | Limited (Lambda cold starts) |
| Queue workers (Horizon) | Managed | Forge daemon | Container workload | Fly Machines | SQS + Lambda |
| Zero-downtime deploys | Built-in | Envoy / Forge atomic | Knative rolling | Blue/green | Lambda aliases |
| Vendor lock-in | High (proprietary stack) | Low (portable VPS) | Low (Docker/Knative) | Medium (Fly-specific) | High (AWS-native) |
| Ops effort | Minimal | Low (Forge handles it) | Minimal | Low-medium | Low-medium |
Our Recommendation: Forge + DanubeData for €38/mo
If you want the shortest possible path from "Laravel Cloud" to "production-ready, GDPR-clean Laravel in Germany," this is the stack we recommend:
| Component | Provider | Monthly cost | Notes |
|---|---|---|---|
| App server (Nginx + PHP 8.4 + Octane) | DanubeData DD Small VPS (4 vCPU / 8 GB) | €12.49 | Handles most Laravel Octane workloads comfortably |
| Managed MySQL 8.0 | DanubeData Managed DB (Small) | €19.99 | Daily snapshots, replica-ready, TLS |
| Managed Redis (sessions + Horizon) | DanubeData Managed Redis (Starter) | €4.99 | Persistent, TLS, metrics |
| Server management panel | Laravel Forge Hobby | ~$19 (~€18) | Optional — skip it if you want to go full self-managed |
| Bandwidth | Included | €0 | 20 TB/mo included on DanubeData |
| Total (with Forge) | ~€55/mo | Everything inclusive, Germany-hosted | |
| Total (no Forge) | ~€38/mo | If you're comfortable managing the box yourself |
For heavier workloads, swap the DD Small for a DD Medium (8 vCPU / 16 GB) at €24.99/mo and you can comfortably run Octane + Horizon + Reverb on the same box. Total stays under €55/mo even with the bigger VPS, still Germany-hosted, still GDPR-clean.
Add S3 Object Storage (€3.99/mo) for user uploads, invoice PDFs, or anything that shouldn't sit on the VPS filesystem — it's fully S3-compatible, so the standard Laravel s3 filesystem driver works unchanged.
Migrating from Laravel Cloud to DanubeData
Most Laravel Cloud migrations take half a day. The surface area is small because Laravel itself is portable — the hard parts are usually the secondary concerns (filesystem, WebSockets, scheduled jobs).
Step 1: Export your environment
Laravel Cloud lets you download the active .env from the project settings. Pull it, then replace the database, Redis, and filesystem credentials with the new DanubeData endpoints.
# Old (Laravel Cloud)
DB_CONNECTION=pgsql
DB_HOST=xxx.cloud.laravel.com
FILESYSTEM_DISK=cloud
# New (DanubeData)
DB_CONNECTION=mysql
DB_HOST=db-abc123.mysql.managed.danubedata.ro
DB_PORT=3306
DB_SSL_ENABLED=true
REDIS_HOST=redis-xyz456.redis.managed.danubedata.ro
REDIS_PORT=6380
REDIS_CLIENT=phpredis
REDIS_SCHEME=tls
FILESYSTEM_DISK=s3
AWS_ACCESS_KEY_ID=your_danubedata_key
AWS_SECRET_ACCESS_KEY=your_danubedata_secret
AWS_DEFAULT_REGION=eu-central
AWS_BUCKET=dd-yourteam-prod
AWS_ENDPOINT=https://s3.danubedata.ro
AWS_USE_PATH_STYLE_ENDPOINT=false
Step 2: Dump and restore the database
Laravel Cloud's managed Postgres allows dumps via pg_dump from the connection string. If your target is MySQL on DanubeData, use the Laravel schema dumper to regenerate schema, then export your data as SQL via pg2mysql or similar.
# If staying on Postgres (Cloud → DanubeData Postgres)
pg_dump -h xxx.cloud.laravel.com -U your_user -d your_db
--clean --if-exists --no-owner --no-acl
-f laravel_cloud_dump.sql
# Restore into DanubeData managed Postgres
psql -h db-abc123.postgres.managed.danubedata.ro
-U app_user -d app_db
-f laravel_cloud_dump.sql
# If moving Postgres → MySQL, dump data only and re-run migrations
pg_dump -h xxx.cloud.laravel.com -U your_user -d your_db
--data-only --inserts -f data_only.sql
# Then on the new server:
php artisan migrate --force
# ...and load data via your preferred Postgres-to-MySQL converter
Step 3: Copy filesystem contents to DanubeData S3
Laravel Cloud's filesystem is S3-backed under the hood, so you can aws s3 sync straight into a DanubeData bucket:
# Sync from Laravel Cloud's S3 to DanubeData S3
aws s3 sync
s3://laravel-cloud-bucket
s3://dd-yourteam-prod
--source-region us-east-1
--endpoint-url https://s3.danubedata.ro
If you're using signed URLs, regenerate them after migration — the endpoint host changes, so old links will 404.
Step 4: Recreate queues and scheduler
Horizon's config file is part of your repo, so the queue runtime follows automatically. On the new VPS, Forge will provision a Supervisor daemon for the horizon process — or for a self-managed box, add this to /etc/supervisor/conf.d/horizon.conf:
[program:horizon]
process_name=%(program_name)s
command=php /var/www/app/artisan horizon
autostart=true
autorestart=true
user=forge
redirect_stderr=true
stdout_logfile=/var/log/horizon.log
stopwaitsecs=3600
The Laravel scheduler replaces Cloud's managed cron with a single crontab entry:
* * * * * cd /var/www/app && php artisan schedule:run >> /dev/null 2>&1
Step 5: Reverb / WebSockets
Laravel Cloud runs Reverb (the first-party WebSocket server) as a managed process. On a DanubeData VPS, run Reverb as a second Supervisor daemon on port 8080 and proxy it through Nginx:
# Nginx snippet
location /app {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
Alternatively, deploy Reverb as a separate DanubeData Serverless Container — Knative handles the WebSocket upgrade cleanly and you get scale-to-zero when nobody's connected.
Step 6: Deployment
Hook Forge up to your Git repo, paste in your deploy script, and Forge will run it on push:
cd /home/forge/your-app.com
git pull origin main
$FORGE_COMPOSER install --no-dev --optimize-autoloader --no-interaction
php artisan migrate --force
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan event:cache
# If using Octane, reload workers
php artisan octane:reload
# Restart Horizon so it picks up new code
php artisan horizon:terminate
For more zero-downtime detail (symlink atomic swaps, OPcache warmup, rolling FPM restarts) see our dedicated guide: Zero-Downtime Laravel Deploys.
Step 7: Cutover
Once the new stack is running and you've smoke-tested a sample of user flows, lower your DNS TTL to 60 seconds, flip the A record, and monitor Horizon dashboards + your error tracker for 24 hours. Keep the old Laravel Cloud environment warm for at least a week in case you need to roll back.
Running Laravel Octane on DanubeData
Octane is Laravel's persistent worker runtime — instead of booting the framework on every request, Octane keeps the application in memory using Swoole, FrankenPHP, or RoadRunner. The result is typically 5-10x more throughput per core versus traditional PHP-FPM.
On DanubeData there are three supported Octane topologies:
A. Octane on a VPS (most common)
Install FrankenPHP on a DD Small or DD Medium, run php artisan octane:start --server=frankenphp --host=0.0.0.0 --port=8000 as a systemd service, and proxy Nginx in front of it. Forge has a one-click Octane toggle that provisions this automatically.
B. Octane in a Serverless Container
Build a Docker image with FROM dunglas/frankenphp:php8.4 as the base, COPY your app, and push to DanubeData's container registry. The Knative platform will scale it from zero to N instances. Best for preview/staging environments where idle cost matters.
C. Hybrid (VPS + Serverless workers)
Keep the main HTTP workload on a VPS (always warm, low latency) and offload bursty background workers — image processing, PDF generation, heavy reports — to Serverless Containers that scale to zero when the queue is empty. This is often the sweet spot for growing SaaS products.
FAQ
How does the cost compare to Laravel Cloud for a typical SaaS?
For a production Laravel SaaS with ~100k requests/day, one Horizon worker process, a ~20 GB Postgres, and Reverb for real-time features, Laravel Cloud typically runs €80-€150/mo. The equivalent Forge + DanubeData DD Small + Managed MySQL + Managed Redis stack is ~€55/mo all-in (€38 without Forge), with 20 TB of included traffic on top.
Do I lose auto-scaling if I leave Laravel Cloud?
You lose seamless horizontal auto-scaling on a plain VPS — yes. But three alternatives preserve it: DanubeData Serverless Containers (Knative-based, scale-to-N), Fly.io, and vertical scaling (a DD Medium with Octane handles tens of thousands of concurrent users comfortably). Most European Laravel SaaS products never need horizontal scaling — they just need headroom.
Can I still use Laravel Octane?
Yes, on every option listed. Forge has a one-click FrankenPHP/Swoole installer. Serverless Containers run Octane natively in Docker. Fly.io has first-class Octane Dockerfiles. Self-managed setups run Octane as a systemd service. Nothing about leaving Laravel Cloud blocks Octane.
How do zero-downtime deploys work without Cloud?
Forge handles it out of the box using atomic symlink swaps — each deploy builds into a new directory, warms OPcache, then atomically flips the current symlink. Serverless Containers use Knative's rolling deployment. Self-managed setups can use Envoyer, Laravel Envoy, or Deployer. Full walkthrough: Zero-Downtime Laravel Deploys.
What about queue workers and Horizon?
Horizon runs as a standard PHP daemon — Forge provisions a Supervisor service that keeps php artisan horizon alive and restarts it on deploy. On Serverless Containers, run a separate workload with command: ["php", "artisan", "horizon"]. It reads from the same Redis instance, so scaling horizontally is just raising the replica count.
Is the DanubeData S3 bucket really drop-in compatible with Laravel's filesystem?
Yes. Set FILESYSTEM_DISK=s3, point AWS_ENDPOINT at https://s3.danubedata.ro, and Laravel's Storage::disk('s3') works without any code changes. Signed URLs, multipart uploads, directory listings — all supported.
What about Reverb / broadcasting?
Reverb is just a PHP process listening on a TCP port. Run it alongside Horizon as a Supervisor service, proxy it through Nginx on /app, and update your frontend Echo config to point at the new host. Works identically to Cloud.
Does DanubeData provide a DPA and sign GDPR compliance statements?
Yes. DanubeData operates as an EU entity with infrastructure in Falkenstein, Germany. We provide a signed Data Processing Addendum on request, and because there is no US parent entity, Standard Contractual Clauses aren't required for data transfers — all processing happens inside the EU. This is the structural difference versus AWS-backed platforms.
Which Option Should You Actually Pick?
- Shipping a SaaS MVP and want minimal ops? DanubeData Serverless Containers + Managed MySQL + Managed Redis. ~€30/mo, Docker-based, scales to zero.
- Have a real production Laravel app with steady traffic? Forge + DanubeData DD Small + Managed MySQL + Managed Redis. ~€55/mo, Octane-ready, Germany-hosted.
- Cost-sensitive solo developer? Self-managed DD Small VPS (€12.49/mo) running Forge's sibling panel or just plain Nginx + FrankenPHP.
- Need global anycast HTTP and happy with Docker? Fly.io in
fra— not EU-owned, but EU-hosted. Compromise option. - Already deeply invested in AWS primitives? Stay on Laravel Cloud or Vapor and add SCCs + a TIA to stay GDPR-defensible.
Get Started
The fastest path to a GDPR-clean, Germany-hosted Laravel stack:
- Create a DD Small VPS in Falkenstein — 2 minutes
- Add the VPS to Laravel Forge as a custom provider (or skip Forge and use our provisioning scripts)
- Create a Managed MySQL instance — daily snapshots included
- Create a Managed Redis instance for Horizon and sessions
- Run your first Forge deploy
New accounts get €50 free credit — enough to run the full recommended stack for nearly two months before any card is charged.
👉 Start your Laravel Cloud migration on DanubeData
Migrating a larger Laravel app? Talk to our team — we'll help you plan the cutover, size the stack, and move your data without downtime.