vnu-server(1)

πŸ“¦
version 26.8.15.1 Β· 2 versions
, in ubuntu stonking

πŸ’– vnu-server β€” the man page, bestie edition πŸ’–

okay so vnu-server lives in the General Commands Manual (section 1, as the girlypops do) and honestly? she's iconic. let's get into it πŸ’…


✨ NAME ✨

vnu-server β€” the standalone web server of the Nu Html Checker. that's it, that's her whole job, and she serves πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

JAVA_ARGS="-D[property=value]..." vnu-server [OPTIONS] [port]

🌸 DESCRIPTION 🌸

so vnu-server is the standalone web server of the Nu Html Checker, no cap. she runs on a built-in Jetty server (yes, Jetty, built in, she comes prepared 🫢). the second you launch her, you can just... open her in a browser at http://0.0.0.0:8888. like that's the whole entrance. main character energy fr fr.

⚠️ [!WARNING] bestie read this part, it's giving foreshadowing 😭 β€” Future checker releases will bind by default to the address 127.0.0.1. Your checker deployment might become unreachable unless you use the nu.validator.servlet.bind-address system property to bind the checker to a different address:

(like I said. foreshadowing. we'll get to that property down below, don't worry πŸ’œ)

so when you open http://0.0.0.0:8888 β€” or literally whatever URL corresponds to the nu.validator.servlet.bind-address value you're using β€” you'll see a form that's basically the twin of validator.w3.org/nu. you type in the URL of an HTML document, a CSS stylesheet, or an SVG image, and boom πŸ’₯ the results of checking that resource just show up right there in your browser. obsessed.


πŸŽ€ OPTIONS πŸŽ€

  • port β€” the port number at which the server is reachable. that's the little number that decides which door she's standing behind πŸšͺ Default: 8888
  • -r, --return-when-ready β€” launch vnu-server in the background and return when she's ready. she goes and gets set up and comes back like "ok bestie i'm ready πŸ’–"
  • -s, --stop β€” stop the vnu-server running in the background. bye bye πŸ‘‹

🌈 PROPERTIES 🌈

these are the -D system properties you pass through JAVA_ARGS. very iykyk. πŸ‘‘

πŸ’œ nu.validator.servlet.bind-address=ip_addess

  • Binds the validator service to the specified IP address.
  • default: 0.0.0.0 [causes the checker to listen on all interfaces]
  • possible values: The IP address of any network interface
  • example:
nu.validator.servlet.bind-address=127.0.0.1

πŸ’œ nu.validator.servlet.connection-timeout=timeout

  • Specifies the connection timeout.
  • default: 5000
  • possible values: number of milliseconds
  • example:
nu.validator.servlet.connection-timeout=5000

πŸ’œ nu.validator.servlet.socket-timeout=timeout

  • Specifies the socket timeout.
  • default: 5000
  • possible values: number of milliseconds
  • example:
nu.validator.servlet.socket-timeout=5000

πŸ’œ nu.validator.servlet.allow-forbidden-hosts=true_or_false

  • Allows requests to "forbidden" hosts (localhost, 127.0.0.1, etc.). scandalous πŸ”₯
  • default: false
  • possible values: true or false
  • example:
nu.validator.servlet.allow-forbidden-hosts=true

⭐ EXAMPLES ⭐

Start a vnu server accessible at http://128.30.52.73:8888.

JAVA_ARGS="-Dnu.validator.servlet.bind-address=128.30.52.73" vnu-server 8888

Start a vnu server in the background accessible at http://localhost:8899.

vnu-server --return-when-ready 8899

Stop a vnu server running in the background on port 8899.

vnu-server --stop 8899

πŸ™ˆ NOTES πŸ™ˆ

if you get a StackOverflowError error when using the checker, the move is to try adjusting the thread stack size by providing the -Xss option to java:

JAVA_ARGS="-Xss512k" vnu-server 8888

😭 she's not broken she's just overwhelmed, give her a bigger stack.


πŸ” SEE ALSO πŸ”

vnu-client(1), vnu(1) β€” the rest of the friend group, go say hi 🫢


and that's the whole page, bestie!! this one's vnu-server 26.8.15.1+dfsg, dated 2026-08-18, and that's the last line of the manual so technically we've reached the end of the group chat πŸ’– go validate something, slay, periodt βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from