Webapp to value StatoolInfos data from the StatoolInfos protocol.
Find a file
2024-08-19 00:17:27 +02:00
.settings Fixed Eclipse settings. 2024-08-13 03:05:30 +02:00
src Fixed bad path in last metrics page. 2024-08-19 00:02:10 +02:00
test/fr/devinsy/statoolinfos/web Split and huge refactoring from StatoolInfos to StatoolInfosWeb. 2024-08-09 02:01:43 +02:00
webapp Fixed web.xml file. 2024-08-13 03:05:04 +02:00
.classpath Migrated RewriteHook to AnnotationHooks. 2024-08-12 05:50:22 +02:00
.gitignore Migrated RewriteHook to AnnotationHooks. 2024-08-12 05:50:22 +02:00
.project Split and huge refactoring from StatoolInfos to StatoolInfosWeb. 2024-08-09 02:01:43 +02:00
README.md Add cache doc in README. 2024-08-19 00:17:27 +02:00
TODO Split and huge refactoring from StatoolInfos to StatoolInfosWeb. 2024-08-09 02:01:43 +02:00

StatoolInfosWeb

StatoolInfosWeb is a webapp to value the data from StatoolInfos protocol.

LICENSE

StatoolInfosWeb is released under the GNU AGPL+ license. Enjoy!

Authors:

Contributors : Angie, MrFlos, Quentin Duchemin, Fabrice61, Thomas TConstans, labecasse, Antoine Jaba, setop, Jérémy Collot, Pilou, Kepon, Laurent Sleto, Rodinux…

Cat Avatar Generator images

I am glad to use the beautiful artwork of David Revoy (http://www.peppercarrot.com).

Circle-icons

I am glad to use the generous artwork of ElegantThemes.com :

Author: Christian Pierre MOMON christian.momon@devinsy.fr

License: Creative Commons CC BY-SA last version.

Other stuff

License of other stuff:

  • csv-logo.svg, json-logo.svg, ods-icon.svg:
    • Author: Christian P. Momon
    • License: CC BY-SA 3+.
  • other: without any specific information, default license of images is CC BY-SA 3+.

DOCUMENTATION

Read CONCEPT.md and ONTOLOGY.md files.

Requirements

  • Java 17
  • Eclipse 4.29 (2023-09).

INSTALL

Requirements

Install Java :

apt-get install openjdk-17-jre-headless

Download the last release: https://forge.devinsy.fr/statool/statoolinfosweb/releases

Apache Web Server

Add a JK section:

        # Configure du mod-jk.
        JkUnMount /.well-known/statoolinfos/* ajp13_worker
        JkUnMount /.well-known/acme-challenge/* ajp13_worker
        JkMount /* ajp13_worker

Enable the JK module:

a2enmod jk

Tomcat Server

Create a dedicated directory:

mkdir /srv/infos.mydomain.eu/

Create a log configuration file:

cd /srv/infos.mydomain.eu/
wget https://forge.devinsy.fr/statool/statoolinfosweb/src/branch/main/webapp/WEB-INF/log4j2.properties

Edit the /srv/infos.mydomain.eu/log4j2.properties:

appender.logfile.fileName = /var/log/tomcat10/statoolinfosweb.log
appender.logfile.filePattern = /var/log/tomcat10/statoolinfosweb-%i.log.gz

Create a directory dedicated to webapps:

mkdir /var/log/tomcat10# cd /var/lib/tomcat10/webapps/statoolinfoweb
cd /srv/infos.mydomain.eu/
ln -s /var/log/tomcat10# cd /var/lib/tomcat10/webapps/statoolinfoweb webapps

Put the StatoolInfosWeb WAR file in /srv/infos.mydomain.eu/ and create a link into the webapps directory:

cd /srv/infos.mydomain.eu/webapps/
ln -s /srv/infos.mydomain.eu/SIW.ar ROOT.war

Create a context file:

cd /etc/tomcat10/Catalina
mkdir infos.mydomain.eu
cd infos.mydomain.eu
wget https://forge.devinsy.fr/statool/statoolinfosweb/src/branch/main/webapp/META-INF/context.xml  -o ROOT.xml

Edit it:

<Environment name="kiss4web.environment.name" value="PROD" type="java.lang.String" override="true"/>
<Environment name="kiss4web.website.url" value="https://infos.mydomain.eu/" type="java.lang.String" override="true"/>
<Environment name="kiss4web.log4j2.path" value="/srv/infos.mydomain.eu/log4j2.properties" type="java.lang.String" override="true"/>
<Environment name="statoosinfosweb.configuration.file" value="/srv/statoolinfos/conf/mydomain.eu.conf" type="java.lang.String" override="true"/>

Add a dedicated host section in /etc/tomcat10/server.xml:

<Host name="infos.libre-service.eu"  appBase="webapps/infoslibreserviceeu"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="infos.libre-service.eu-access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>

StatoolInfos

The cache directory must be readable by Tomcat.

About page caching

The web pages are put in a HTML cache so they are not build again at each request.

The HTML cache is automatically clear when the data directory is modified. The reload is quick.

However, the organizations and services metrics pages are in cache. Just because the combinatorial is too large!

Example:

  • (Summary,Generic,Specific,Web) x (Month, Weeks) x (ALL, last months, year1-year4) = 48 pages by item
  • 100 organizations + 300 services = 400 items
  • 400 items x 48 pages => ~20 000 pages
  • 200kB/page => 4GB in memory

Metrics pages are so numerous than they have to build on demand.