Sat, 06 Jan 2024 20:32:56 +0100
Added tag v1.2.2 for changeset 238de141d189
universe@221 | 1 | Installing LightPIT |
universe@221 | 2 | ------------------- |
universe@221 | 3 | |
universe@221 | 4 | 1. Install a supported database server |
universe@221 | 5 | |
universe@221 | 6 | Currently this is only Postgresql. See the Postgresql manual for installing a |
universe@221 | 7 | database instance. On most systems it is sufficient to install the server via |
universe@221 | 8 | the system package manager. |
universe@221 | 9 | |
universe@221 | 10 | 2. Execute the SQL scripts for creating the database |
universe@221 | 11 | |
universe@221 | 12 | In the setup directory you find three SQL scripts to install the database. |
universe@221 | 13 | |
universe@221 | 14 | * Modify psql_create_database.sql and choose appropriate usernames and |
universe@221 | 15 | passwords. Then execute the script as database administrator. |
universe@221 | 16 | * Log into the new database with the lightpit_dbo user and execute |
universe@221 | 17 | psql_create_tables.sql and psql_default_data.sql. |
universe@221 | 18 | |
universe@221 | 19 | 3. Configure a data source in your application servlet or servlet container |
universe@221 | 20 | |
universe@221 | 21 | You may use absolutely anything: Tomcat, TomEE, Glassfish, Payara, you name it. |
universe@254 | 22 | If it supports Servlet 6.0, JSP 3.1, and EL 5.0, you are good to go. |
universe@221 | 23 | Just make sure to configure a data source with the name jdbc/lightpit/app. |
universe@221 | 24 | If you want another name, you can configure the JNDI resource in the |
universe@221 | 25 | WEB-INF/web.xml and META-INF/context.xml files. It is highly recommended to use |
universe@221 | 26 | the lightpit_app user which has less privileges to create the data source and |
universe@221 | 27 | leave the lightpit_dbo user for the database operator. |
universe@221 | 28 | |
universe@262 | 29 | 4. Build and Deploy the WAR file of lightpit |
universe@221 | 30 | |
universe@262 | 31 | Build the WAR file with gradle. If your application server already provides |
universe@262 | 32 | the necessary runtime libraries for JSTL and PostgreSQL, leave the variable |
universe@262 | 33 | libsAreProvided = true during the build. Otherwise, set this variable to false |
universe@262 | 34 | and the libraries will be included in the WAR file. But keep in mind that some |
universe@262 | 35 | servlet containers, like Tomcat, are not so happy about this when hot redeploy- |
universe@262 | 36 | ments are performed. If you experience ClassDefNotFound errors after a hot |
universe@262 | 37 | redeployment, you should either provide the libs in your container or always |
universe@262 | 38 | restart the entire container after a redeployment. |
universe@221 | 39 | |
universe@254 | 40 | 5. Configuring a web server and authentication |
universe@221 | 41 | |
universe@221 | 42 | LightPIT can optionally detect the authenticated user. You may freely decide |
universe@221 | 43 | whether to enable authentication in your application server or put a web server |
universe@221 | 44 | in front. The latter is recommended, but keep in might that forwarding the |
universe@221 | 45 | authentication information may only work with AJP for certain servlet |
universe@221 | 46 | containers. Consult the respective manuals of the software you are using. |
universe@221 | 47 | |
universe@221 | 48 | When the remote user is picked up successfully by LightPIT, comments under |
universe@221 | 49 | issues e.g. are personalized. For this to work the authenticated username must |
universe@221 | 50 | match one of the configured usernames in LightPIT. |
universe@221 | 51 | |
universe@221 | 52 | Have fun! |