This RFC proposes to switch the production application server for Foreman to use Puma and Apache to reverse proxy to the Puma server by default. This has the following benefits:
- Aligns production and development environments
- Aligns proposed container deployment methods with standard service deployment
- Provides easier path to running Foreman as a systemd container
- Separates SSL handling and load balancing from application server
As part of the design, changes will need to be made to the way puppet-foreman handles deployment. Some of the open questions that will heavily influence this design:
- Do we keep Passenger as an option or keep opinionated and stick to Puma + Apache?
- Do we allow switching between Apache + Passenger and Puma/Systemd + Apache for deployments?
- Do we make the choice of application server configurable (e.g. use of gunicorn, etc.) ?