frankenphp icon indicating copy to clipboard operation
frankenphp copied to clipboard

Multisite with binary

Open te-deum opened this issue 1 year ago • 4 comments

Describe you feature request

I would like to know if it's possible to host multiple website with the FrankenPHP binary like Caddy can do with a JSON configuration file ?

My project use Laravel and is a SPA with Vue. I use a load balancer as reverse proxy to manage TLS connexion to my project. I actually use Nginx as HTML server and everything is working well.

I want to try and test FrankenPHP but I can't get multiple site working with the binary. I try to give a config JSON file without success :-( Here is the simple JSON that I try :

:8081 {
    root * /data/app/public
    encode zstd gzip br
}

:8082 {
    root * /data/demo/public
    encode zstd gzip br
}

:8083 {
    root * /data/beta/public
    encode zstd gzip br
}

Any idea if it's possible to do what I want ?

te-deum avatar Jun 10 '24 11:06 te-deum

If you are running them all on different ports, why not run a separate process for each of them?

withinboredom avatar Jun 14 '24 05:06 withinboredom

I'm not OP but I suspect that the ports don't need to be different - they just happened to implement it that way while figuring things out. Assuming that they could all use the same port, the question still remains - can you have multiple sites in a frankenphp binary?

nickchomey avatar Jun 15 '24 15:06 nickchomey

Yes. It's just a Caddy module, all Caddy features are supported.

dunglas avatar Jun 15 '24 22:06 dunglas

@te-deum see the Caddyfile that FrankenPHP uses: https://github.com/dunglas/frankenphp/blob/main/caddy/frankenphp/Caddyfile

You can use the environment variable CADDY_EXTRA_CONFIG to inject what you want. Or mount your own Caddyfile.

rikwillems avatar Jul 01 '24 14:07 rikwillems