Skip to content

Run Sendy with Docker in minutes: a community supported Docker Image

Hey Sendy community! 👋

I wanted to share a community maintained Docker image I've built for Sendy that makes it much easier to deploy and manage your Sendy installation. It's now listed on the official Sendy integrations page at https://sendy.co/api and it follows the guidelines required by Sendy.

🔗 GitHub + full setup instructions: https://github.com/marcelorodrigo/sendy
🐳 Docker Hub: https://hub.docker.com/r/marcelorodrigo/sendy

If you already have a MySQL database for Sendy, you can run the container with the following command.

docker run -d \
  -e SENDY_URL=https://newsletters.example.com \
  -e MYSQL_HOST=db.example.com \
  -e MYSQL_USER=sendy \
  -e MYSQL_PASSWORD=Pl3ase_Ch8nge_Me \
  -e MYSQL_DATABASE=sendy \
  -v sendy_uploads:/var/www/html/uploads \
  -p 80:8080 \
  -p 443:8443 \
  marcelorodrigo/sendy:latest

Need a full setup with Docker compose, database and volumes for translations and uploads? That's is also possible.

Why run Sendy as a Docker container?

If you've ever struggled with setting up a server, configuring PHP, enabling the right Apache modules, or fighting dependency conflicts: Docker solves all of that:

🚀 Simple deployment

Apache, PHP 8.5, all required extensions, mod_rewrite, and OPcache are all pre-configured and production-ready.

One command and you're live: no manual server setup.

⬆️ Effortless upgrades

Upgrading Sendy versions is as simple as pulling a new tagged image. No more manually downloading zip files, replacing files, or worrying about breaking your installation. Roll back to a previous version just as easily if needed.

🔒 Security built-in

The container runs as a non-root user by default, reducing the attack surface significantly. Your Sendy license key is never baked into the image: it's consumed only at build time via Docker build secrets and never exposed.
Startup validation also catches any misconfiguration before they cause problems in production.

💚 Production-ready extras

  • 🏭 Production Ready: Apache/PHP image based on ServerSideUp/PHP images
  • ⚡ High Performance: Fine-tuned for optimal performance with opcache optimized for production
  • 🔒 Security: Runs as non-root user
  • 💚 Health Checks: Native health check support
  • ⚙️ Easy Configuration: Simple and intuitive setup
  • ☁️ CloudFlare Support: Native CloudFlare support with real IP addresses from trusted proxies
  • 📊 Unified Logging: All logs directed to STDOUT & STDERR for centralized output
  • 🔧 Intelligent Init System: Apache + FPM + s6 overlay
  • ✅ Validation: Required configuration validation on start-up to prevent mistakes
  • 🌐 Web Server Features: .htaccess support with mod_rewrite enabled
  • 📦 PHP Extensions: All PHP extensions required by Sendy installed and enabled
  • 🚀 Latest PHP: PHP 8.5 with opcache enabled
  • 💾 Volume Support: Support for /upload volume
  • 🌍 Translations: Support for custom Sendy translations
  • 🏗️ Multi-Architecture: amd64 and arm64 native support

Important notes

  • This is a community-maintained image: not an official Sendy product. You still need a valid Sendy license from sendy.co
  • Feedback, issues, and contributions are welcome on GitHub!

Happy sending! 🚀

Leave a Comment