Server Requirements and Hosting Options for AcelleMail

The right server for AcelleMail is dictated by send volume, not subscriber count. A list of 5M subscribers mailed monthly needs less compute than a list of 100k mailed daily. This article gives concrete specs at four volume tiers, a current 2026 provider comparison, and the operational considerations that determine your real cost.

What this is for

The right server for AcelleMail is dictated by send volume, not subscriber count. A list of 5 million subscribers that you mail once a month needs less compute than a list of 100,000 you mail daily. This article gives concrete specs at four volume tiers, a current 2026 provider comparison, and the operational considerations that determine your real cost.

Pick a tier from your monthly send volume

Tier Monthly sends Recommended specs Notes
Hobby < 50k 1 vCPU, 2 GB RAM, 30 GB SSD Single droplet. Queue uses database driver. Avoid 1 GB / 512 MB shapes — won't fit PHP-FPM + MySQL + Redis.
Small (baseline) 50k - 500k 2 vCPU, 4 GB RAM, 50 GB SSD MySQL on the same host. Redis for queue + cache. 2 supervisor workers.
Medium 500k - 5M 4 vCPU, 8 GB RAM, 100 GB SSD DB on the same host or split to managed. 4 supervisor workers.
Large 5M - 50M 8 vCPU, 16 GB RAM, 200 GB SSD + separate DB DB on its own host (managed RDS / DO Managed DB / self-managed). 4–8 queue workers. Consider 2+ application hosts behind a load balancer with Redis-backed sessions.
XL 50M+ Custom — multi-host, dedicated DB cluster, Redis cluster, separate sending-cluster MTAs Talk to AcelleMail support; this tier is rare and bespoke.

These figures assume 30-day rolling average. Black Friday / Cyber Monday spikes need ~2× headroom — provision against your peak day, not your mean.

Software baseline (any tier)

Per Acelle's InstallController system-compatibility check (the source-of-truth for what the wizard accepts):

Component Minimum (wizard-enforced) Recommended (2026)
OS Ubuntu 22.04 / Debian 11 / Rocky 8 Ubuntu 24.04 LTS
PHP 8.3.0 (wizard hard-fails below) PHP 8.3 (8.4 works informally; PHP 9 not yet)
MySQL / MariaDB MySQL 5.7 / MariaDB 10.3 MySQL 8.0 or MariaDB 11.4 LTS
Redis (optional) 7.x — strongly recommended for queue + cache
Web server Apache 2.4 Nginx 1.22+
Process manager systemd Supervisor (worker recovery is cleaner than systemd's restart on busy queues)
TLS Let's Encrypt certbot --nginx with auto-renewal

Required PHP extensions (all wizard-enforced):

mysqli  openssl  mbstring  pdo  tokenizer  zip  imap  sqlite3
gd  fileinfo  curl  xml  bcmath  intl  redis  mailparse  gmp

The two operators most often forget: php8.3-imap (FBL bounce handler) and php8.3-sqlite3 (internal data store). The wizard's System Check hard-fails on either — see the Ubuntu install Step 2.

Provider comparison (2026 list prices)

The table uses the Small tier (50k - 500k sends/month) as a like-for-like comparison. All prices are USD/month, before any committed-spend discount. Adjust by tier (~2× per step up).

Provider Plan vCPU RAM SSD Egress $/mo Notes
Hetzner CX22 2 4 GB 40 GB 20 TB ~$5 Cheapest globally for the spec; EU + US datacenters; AMD/Intel mixed
Hetzner CPX21 3 (AMD) 4 GB 80 GB 20 TB ~$9 Best CPU-to-$ ratio; faster than CX22
DigitalOcean Premium AMD 2vCPU 2 (AMD) 4 GB 80 GB 4 TB ~$28 Best ops UX — managed DB, snapshots, Reserved IPs, monitoring all built-in
Linode Shared 4GB 2 4 GB 80 GB 4 TB ~$24 Slightly cheaper than DO, slightly less polished UI; Akamai-owned
Vultr High-Frequency 2vCPU 2 4 GB 64 GB 3 TB ~$24 Strong CPU benchmark; better routes to Asia than DO
AWS EC2 t3.medium + 50 GB gp3 2 4 GB 50 GB 100 GB free, then $0.09/GB ~$32 on-demand / ~$20 RI Most flexible; egress costs add up unless sending via SES in-region
AWS Lightsail $20 plan 2 4 GB 80 GB 4 TB ~$20 EC2 with the bill-predictability of DO; outgrown at Medium tier

Top picks per use case:

  • Side-project / hobby (< 50k/month): Hetzner CX22 (~$5/mo) — best price-performance globally.
  • Production small business (50k - 500k/month): Hetzner CPX21 ($9) for cost, DigitalOcean Premium AMD ($28) for ops quality.
  • Production medium business (500k - 5M/month): DigitalOcean managed DB + Premium AMD droplet, ~$80/mo all-in. AWS if you already have AWS infra and can leverage SES in-region.
  • AWS-native shops: EC2 t3.medium (or m6i.large at Medium tier) + Reserved Instance + SES in-region — see the AWS EC2 install guide for the full cost breakdown.
  • Container-first teams: any of the above + the Docker deployment guide.

Cost beyond the server

The server is rarely the largest line item. The real recurring costs:

Line item Typical $/month at Small tier
Server (above) $5 – $32
Sending API (Amazon SES at $0.10/1k) $5 – $50 (50k – 500k sends)
Domain + DNS (Cloudflare free tier OK) $0 – $5
Backups (off-site, e.g. BorgBase or Restic to B2) $2 – $10
Monitoring (UptimeRobot free, Better Uptime $9, etc.) $0 – $20
Subtotal $12 – $117

Compare to Mailchimp's Standard tier at the same scale: $35-$185/month for 10k-100k contacts (not sends — Mailchimp's pricing is contact-tier, not send-volume). At 500k sends/month against a 50k contact list, AcelleMail's TCO is ~5× cheaper — and the gap widens as your list grows, since AcelleMail's price is flat in contacts.

