deploying FrankenPHP on dokku or similar platform #1224
-
I'd like to migrate to FrankenPHP but am uncertain about how to deploy it on a single server with multiple projects. Dokku (an open-source version of heroku) works great for my purposes, I'm running it on Hetzner. I deploy each application with I'd like to move to FrankenPHP to get rid of the nginx step and take advantage of the messaging that mercure hub offers. And pre-caching, etc. I'm not a dev-ops person, so my first question is pretty basic. Does a single version of FrankenPHP run on the server, like nginx in my current dokku setup, or does each project have its own deployment of it via the Docker file? I currently do not deploy with Dockerfile on heroku, I just push the Symfony app and the server shares a bunch of services (postgres, php, rabbitmq, libretranslate, redis, meilisearch, nginx) Are there any solution (like Dokku) that work particularly well with FrankenPHP? Currently most of my projects are Symfony, though I install some management applications on the server, like the rabbitmq-admin, meilisearch admin, etc. My dokku server is running Ubuntu 22.04LTS, for 2025 I'd like to update to 24.04LTS, so If figured this would be a good time to address using FrankenPHP instead. We're a tiny non-profit with no employees and personal funding, I occasionally use contractors for things like dev-ops and dokku installation, so ideally I'm looking a low-cost, easy to maintain solution. The websites themselves are mostly open-source demos of various Symfony bundles, e.g. https://barcode-demo.survos.com/ |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
As usual, "it depends". If your projects can all be the same user who owns the files and you don't need any kind of OS-level isolation, then it can all be one process. If you need isolation (different OS users, etc) then it will need to be multiple processes. You can also (pretty easily) set up pure Caddy as a regular reverse-proxy to replace nginx -- which I'd recommend; in my tests, Caddy is 4x faster than nginx for reverse-proxying; but then again, it isn't always about speed... sometimes it is better to use what you are most comfortable with. It really just depends. It's software, so virtually anything is possible if you want it. |
Beta Was this translation helpful? Give feedback.
As usual, "it depends".
If your projects can all be the same user who owns the files and you don't need any kind of OS-level isolation, then it can all be one process. If you need isolation (different OS users, etc) then it will need to be multiple processes. You can also (pretty easily) set up pure Caddy as a regular reverse-proxy to replace nginx -- which I'd recommend; in my tests, Caddy is 4x faster than nginx for reverse-proxying; but then again, it isn't always about speed... sometimes it is better to use what you are most comfortable with.
It really just depends. It's software, so virtually anything is possible if you want it.