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

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

What Managed Hosting Gives You

What I Built Instead

The XeLaTeX Part

The Preview Environments Part

The Observability Part

The Backup Part

What It Cannot Do (Honest)

The Numbers

Getting Started

What is Coming 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. Acquia Cloud starts at around €134/month for a basic production environment. For that you get: 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. One bash script. One config file. One command: What it deploys in under 10 minutes on a fresh Hetzner VPS: Total cost: €10/month for a Hetzner CX22 (2 vCPU, 4GB RAM). 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: PDFs generated by Drupal go directly to S3. No local storage. No egress fees with Cloudflare R2. This one still surprises people when I show them. Pantheon charges extra for multidev environments. Acquia limits them by plan. With Actools they are unlimited and take about 90 seconds to spin up. Grafana dashboards are available at grafana.yourdomain.com with Drupal-specific metrics out of the box. Most managed hosts say "we take backups." Actools proves the backup works every time it runs. 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 installer and full documentation are available at feesix.com. 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. 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 [email protected] or leave a comment below. Templates let you quickly answer FAQs or store snippets for re-use. Hide child comments as well For further actions, you may consider blocking this person and/or reporting abuse

Command

Copy

$ -weight: 600;">sudo ./actools.sh -weight: 600;">sudo ./actools.sh -weight: 600;">sudo ./actools.sh actools pdf-test # Verifies XeLaTeX is working actools storage-info # Shows S3 config and PDF mode actools pdf-test # Verifies XeLaTeX is working actools storage-info # Shows S3 config and PDF mode actools pdf-test # Verifies XeLaTeX is working actools storage-info # Shows S3 config and PDF mode 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 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 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 actools health # → Checks: web, database, cache, worker, storage # → Returns: green/yellow/red per component # → Auto-restarts failed containers actools logs --tail 100 actools drush -weight: 500;">status actools health # → Checks: web, database, cache, worker, storage # → Returns: green/yellow/red per component # → Auto-restarts failed containers actools logs --tail 100 actools drush -weight: 500;">status actools health # → Checks: web, database, cache, worker, storage # → Returns: green/yellow/red per component # → Auto-restarts failed containers actools logs --tail 100 actools drush -weight: 500;">status 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 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 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 # Clone into a dedicated directory — important # The installer uses the directory it runs from as the project root -weight: 500;">git clone https://github.com/actools-pl/actoolsDrupal.-weight: 500;">git cd actoolsDrupal # Configure cp actools.env.example actools.env nano actools.env # Required: BASE_DOMAIN, DRUPAL_ADMIN_EMAIL # Everything else auto-generates # Install -weight: 600;">sudo ./actools.sh # Clone into a dedicated directory — important # The installer uses the directory it runs from as the project root -weight: 500;">git clone https://github.com/actools-pl/actoolsDrupal.-weight: 500;">git cd actoolsDrupal # Configure cp actools.env.example actools.env nano actools.env # Required: BASE_DOMAIN, DRUPAL_ADMIN_EMAIL # Everything else auto-generates # Install -weight: 600;">sudo ./actools.sh # Clone into a dedicated directory — important # The installer uses the directory it runs from as the project root -weight: 500;">git clone https://github.com/actools-pl/actoolsDrupal.-weight: 500;">git cd actoolsDrupal # Configure cp actools.env.example actools.env nano actools.env # Required: BASE_DOMAIN, DRUPAL_ADMIN_EMAIL # Everything else auto-generates # Install -weight: 600;">sudo ./actools.sh - Managed Drupal hosting - Automated backups - A deployment pipeline (basic) - Support tickets - 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 environments — actools 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 -weight: 500;">restart on failure - Zero-downtime migrations — database migrations without taking the site down - A Hetzner VPS (CX22 or larger, €10/month) - Ubuntu 24.04 - A domain pointing at the server