Production-ready FrankenPHP: custom Caddy build, 56 PHP extensions, Composer, WP-CLI, Node.js
3.4K
Published by easydigital · GitHub
Enterprise-ready FrankenPHP images with a custom Caddy build, 56 PHP extensions, and production tooling. Same image as morsalin1342/frankenphp — published here for organizational use.
| Feature | Official image | This image |
|---|---|---|
| Caddy modules | Minimal | ✅ 16 — WAF, rate limiting, Brotli, Souin, 6 DNS |
| Web application firewall | ❌ | ✅ OWASP Coraza, Core Rule Set compiled in |
| PHP extensions | Few built in | ✅ 56 pre-installed |
| Composer / WP-CLI | ❌ | ✅ Both |
| Node.js | ❌ | ✅ v24, configurable |
| Supervisor + Cron | ❌ | ✅ |
| Debian releases | One | ✅ bookworm and trixie |
morsalin1342/frankenphp# production.yml
services:
app:
image: easydigital/frankenphp:8.4-bookworm
restart: always
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ./public:/app
- ./Caddyfile:/etc/caddy/Caddyfile
- app_data:/data
environment:
SERVER_NAME: example.com
volumes:
app_data:
example.com {
root * /app/public
encode zstd gzip
php_server
file_server
header Strict-Transport-Security "max-age=63072000"
}
8.5, 8.5-bookworm, 8.5-trixie, 8.4, 8.4-bookworm, 8.4-trixie, 8.3, 8.3-bookworm, 8.3-trixie, 8.2, 8.2-bookworm, 8.2-trixie, latest → 8.5
Unsuffixed tags are bookworm; append -trixie for Debian 13.
Q: Can I add extensions?
A: Yes — RUN install-php-extensions <name> in a layer on top; the installer is already in the image.
Q: How do I run queue workers?
A: Supervisor is installed. Mount your config into /etc/supervisor/conf.d/.
Q: bookworm or trixie?
A: Unsuffixed tags are bookworm. Append -trixie for Debian 13.
| Image / Tool | Description |
|---|---|
| easydigital/caddy | Standalone Caddy with WAF, rate limiting & caching (org) |
| easydigital/php | Traditional PHP-FPM & CLI images (org) |
| easydigital/nginx | nginx with ModSecurity 3, Brotli, zstd & GeoIP2 (org) |
| morsalin1342/frankenphp | Personal account mirror |
| caddy-souin-cache-manager | Manage this image's Souin cache from WP Admin |
⭐ If this image helps you, consider giving it a star on GitHub!
Content type
Image
Digest
sha256:4a5e5ae90…
Size
535.9 MB
Last updated
27 days ago
docker pull easydigital/frankenphp