Operations cost — the hidden expense

A self-hosted setup at 500k+ sends/month is not zero-ops. Plan for:

  • Backups. Daily DB dump + weekly full filesystem snapshot. Test restore quarterly. See Automated Database Backups.
  • OS patching. unattended-upgrades for security; manual review of major upgrades. On Rocky, see the dnf-automatic FAQ.
  • TLS renewal. certbot auto-renew, but verify with a calendar reminder twice a year.
  • Bounce-handler maintenance. Email log rotation, FBL handler health check.
  • Monitoring. Uptime check on the public site, queue depth, disk space, MySQL slow-query log.
  • Incident response. Plan for "site down" + "campaign stuck in sending" runbooks.

A reasonable estimate is 2–4 hours/month of attention for a Small-tier site once steady state is reached. Compare to Mailchimp's "0 hours, but you pay $185" — the trade-off is real, not theoretical.

When NOT to self-host

AcelleMail's value proposition assumes you have, or can build, basic Linux operations skill. If you don't and can't, choose a SaaS:

  • You don't have anyone who can SSH into a Linux box.
  • You can't write or read a crontab line.
  • You have hard SOC 2 / HIPAA compliance requirements and no time to assemble the controls (AcelleMail can be made compliant, but the work is yours).
  • Your sending pattern is peaky (zero for 25 days, blast on day 30) — SaaS handles bursts better than a $5 droplet.

For everyone else — agencies, SaaS founders, e-commerce stores, newsletter publishers, regulated-industry teams who want their data on-prem — AcelleMail's TCO and control wins.

Sizing rules of thumb

If your workload doesn't fit neatly into a tier:

  • RAM = 2 × (peak concurrent queue workers) + 1 GB for MySQL + 256 MB for Redis + 512 MB OS overhead. Each worker peaks ~256-512 MB on heavy campaigns.
  • vCPU = 1 + (queue workers / 2). Workers are mostly I/O-bound (sending API calls), so they share well.
  • Disk = 20 GB OS + (subscriber count / 1k) MB for DB + 1 GB/month log retention + 5 GB image headroom. A 100k-subscriber list with 12 months of logs needs ~50 GB.
  • Egress = (avg email size in KB) × (sends/month) / 1024 / 1024 GB. A 50 KB email × 500k sends = 25 GB/month. Free on Hetzner + DO; charged on AWS unless you use SES in-region.

If RAM is the bottleneck, memory-limit per FPM child in /etc/php/8.3/fpm/pool.d/www.conf is what to tune — pm.max_children × memory_limit is your worst-case FPM RAM.

Choosing between Ubuntu / Debian / Rocky

Per the install guides:

  • Ubuntu 24.04 LTS — the canonical recommendation. Best documentation, most copy-paste-friendly. Pick this unless you have a reason to pick something else.
  • Debian 12 (Bookworm) — slightly lighter weight, longer security cycle (Freexian ELTS through 2033). Use if you're already a Debian shop or want minimal pre-installed surprises. See the Debian install guide.
  • Rocky Linux 9 — required if your operations policy is RHEL-family. Same setup applies to AlmaLinux 9 and CentOS Stream 9. Has SELinux configuration overhead — see the Rocky install guide.

