DEV Community

Cover image for How I Replaced Acquia (€134/month) with a €10 Hetzner VPS — and Beat It on Every Feature
MP Singh
MP Singh

Posted on

How I Replaced Acquia (€134/month) with a €10 Hetzner VPS — and Beat It on Every Feature

I run a Drupal 11 production site. For years, managed Drupal hosting meant one thing: pay Acquia, Pantheon, or Platform.sh a significant monthly fee and hope nothing breaks.

Last month I built Actools — a single-command enterprise Drupal installer that runs on a €10/month Hetzner VPS. It now handles everything my managed hosting used to do, plus things it never did.

Here is the honest comparison.


What Managed Hosting Gives You

Acquia Cloud starts at around €134/month for a basic production environment. For that you get:

  • Managed Drupal hosting
  • Automated backups
  • A CDN
  • SSH access
  • A deployment pipeline (basic)
  • Support tickets

What you do not get: control. You cannot touch the server. You cannot customise the stack. You cannot add a XeLaTeX worker for PDF generation. You cannot run your own Redis configuration. You pay for their infrastructure decisions.


What I Built Instead

One bash script. One config file. One command:

sudo ./actools.sh
Enter fullscreen mode Exit fullscreen mode

What it deploys in under 10 minutes on a fresh Hetzner VPS:

  • Drupal 11 — production-isolated with PHP 8.3-FPM
  • Caddy 2.8 — automatic HTTPS, custom rate-limiting plugin
  • MariaDB 11.4 — with binary logging for point-in-time recovery
  • Redis 7 — session caching, page caching
  • XeLaTeX worker — PDF generation fully containerised
  • S3 storage — works with AWS, Backblaze, Wasabi, Cloudflare R2, MinIO
  • Preview environmentsactools branch feature-x spins up a full isolated environment
  • CI/CD pipeline — GitHub Actions integration built in
  • Prometheus + Grafana — full observability stack
  • Automated backups — encrypted, offsite, with restore testing
  • Self-healing health checks — containers restart on failure
  • Zero-downtime migrations — database migrations without taking the site down

Total cost: €10/month for a Hetzner CX22 (2 vCPU, 4GB RAM).


The XeLaTeX Part

This is the detail that matters if you generate PDFs from Drupal content.

Every managed host I tried either did not support XeLaTeX at all, or required a separate server, or had it as an expensive add-on. With Actools, the XeLaTeX worker lives inside a Docker container. It builds once, caches, and is available to every environment:

actools pdf-test          # Verifies XeLaTeX is working
actools storage-info      # Shows S3 config and PDF mode
Enter fullscreen mode Exit fullscreen mode

PDFs generated by Drupal go directly to S3. No local storage. No egress fees with Cloudflare R2.


The Preview Environments Part

This one still surprises people when I show them.

actools branch feature-redesign
# → Creates: dev-feature-redesign.yourdomain.com
# → Full database clone
# → Full files clone
# → Isolated PHP-FPM container
# → Own Redis namespace
# → Automatic HTTPS

actools branch --list
actools branch --destroy feature-redesign
Enter fullscreen mode Exit fullscreen mode

Pantheon charges extra for multidev environments. Acquia limits them by plan. With Actools they are unlimited and take about 90 seconds to spin up.


The Observability Part

actools health
# → Checks: web, database, cache, worker, storage
# → Returns: green/yellow/red per component
# → Auto-restarts failed containers

actools logs --tail 100
actools drush status
Enter fullscreen mode Exit fullscreen mode

Grafana dashboards are available at grafana.yourdomain.com with Drupal-specific metrics out of the box.


The Backup Part

actools backup
# → Dumps database
# → Archives files
# → Encrypts with age
# → Uploads to S3
# → Tests restore in isolation
# → Reports: backup verified

actools restore-test
# → Pulls latest backup
# → Restores to isolated environment
# → Runs smoke tests
# → Confirms data integrity
Enter fullscreen mode Exit fullscreen mode

Most managed hosts say "we take backups." Actools proves the backup works every time it runs.


What It Cannot Do (Honest)

Managed hosts have large support teams. If something goes wrong at 3am, you can file a ticket.

With Actools you are the support team. The health checks, the observability, the self-healing containers — they reduce the 3am events significantly. But they do not eliminate the possibility. If you are not comfortable being the operator of your own infrastructure, managed hosting is still the right answer for you.

Actools is for teams and individuals who want control, want cost efficiency, and are comfortable running a VPS.


The Numbers

Acquia Basic Pantheon Performance Actools + Hetzner
Monthly cost ~€134 ~€179 €10
Preview environments Limited Extra cost Unlimited
XeLaTeX / custom workers No No Yes
Full server access No No Yes
Observability (Grafana) Extra Extra Included
Restore testing Manual Manual Automated
S3 provider choice Locked Locked Any

Getting Started

The installer and full documentation are available at feesix.com.

Requirements:

  • A Hetzner VPS (CX22 or larger, €10/month)
  • Ubuntu 24.04
  • A domain pointing at the server
# Clone into a dedicated directory — important
# The installer uses the directory it runs from as the project root
git clone https://github.com/actools-pl/actoolsDrupal.git
cd actoolsDrupal

# Configure
cp actools.env.example actools.env
nano actools.env
# Required: BASE_DOMAIN, DRUPAL_ADMIN_EMAIL
# Everything else auto-generates

# Install
sudo ./actools.sh
Enter fullscreen mode Exit fullscreen mode

That is it. Drupal 11 with the full enterprise stack, running in under 10 minutes.

One important note: Always clone into a subdirectory as shown above. The installer creates all project files — docker-compose.yml, Caddyfile, docroot/, logs/, backups/ — relative to wherever actools.sh lives. If you run it from your home directory directly, everything lands there. Clone first, then run.


What is Coming

Phase 4.5 is in progress: encrypted offsite backups, Cloudflare Tunnel for zero-trust networking, multi-user RBAC with audit trails, and a DNA/resurrection system that rebuilds a complete server from a single JSON snapshot in under 15 minutes.

The goal is a platform that any serious Drupal team can run confidently without a managed hosting bill.


Built on a €10 server. Running in production. Replacing a €134/month bill.

Questions or feedback? Reach me at hello@feesix.com or leave a comment below.

Top comments (0)