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;


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


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.

certbot renew --quiet --manual --preferred-challenges dns \
--manual-public-ip-logging-ok \
--manual-auth-hook \

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

See letsencrypt for other options.

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

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 (){
	chown --reference="$F" "$F".new
	chmod --reference="$F" "$F".new
	mv -f "$F".new "$F"

/usr/bin/postgresql-setup --initdb --unit postgresql
systemctl enable postgresql
cp $TMP $TMP.original
cat $TMP | grep -vP "^ *host.*127" > $
echo -e "host\tall\tall\t127.0.0.1/32\tpassword" >> $
newcfg $TMP
cp $TMP $TMP.original
MT=$(cat /proc/meminfo | grep MemTotal | perl -pe 's/^[^ ]* *([0-9]+) *kB$/$1\/1000/g');
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' \
> $
newcfg $TMP
systemctl start postgresql

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.

Noodle respects requests for dark mode with the "prefers-color-scheme:dark" CSS that can be customized.

Web Browsers respect requests for dark mode by the Operating System, and can be customized:

  • Firefox:
    • about:config > ui.systemUsesDarkTheme=1
  • Firefox(Android):
    • Settings > Customize > Dark
  • Chrome(Desktop):
    • chrome://flags > "Force Dark Mode for Web Contents"
    • Note that as of v85 Chrome "prefers-color-scheme" is not supported, instead chrome will attempt to write it's own CSS for the page, often causing breakage.
  • Chrome(Android):
    • Settings > Themes > Dark

Operating Systems can be customized to use dark mode:

  • Windows:
    • Settings > Personalization > Colors > Choose your color > Dark
  • MacOS:
    • Apple > System Preferences, General, Appearance > Dark
  • Gnome(Linux):
    • Settings > Appearance > Dark
  • Android(Linux):
    • Settings > Display > Dark theme
  • iOS:
    • Settings > Display & Brightness > Dark

Other sites that support dark mode as of 2020:

Any user with access to system tools can reset the admin password with a web browser.

Any person with access to the SQL server can change the admin password to another users password

select object_id, username, password from users where username = 'admin' or username = '$ME';
update users set password = '$PASS' where object_id = '$ID';

For example

update users set password = 'P3b*cH.5fOBTJl5ELM)W' where username = 'admin';

  • Name of Product/Version: Noodle / 7.08.11
  • Report Date: 2020-08-10
  • Product Description: Intranet Software
  • Automated Testing.
  • Contact Information:

Level A


Conformance Level 

Remarks and Explanations

1.1.1 Non-text Content (Level A)


All buttons have descriptive title attributes or text content

1.2.1 Audio-only and Video-only (Prerecorded) (Level A)

SupportsNotifications use Operating System visual alters to complement audio alters. Audio alerts can be disabled.

1.2.2 Captions (Prerecorded) (Level A)

Not ApplicableNo audio/video content is included, users are responsible for making their own content compliant. Means are available for pre-recorded and live descriptions, subtitles, and sign language content.

1.2.3 Audio Description or Media Alternative (Prerecorded) (Level A)

Not Applicable"

1.3.1 Info and Relationships (Level A)

SupportsWith multiple text application views, and APIs data relationships are programmatically determinable.

1.3.2 Meaningful Sequence (Level A)


1.3.3 Sensory Characteristics  (Level A)

SupportsSee 1.1.1 Remarks.

1.4.1 Use of Color (Level A)

SupportsThe default style sheet is high contrast. Color indicators are accompanied by icons and text. Color indicators can be disabled. User created content has automatic contrast assist (posters). Maximum contrast styles can be achieved with custom style sheets or options.

1.4.2 Audio Control (Level A)

SupportsAudio alerts can be disabled. User uploaded media has default controls including volume. (As of 2020 individual web-cam/screen-share volume is supported in Chrome not Firefox)

2.1.1 Keyboard (Level A)

SupportsAll actions are achievable with [shift]tab,space,return.

2.1.2 No Keyboard Trap (Level A)

SupportsNo Keyboard Traps are present.

2.1.4 Character Key Shortcuts (Level A 2.1 only)


No Key Shortcuts are defined. Default shortcuts (copy/paste) are not disabled.

2.2.1 Timing Adjustable (Level A)

SupportsLogin session time limit can be changed and disabled. TOTP has a fixed limit but is optional.

2.2.2 Pause, Stop, Hide (Level A)

SupportsThere is no moving, scrolling information. Blinking, and auto-updating information can be stopped and scrolled respectively, and is only used where necessary in optional live feeds.

2.3.1 Three Flashes or Below Threshold (Level A)

SupportsTitle bar notification flash can be disabled and updates every 1/2 a second when enabled.

2.4.1 Bypass Blocks (Level A)

SupportsContent Blocks are not repeated.

2.4.2 Page Titled (Level A)

SupportsMeaningful Titles are displayed

2.4.3 Focus Order (Level A)

Supportsnavigation sequences does not affect meaning.

2.4.4 Link Purpose (In Context) (Level A)

SupportsLink purpose can be equally determined from context programmatically and generally.

2.5.1 Pointer Gestures (Level A 2.1 only)


Multi-point and path-based gestures have alternatives (portlet order via drag and admin down button, zoom via pinch and tap and click). All can be disabled.

2.5.2 Pointer Cancellation (Level A 2.1 only)


All persistent actions have an Abort option and or undo action.All actions that use a down event by requirement (drag and drop) have alternatives (order and upload buttons).

2.5.3 Label in Name (Level A 2.1 only)


All user interface components contain text by which software can identify it to the user.

2.5.4 Motion Actuation (Level A 2.1 only)


See 2.5.1 Remarks.

3.1.1 Language of Page (Level A)

SupportsThe lang attribute is used on all pages.

3.2.1 On Focus (Level A)

SupportsFocus has no context change (Notifications can be suppressed on focus)

3.2.2 On Input (Level A)

SupportsSetting changes (without submit button use ) will not change context.

3.3.1 Error Identification (Level A)

SupportsOn input error detection, a text description is shown and where convenient the input focused

3.3.2 Labels or Instructions (Level A)

SupportsLabels or instructions are provided for user input, and also for user generated user input.

4.1.1 Parsing (Level A)

Supportsmarkup conforms to specification.

4.1.2 Name, Role, Value (Level A)


Level AA


Conformance Level 

Remarks and Explanations

1.2.4 Captions (Live) (Level AA)

Not ApplicableSee 1.2.2 Remarks.

1.2.5 Audio Description (Prerecorded) (Level AA)

Not Applicable"

1.3.4 Orientation (Level AA 2.1 only)


Content flows, with minimal fixed width components.

1.3.5 Identify Input Purpose (Level AA 2.1 only)


programmatic Identification of Input Purpose can be achieved with placeholders, names, and previous elements.

1.4.3 Contrast (Minimum) (Level AA)

SupportsSee 1.4.1 Remarks.

1.4.4 Resize text (Level AA)

Supports300% text size is supported on 4k screens, mobile UI uses large text by default.

1.4.5 Images of Text (Level AA)

SupportsNo images of text are used.

1.4.10 Reflow (Level AA 2.1 only)


320 pixel width is supported via the mobile and top-navigation interfaces.

1.4.11 Non-text Contrast (Level AA 2.1 only)


See 1.4.1 Remarks.

1.4.12 Text Spacing (Level AA 2.1 only)


2x default text spacing is supported via zoom, custom CSS, or plugins.

1.4.13 Content on Hover or Focus (Level AA 2.1 only)


Custom tooltips are inlined when no pointer is detected or by option. selection and focus are supported. q will dismiss.

2.4.5 Multiple Ways (Level AA)

SupportsWith multiple application views, content views, and navigation options, in addition to quick links, external links, and custom user links Multiple Ways are supported.

2.4.6 Headings and Labels (Level AA)

SupportsStandardized Headings and Labels are used to make page purpose intuitive and programmatically identifiable.

2.4.7 Focus Visible (Level AA)

SupportsKeyboard focus is visible and adjustable with custom CSS (a:focus-visible,input:focus-visible{border:solid 5px red})

3.1.2 Language of Parts (Level AA)

SupportsPart language can differ from page language only via user input and that accepts tagging for programmatic use for the body of the content. the language of user input titles does not support direct language tags for programmatic use. A custom script can be used to tag persistent multi language features if required.

3.2.3 Consistent Navigation (Level AA)

SupportsNavigation including order is persistent (and can be customized to sort alphabetically, by date, or in a custom order)

3.2.4 Consistent Identification (Level AA)

SupportsButtons/Links of different types are identifiable by class (navigation vs persistent action)

3.3.3 Error Suggestion (Level AA)

SupportsError Suggestions are avoided by limiting input to begin with (entering text in a numeric, invalid dates, etc)

3.3.4 Error Prevention (Legal, Financial, Data) (Level AA)

SupportsLegal and Financial Data are not used, but input is reviewable, and reversible. (instant messenger can be disabled to support only reversible content), input validation is performed before submission when supported. trash/recycle bin, and remove/purge of content is confirmed.

4.1.3 Status Messages (Level AA 2.1 only)

SupportsStatus messages can be identified by class.

Level AAA


Conformance Level 

Remarks and Explanations

1.2.6 Sign Language (Prerecorded) (Level AAA)

Not ApplicableSee 1.2.2 Remarks.

1.2.7 Extended Audio Description (Prerecorded) (Level AAA)

Not Applicable"

1.2.8 Media Alternative (Prerecorded) (Level AAA)

Not Applicable"

1.2.9 Audio-only (Live) (Level AAA)

Not Applicable"

1.3.6 Identify Purpose (Level AAA 2.1 only)

SupportsUser Interface Components can be programmatically determined via attribute naming conventions.

1.4.6 Contrast (Enhanced)  (Level AAA)

SupportsSee 1.4.1 Remarks.

1.4.7 Low or No Background Audio (Level AAA)

SupportsSee 1.4.2 Remarks.

1.4.8 Visual Presentation (Level AAA)

Partially SupportsColors are user select-able. Width can be under 80 characters with the mobile view. The justify text alignment is not used. Line and paragraph spacing are default and adjustable. Text can be resized without assistive technology up to 200 percent in a way that does not require the user to scroll horizontally to read a line of text on supported screen sizes. Large Workflows on small monitors may require horizontal scrolling.

1.4.9 Images of Text (No Exception) (Level AAA)

SupportsNo images of text are used. Users are responsible for their own content selection and alternatives.

2.1.3 Keyboard (No Exception) (Level AAA)

SupportsNo timeouts on input are not imposed without customization.

2.2.3 No Timing (Level AAA)

SupportsSee 2.2.1 Remarks.

2.2.4 Interruptions (Level AAA)

SupportsInterruptions can be postponed or suppressed by the user (login obviously excepted).

2.2.5 Re-authenticating (Level AAA)

SupportsDocument editing is auto saved every keystroke to Web Browser Storage, and users are prompted to recover for convenience.

2.2.6 Timeouts (Level AAA 2.1 only)


2.3.2 Three Flashes (Level AAA)

SupportsSee 2.3.1 Remarks.

2.3.3 Animation from Interactions (Level AAA 2.1 only)

Supportsprefers-reduced-motion is respected.

2.4.8 Location (Level AAA)

Supportsbreadcrumb trails are provided.

2.4.9 Link Purpose (Link Only) (Level AAA)

SupportsSee 1.3.6 Remarks.

2.4.10 Section Headings (Level AAA)


2.5.5 Target Size (Level AAA 2.1 only)

SupportsTarget size is increased automatically when lower accuracy input is detected. Can also be forced/customized

2.5.6 Concurrent Input Mechanisms (Level AAA 2.1 only)

Supportsmultiple concurrent input types are supported.

3.1.3 Unusual Words (Level AAA)

SupportsVia select > right click > search web for. Abbreviations, idioms, and jargon are avoided.

3.1.4 Abbreviations (Level AAA)


3.1.5 Reading Level (Level AAA)

SupportsCommon words are used where long explanations of technical terms would not be required

3.1.6 Pronunciation (Level AAA)

SupportsSee 1.3.1 Remarks.

3.2.5 Change on Request (Level AAA)

SupportsSee 2.2.1 Remarks.

3.3.5 Help (Level AAA)

Partially SupportsThere are select help icons and paragraphs in some contexts for clarity.

3.3.6 Error Prevention (All) (Level AAA)

SupportsSee 3.3.4 Remarks.

The Business Continuity Plan for local installs is mostly up to the client and we provide a site export feature by which all data is converted to standard formats in a zip file to avoid vendor lock-in. We also have a HA option. and restoring from backups can be tested in a virtual machine.

Hosted instances have security measures in place and can be restored to any cloud or local environment. We maintain backup domains with multiple registries.