Common issues

What you see Likely cause Fix
Wizard System Check red on IMAP or SQLite3 Forgot php8.3-imap / php8.3-sqlite3 sudo apt install -y php8.3-imap php8.3-sqlite3 && sudo systemctl restart php8.3-fpm
MySQL choked at 100k subscribers Hobby tier (2 GB RAM) too small Bump to Small tier (4 GB) and tune innodb_buffer_pool_size = 1G
Queue worker OOM-killed during big campaign memory_limit too low for send-campaign job memory_limit = 512M in /etc/php/8.3/fpm/php.ini AND in /etc/php/8.3/cli/php.ini (workers use CLI)
Disk full after 6 months Logs + failed_jobs table runaway Add find /var/www/acellemail/storage/logs -name "*.log" -mtime +14 -delete to cron; php artisan queue:flush failed jobs
Sends slow on a 1 vCPU droplet CPU starvation under burst Move to 2 vCPU; worker count = floor(vCPU × 1.5) is a good starting point
AWS bill spike after first big campaign Egress to a non-AWS sending API Use SES in-region (free egress) — see the AWS install Step 7

FAQ

Can I run AcelleMail on shared hosting? Technically yes (cPanel + PHP 8.3+ + MySQL is enough), realistically no — the queue worker needs a long-running process and the cron needs reliable execution, both of which most shared hosts kill. Use a $5 VPS instead.

ARM vs x86? AWS Graviton (t4g/m6g), Hetzner ARM (CAX), and Ampere-based offerings all work — they're typically ~20% cheaper. PHP 8.3 + MySQL + Redis all run fine on ARM. Caveat: a small fraction of third-party PHP extensions (especially PECL ones) may need building from source. For a stock AcelleMail install with only the wizard-required extensions, ARM is fine and saves money.

Why MariaDB and not MySQL? Both work; both pass AcelleMail's tests. MariaDB has the cleaner install path on Debian and Rocky (no Oracle repo needed); MySQL is the slightly safer choice if you want maximum compatibility with MySQL-specific tooling. Pick what your team already runs.

Do I need IPv6? Not for AcelleMail itself. Modern receivers (Gmail, Outlook) accept connections from IPv4-only senders without penalty. Adding IPv6 doesn't hurt either, but it's not a deliverability requirement.

Can I share a server with other apps? Technically yes (separate PHP-FPM pools, separate MySQL databases, separate nginx server blocks). Operationally messy — campaign blasts will starve the other apps of CPU, and the other apps' MySQL queries will degrade campaign performance. Better to dedicate the box.

What about Hetzner Cloud vs Hetzner Dedicated? Hetzner Cloud (CX/CPX SKUs) is what's tabulated above — virtual servers, billed monthly, scale up/down freely. Hetzner Dedicated (AX/EX SKUs) is bare-metal — same datacenter, single tenant, much more compute per dollar at scale, but month-on/month-off bursting isn't possible. Use Cloud for everything up to Large tier; consider Dedicated at XL tier if you can commit.

Should I co-locate AcelleMail with my main app? No — sending workloads have unpredictable spikes that can starve your main app's resources. Dedicate a small droplet for AcelleMail and a separate larger one for your main app. The $5–$30/month for the AcelleMail droplet is much cheaper than the consequences of a campaign blast taking your main app offline.

Related articles

7 Kommentare

5 Kommentare

  1. lequan.saigon
    Followed this on Ubuntu 24.04 last week. Zero issues. The php-imap and php-sqlite3 notes saved me a wizard-error round-trip.
  2. cmendoza.mx
    We use Hetzner instead of DO — same Ubuntu image, identical install. Probably $4/mo cheaper. The PTR record on Hetzner requires opening a support ticket but they respond same-day.
  3. d.cohen.tlv
    any reason to use mariadb over mysql 8? we default to mariadb everywhere but i see most acelle install guides use mysql.
    1. admin
      right — for rds specifically, you can change wait_timeout via the parameter group without a reboot if it's set as 'dynamic'. most defaults are.
  4. aisha.khan.pak
    clean walkthrough. The supervisor config copy-paste worked first try. lol
    1. admin
      thanks for the kind words. We try to keep these source-grounded so they age well. 👀
  5. danrey.dev
    Installed on a $12/mo DigitalOcean droplet for our 30k-subscriber list. Performance has been fine. Memory peaks around 1.6 GB during batch sends; comfortable on 2GB.

More in Installation & Setup