Sign inSign up

morsalin1342/frankenphp

By morsalin1342

•Updated 6 days ago

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

Image
Languages & frameworks
Web servers
0

2.5K

morsalin1342/frankenphp repository overview

⁠FrankenPHP — Production-Ready PHP App Server with Custom Caddy Builds

Maintained by morsalin1342⁠ · GitHub⁠

Docker Pulls Image Size GitHub Stars License

FrankenPHP is a modern PHP app server built in Go. This image bundles a custom-compiled Caddy web server, 51 PHP extensions, and essential CLI tools — everything you need to run production PHP applications in a single container.

⁠✨ 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)

⁠Quick Start

# docker-compose.yml
services:
  app:
    image: morsalin1342/frankenphp:8.4
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    volumes:
      - ./public:/app
      - ./Caddyfile:/etc/caddy/Caddyfile
# Caddyfile
:80 {
    root * /app
    encode zstd gzip
    php_server
    file_server
}

⁠Available Tags

TagPHPBase OS
latest, 8.5, 8.5-trixie8.5trixie
8.4, 8.4-trixie8.4trixie
8.3, 8.3-trixie8.3trixie
8.2, 8.2-trixie8.2trixie

Only Debian 13 (trixie) is built, and -trixie tags are aliases of the unsuffixed ones. The old -bookworm tags stay available but are no longer updated.

⁠What's Included

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

  • Custom Caddy with the OWASP Coraza WAF (CRS compiled in), rate limiting, AI-crawler blocking, Brotli, HTTP cache (Souin), and 6 DNS challenge providers
  • 51 PHP extensions: Redis, MongoDB, PostgreSQL, Imagick, GD, Intl, OpenTelemetry, and more
  • Tools: Composer, WP-CLI, Node.js 24, the MariaDB client, FFmpeg

⁠Customizing

FROM morsalin1342/frankenphp:8.4
RUN install-php-extensions xdebug
COPY php.ini /usr/local/etc/php/php.ini

⁠❓ 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
morsalin1342/caddy⁠Standalone Caddy with WAF, rate limiting & caching
morsalin1342/php⁠Traditional PHP-FPM & CLI images
morsalin1342/nginx⁠nginx with ModSecurity 3, Brotli, zstd & GeoIP2
morsalin1342/apache⁠Apache as a static server or php-fpm application server, no PHP inside
easydigital/frankenphp⁠Same image, organization 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

6 days ago

docker pull morsalin1342/frankenphp