vnu-server(1)
π 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 address127.0.0.1. Your checker deployment might become unreachable unless you use thenu.validator.servlet.bind-addresssystem 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β launchvnu-serverin 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 thevnu-serverrunning 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:
trueorfalse - 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
- ubuntu stonking: vnu-server 26.8.15.1+dfsg-1 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms