Author Archives: TimL

If certbot from Let's Encrypt is not used certificates will need to be updated annually.

  • Download the signed public key from your Certificate Authorities (CA)
  • Import the signed public key into the keystore already containing the private key (and intermediate certificates if required)
keytool -import -alias noodle.domain.tld -trustcacerts -file noodlecert.crt -keystore noodle.pfx
  • Restart the Noodle service

Add the following to the Host tag in server.xml

<Context docBase="ROOT" override="true">
    <Resources cachingAllowed="true" cacheMaxSize="100000"/>
</Context>

Add the following to multiserver or intranet.bat

-Xmx1000m -Xms1000m -XX:+UseG1GC

Add the following to the Host tag in server.xml

<Context docBase="ROOT" override="true">
    <Resources cachingAllowed="false" />
</Context>

Add the following to multiserver or intranet.bat

-Xmx50m -Xms50m -XX:+UseG1GC

Wikipedia has a list. Comments on the popular options;

  • Apache - Tomcat (most popular)
  • Eclipse - Jetty (small and fast)
  • Eclipse - GlassFish (heavy)
  • Payara - Payara
  • Red Hat - WildFly / JBoss EAP

Micro services; fast start with native executables via GraalVM;

  • Red Hat - Quarkus
  • Micronaut - Micronauts

Specifications at jakarta.

To display timestamps exported from Noodle to csv files in Microsoft Excel, format the column as custom with this pattern;

yyyy-mm-dd hh:mm:ss.000

To show just the date one of these formulae can be used;

=DATE(YEAR(B2),MONTH(B2),DAY(B2))
=CONCAT(YEAR(B2),"-",MONTH(B2),"-",DAY(B2))

To show just the time one of these formulae can be used;

=TIME(HOUR(B2),MINUTE(B2),SECOND(B2))
=CONCAT(HOUR(B2),":",MINUTE(B2),":",SECOND(B2))

Like all formula the above examples can be applied to whole columns by copy pasting, dragging, or double clicking.

Note that Microsoft Excel does not respect original formatting so any save (without any edit) can convert a timestamp into a number representing seconds since epoch.

cert.sh

certbot renew --quiet --manual --preferred-challenges dns \
--manual-public-ip-logging-ok \
--manual-auth-hook cert_dns.sh \
--deploy-hook cert_deploy.sh

cert_dns.sh

ssh $DNS "nsupdate <( echo \"server 127.0.0.1
update delete _acme-challenge.$CERTBOT_DOMAIN.
update add _acme-challenge.$CERTBOT_DOMAIN. 3600 TXT $CERTBOT_VALIDATION
send
quit\" )"
sleep 10

See letsencrypt for other options.

dnf install -y epel-release
dnf install -y tar postgresql-server postgresql-contrib java-11-openjdk

#optional
dnf install -y vim tmux bc id3lib html2text p7zip-plugins libjpeg-turbo poppler-utils unzip netpbm-progs perl-Image-ExifTool
#optional manual install catdoc unrtf ffmpeg

newcfg (){
	F="$1"
	chown --reference="$F" "$F".new
	chmod --reference="$F" "$F".new
	mv -f "$F".new "$F"
}

#PostgreSQL
/usr/bin/postgresql-setup --initdb --unit postgresql
systemctl enable postgresql
TMP=/var/lib/pgsql/data/pg_hba.conf
cp $TMP $TMP.original
cat $TMP | grep -vP "^ *host.*127" > $TMP.new
echo -e "host\tall\tall\t127.0.0.1/32\tpassword" >> $TMP.new
newcfg $TMP
TMP=/var/lib/pgsql/data/postgresql.conf
cp $TMP $TMP.original
MT=$(cat /proc/meminfo | grep MemTotal | perl -pe 's/^[^ ]* *([0-9]+) *kB$/$1\/1000/g');
#java+linux=(512+256)
ECS=$(echo "($MT-(512+256))/2" | bc);
SB=$(echo "($MT-(512+256))/4" | bc);
cat $TMP | perl -pe 's/^#?(effective_cache_size)[ \t]*=[ \t]*[^ \t]+([ \t].*)?$/$1 = '$ECS'MB$2/g' \
| perl -pe 's/^#?(shared_buffers)[ \t]*=[ \t]*[^ \t]+([ \t].*)?$/$1 = '$SB'MB$2/g' \
| perl -pe 's/^#?(max_locks_per_transaction)[ \t]*=[ \t]*[^ \t]+([ \t].*)?$/$1 = 512$2/g' \
| perl -pe 's/^#?(max_connections)[ \t]*=[ \t]*[^ \t]+([ \t].*)?$/$1 = 60$2/g' \
| perl -pe 's/^#?(checkpoint_segments)[ \t]*=[ \t]*[^ \t]+([ \t].*)?$/$1 = 30$2/g' \
| perl -pe 's/^#?(log_min_duration_statement)[ \t]*=[ \t]*[^ \t]+([ \t].*)?$/$1 = 30000$2/g' \
| perl -pe 's/^#?(log_line_prefix)[ \t]*=[ \t]*[^#]+(#.*)?$/$1 = '\''%m: '\''\t\t$2/g' \
> $TMP.new
newcfg $TMP
systemctl start postgresql

#Noodle
cd /opt
tar -zxf ./Noodle.tar.gz
su postgres -c 'cd;/usr/bin/psql -d postgres -U postgres --file /opt/Noodle/init.sql' 
cd Noodle
cp noodle.service /lib/systemd/system/
systemctl enable noodle
systemctl start noodle

Other Linux Installation examples available.