The problem: Java used to bundle the DejaVu fonts (via fontconfig integration), but modern headless JDK builds (especially on minimal cloud VMs like GCP's Ubuntu images) no longer pull in font packages as dependencies. ERDDAP's graphics generation hits missing fonts and either throws errors or produces ugly output.
The fix — two packages on Ubuntu/Debian:
sudo apt update
sudo apt install fontconfig fonts-dejavufontconfig alone often works because it pulls in some fonts as a dependency, but being explicit about fonts-dejavu ensures the DejaVu family (DejaVu Sans, DejaVu Serif, DejaVu Sans Mono) is definitely present — those are what ERDDAP's graph rendering expects.
After installing, you can verify the fonts are visible to the Java font subsystem:
fc-list | grep -i dejavuYou should see entries like /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf.
On RHEL/CentOS/Rocky:
sudo dnf install fontconfig dejavu-sans-fonts dejavu-serif-fonts dejavu-sans-mono-fontsOne extra step sometimes needed on headless servers — after font install, rebuild the font cache:
sudo fc-cache -f -vAnd if Tomcat was already running when you installed the fonts, restart Tomcat — the JVM caches available fonts at startup.
I apologize for the extra graphics, it was easier to just cut and paste, Well actually I should have edited all of this to make it look like I remembered all of this off the top of my head, but nah!
Try the font fix first, if that doesn’t do it then send me th proxy info and any errors you are getting.
HTH and thank Claude,
-Roy
Yes, Anubis could absolutely be causing this, and there are a few very plausible mechanisms.
What Anubis does: It sits between users and the origin service as a reverse proxy, forwarding requests once challenge conditions are met, using a JavaScript-based proof-of-work challenge. That JS challenge is the key issue here. Help Net Security
Why ERDDAP sliders are likely breaking:
ERDDAP's "Data Access Form" pages (the ones with the sliders) are heavily JavaScript-dependent. When a user first hits the site, Anubis intercepts and serves its own challenge page. Once the challenge is solved it sets a cookie and proxies through to ERDDAP. The problem is likely one or more of these:
Host and X-Forwarded-* headers it sees. If Anubis isn't passing through X-Forwarded-Host, X-Forwarded-Proto, or X-Forwarded-Portcorrectly, ERDDAP may generate broken resource URLs (pointing to the wrong port/scheme), causing JS and CSS files to 404 silently — and sliders that depend on those files break.Things to check/try:
X-Forwarded-For, X-Forwarded-Host, and X-Forwarded-Proto to ERDDAP.setup.xml, verify baseHttpsUrl and baseUrl match what users actually see in the browser (not the internal localhost:8081).localhost:8081 (bypassing Anubis entirely) to confirm it still works — that isolates whether Anubis is the culprit.The most likely culprit is missing X-Forwarded-* headers or Anubis injecting CSP headers that block ERDDAP's JavaScript. The network tab in the browser will tell the story quickly.
To view this discussion, visit https://groups.google.com/d/msgid/erddap/E9181994-CC89-4783-AAB7-56973BE242D9%40noaa.gov.