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 FrankenPHP 1.12.x and Caddy 2.11.x. The shared build examples use FrankenPHP v1.12.4, which matches the current WebSocket module dependency when compiling all plugins together.

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
Uploadgithub.com/y-l-g/upload/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/websocket

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

Pogo and Upload currently expose native PHP functions directly. They do not ship framework packages in these repositories yet.

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