4.6 KiB
StatoolInfosWeb
StatoolInfosWeb is a webapp to value the data from StatoolInfos protocol.
LICENSE
StatoolInfosWeb is released under the GNU AGPL+ license. Enjoy!
Authors:
- Christian Pierre MOMON christian.momon@devinsy.fr
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).
- Graphics CC-BY http://creativecommons.org/licenses/by/4.0/
- Service: https://www.peppercarrot.com/extras/html/2016_cat-generator/
- Source: https://framagit.org/Deevad/cat-avatar-generator
- Originally inspired of the code for "MonsterID" by Andreas Gohr http://www.splitbrain.org/go/monsterid.
Circle-icons
I am glad to use the generous artwork of ElegantThemes.com :
- https://www.elegantthemes.com/blog/freebie-of-the-week/beautiful-flat-icons-for-free
- "These icons are completely free and Open Source under the GPL".
Logo
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 "%r" %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.