Sign inSign up

morsalin1342/frankenphp

By morsalin1342

•Updated 28 days ago

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

Image
Languages & frameworks
Web servers
0

1.9K

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, 56 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✅ 56 pre-installed
Composer / WP-CLI❌✅ Both
Node.js❌✅ v24, configurable
Supervisor + Cron❌✅
Debian releasesOne✅ bookworm and trixie

⁠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-bookworm8.5bookworm
8.4, 8.4-bookworm8.4bookworm
8.3, 8.3-bookworm8.3bookworm
8.2, 8.2-bookworm8.2bookworm
8.5-trixie … 8.2-trixie8.2–8.5trixie

bookworm owns the unsuffixed tags; append -trixie for Debian 13.

⁠What's Included

  • Custom Caddy with the OWASP Coraza WAF (CRS compiled in), rate limiting, AI-crawler blocking, Brotli, HTTP cache (Souin), and 6 DNS challenge providers
  • 56 PHP extensions: Redis, MongoDB, PostgreSQL, Imagick, GD, Intl, AMQP, Kafka, OpenTelemetry, and more
  • Tools: Composer, WP-CLI, Node.js 24, Supervisor, Cron, 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: 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 / 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
easydigital/frankenphp⁠Enterprise org 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⁠!

Tag summary

Content type

Image

Digest

sha256:4a5e5ae90…

Size

535.9 MB

Last updated

28 days ago

docker pull morsalin1342/frankenphp