Getting Started

Installation

Prerequisites and setup for using Pogo FrankenPHP plugins.

Requirements

  • PHP with ZTS support compatible with FrankenPHP.
  • FrankenPHP and Caddy module build tooling.
  • xcaddy for compiling custom modules.
  • CGO enabled during builds.
  • Composer for PHP framework packages.
  • Redis for production queue deployments and optional WebSocket fanout.

The current modules target recent FrankenPHP/Caddy versions. The build examples use FrankenPHP v1.12.3 and Caddy v2.11.3.

Install build tooling

Install xcaddy:

Terminal
go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest

Confirm it is available:

Terminal
xcaddy version

Choose plugins

You can compile one plugin or all plugins into the same FrankenPHP binary.

PluginGo module
Queuegithub.com/y-l-g/queue/module
Schedulergithub.com/y-l-g/scheduler/module
Pogogithub.com/y-l-g/pogo/module
WebSocketgithub.com/y-l-g/websocket/module

Continue with Building FrankenPHP for complete build examples.

Install PHP packages

Install only the packages your application needs:

Terminal
composer require pogo/laravel-queue
composer require pogo/symfony-queue
composer require pogo/pogo
composer require pogo/websocket

The Composer packages do not compile native modules. They provide framework integration and helper interfaces for a FrankenPHP binary that already includes the matching plugin.

Start FrankenPHP

Run with your Caddyfile:

Terminal
frankenphp run --config Caddyfile

Laravel Octane users can also pass a Caddyfile to FrankenPHP:

Terminal
php artisan octane:frankenphp --caddyfile=Caddyfile