JanssenProject / jans

An open source enterprise digital identity platform for CIAM or workforce... Janssen is a distribution of standards-based, developer friendly, components that are engineered to work together in any cloud. #OAuth #OpenID #FIDO
https://docs.jans.io
Apache License 2.0
460 stars 73 forks source link

feat(jans-setup): add option to allow install all components into one jetty container #5965

Open yurem opened 1 year ago

yurem commented 1 year ago

During install setup should ask question Run all services in one container? Default value should be n If admin enter y setup should do next:

  1. Create single jetty instance jans-server (we should use jans-auth instance as template for this.
  2. Deploy all war files and conext.xml files into jans-server\webapps
  3. Update https_apache.conf to use right port on which jans-server will listen
  4. Add and configure jans-server service to run automatically on server startup.
  5. Add setup option to allow use this deployment model in automatic tests.

No other changes are needed. All services should work well under single jetty instance.

devrimyatar commented 1 year ago

@yurem Three questions:

  1. What about jetty modules? Some services needs different modules. See modules attributes of services https://github.com/JanssenProject/jans/blob/main/jans-linux-setup/jans_setup/setup_app/data/jetty_app_configuration.json
  2. How to adjust memory allocation?
  3. jans-config-api has two files under /opt/jans/jetty/jans-config-api/custom/config will it cause any issue for other services? image
yurem commented 1 year ago

I think we can use list of modules which we uses for jans-auth: https://github.com/JanssenProject/jans/blob/main/jans-linux-setup/jans_setup/setup_app/data/jetty_app_configuration.json#L9

yes, we need to add additional folder /custom/<server-context>/ to avoid mixing customizations. We will update code to check if there is this folder

Memory we should allocate all for this single instance which we allocate for jetty.

nynymike commented 1 year ago

I think this is a great option, because it's better for RAM usage, if that's the main constraint. The impact is that all jetty logs will be combined, which could cause challenges. Also, for security I don't think its as good. The OpenID private key used for signing is connected, and can be accessed even from a different application, like the end user facing Casa website.