Sign inSign up

easydigital/frankenphp

By easydigital

•Updated 3 days ago

Production-ready FrankenPHP: custom Caddy build, 51 PHP extensions, Composer, WP-CLI, Node.js

Image
Languages & frameworks
Web servers
0

4.0K

easydigital/frankenphp repository overview

⁠FrankenPHP — Enterprise PHP App Server

Published by easydigital⁠ · GitHub⁠

Docker Pulls Image Size GitHub Stars License

Enterprise-ready FrankenPHP images with a custom Caddy build, 51 PHP extensions, and production tooling. Same image as morsalin1342/frankenphp — published here for organizational use.

⁠✨ Why This Image?

FeatureOfficial imageThis image
Caddy modulesMinimal✅ 16 — WAF, rate limiting, Brotli, Souin, 6 DNS
Web application firewall❌✅ OWASP Coraza, Core Rule Set compiled in
PHP extensionsFew built in✅ 51 pre-installed
Composer / WP-CLI❌✅ Both
Node.js❌✅ v24, configurable
MariaDB client❌✅ mariadb tools, also as mysql, mysqldump
Debian releaseOne✅ trixie (Debian 13)

The full list of extensions, Caddy modules and tools, with versions and known issues, is in EXTENSIONS.md⁠.

⁠Why Use the easydigital Registry?

  • Namespace isolation — keep team pulls under the organization account
  • Same image digest — bit-for-bit identical to morsalin1342/frankenphp
  • CI/CD friendly — predictable tags for automated pipelines

⁠Deployment Example

# production.yml
services:
  app:
    image: easydigital/frankenphp:8.4-trixie
    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:

⁠Caddyfile with HTTPS

example.com {
    root * /app/public
    encode zstd gzip
    php_server
    file_server
    header Strict-Transport-Security "max-age=63072000"
}

⁠Available Tags

8.5, 8.5-trixie, 8.4, 8.4-trixie, 8.3, 8.3-trixie, 8.2, 8.2-trixie, latest → 8.5

Only trixie is built; -trixie tags are aliases of the unsuffixed ones. Old -bookworm tags are no longer updated.

⁠❓ FAQ

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: Run them as separate containers from the same image with their own command; supervisor and cron are not included.

Q: Is there a bookworm image? A: No. Only trixie is built now. Older -bookworm tags stay on Docker Hub but are no longer updated.


Image / ToolDescription
easydigital/caddy⁠Standalone Caddy with WAF, rate limiting & caching
easydigital/php⁠Traditional PHP-FPM & CLI images
easydigital/nginx⁠nginx with ModSecurity 3, Brotli, zstd & GeoIP2
easydigital/apache⁠Apache as a static server or php-fpm application server, no PHP inside
morsalin1342/frankenphp⁠Same image, personal namespace

⭐ If this image helps you, consider giving it a star on GitHub⁠!

Tag summary

Content type

Image

Digest

sha256:fd2f14629…

Size

559.4 MB

Last updated

3 days ago

docker pull easydigital/frankenphp