# frankenphp-1 > FrankenPHP 1.x reference for modern PHP application server built on Caddy. Use when working with FrankenPHP configuration, worker mode, deployment, performance tuning, Docker setup, Symfony integration, environment variables, or any FrankenPHP-related setup. Triggers on: FrankenPHP, worker mode, Caddy, PHP application server, Symfony Runtime, FrankenPHP deployment, Docker FrankenPHP, Caddyfile, Early Hints, HTTP/3, worker script, FRANKENPHP_CONFIG, Symfony FrankenPHP, production deployment, performance optimization. - Author: Guillaume Delré - Repository: guillaumedelre/claude-skills - Version: 20260209074016 - Stars: 3 - Forks: 0 - Last Updated: 2026-02-09 - Source: https://github.com/guillaumedelre/claude-skills - Web: https://mule.run/skillshub/@@guillaumedelre/claude-skills~frankenphp-1:20260209074016 --- --- name: "frankenphp-1" description: "FrankenPHP 1.x reference for modern PHP application server built on Caddy. Use when working with FrankenPHP configuration, worker mode, deployment, performance tuning, Docker setup, Symfony integration, environment variables, or any FrankenPHP-related setup. Triggers on: FrankenPHP, worker mode, Caddy, PHP application server, Symfony Runtime, FrankenPHP deployment, Docker FrankenPHP, Caddyfile, Early Hints, HTTP/3, worker script, FRANKENPHP_CONFIG, Symfony FrankenPHP, production deployment, performance optimization." --- # FrankenPHP 1.x GitHub: https://github.com/dunglas/frankenphp Docs: https://frankenphp.dev/ ## Overview FrankenPHP is a modern PHP application server written in Go, built on top of the Caddy web server. It provides worker mode for ultra-fast performance, automatic HTTPS, HTTP/2, HTTP/3 support, and seamless integration with Symfony applications. ## Quick Reference ### Basic Dockerfile ```dockerfile FROM dunglas/frankenphp # Install PHP extensions RUN install-php-extensions \ pdo_pgsql \ intl \ zip \ apcu \ opcache # Copy application COPY . /app # Set working directory WORKDIR /app # Install dependencies RUN composer install --no-dev --optimize-autoloader # Set permissions RUN chown -R www-data:www-data /app/var # Expose port EXPOSE 80 443 # Start FrankenPHP CMD ["frankenphp", "run", "--config", "/etc/caddy/Caddyfile"] ``` ### Caddyfile Configuration ```caddyfile { frankenphp { worker ./public/index.php num_threads 4 } } localhost { root * /app/public php_server } ``` ### Symfony Integration ```yaml # config/packages/framework.yaml framework: http_method_override: false handle_all_throwables: true php_errors: log: true runtime: 'Runtime\FrankenPhpSymfony\Runtime' ``` ### Worker Mode Script ```php