Context
We're migrating firth's Docker infrastructure to use Traefik as the reverse proxy. Traefik routes HTTP directly to containers — services need to serve HTTP (not FastCGI) to participate without a host-nginx intermediary.
Sprouter currently has no Dockerfile or Docker Compose setup, so this covers both containerisation and making it HTTP-native.
What needs to change
App changes
- Add Laravel Octane:
composer require laravel/octane → php artisan octane:install (FrankenPHP recommended)
- Add a
Dockerfile using the FrankenPHP base image (or Swoole equivalent)
- Container should serve HTTP on a known port (e.g. 8000)
Infrastructure changes (in autopelago — tracked separately)
Once the image is published and HTTP-native, an Ansible role / compose stack will be added to deploy it on firth with Traefik labels for routing.
Precedent
stream-delta already uses Octane on this infrastructure, so the deployment pattern is established.
Context
We're migrating firth's Docker infrastructure to use Traefik as the reverse proxy. Traefik routes HTTP directly to containers — services need to serve HTTP (not FastCGI) to participate without a host-nginx intermediary.
Sprouter currently has no Dockerfile or Docker Compose setup, so this covers both containerisation and making it HTTP-native.
What needs to change
App changes
composer require laravel/octane→php artisan octane:install(FrankenPHP recommended)Dockerfileusing the FrankenPHP base image (or Swoole equivalent)Infrastructure changes (in autopelago — tracked separately)
Once the image is published and HTTP-native, an Ansible role / compose stack will be added to deploy it on firth with Traefik labels for routing.
Precedent
stream-delta already uses Octane on this infrastructure, so the deployment pattern is established.