# php-qml framework skeleton — FrankenPHP / Caddy / Mercure config. # # Works in both run modes: # - dev mode → env unset, defaults below match symfony/.env # - bundled mode → BackendConnection sets PORT and MERCURE_*_JWT_KEY # before launching FrankenPHP. # # Caddyfile {$VAR:default} syntax substitutes env vars at parse time. { auto_https off admin off frankenphp order php_server before respond order mercure after encode } http://127.0.0.1:{$PORT:8765} { root * public/ encode gzip mercure { transport local # In bundled mode the host generates a fresh per-session JWT; # in dev mode we fall back to the value from symfony/.env (must # match it). lcobucci/jwt requires ≥256 bits. publisher_jwt {$MERCURE_PUBLISHER_JWT_KEY:dev_php_qml_bridge_jwt_secret_at_least_256_bits_long_for_lcobucci} subscriber_jwt {$MERCURE_SUBSCRIBER_JWT_KEY:dev_php_qml_bridge_jwt_secret_at_least_256_bits_long_for_lcobucci} anonymous publish_origins * cors_origins * } php_server log { output stderr format console } }