<p>Host a webpage, run server-side JavaScript, use mods to expand server functionality, or use it as a forward or reverse proxy — all in SVR.JS! SVR.JS is a web server that runs on top of Node.JS, thus enabling server-side JavaScript on webpages. SVR.JS also has an integrated log viewer, log highlighter, and user management tool. SVR.JS can run not only on Node.JS but also in Bun (experimental support).</p>
<p>You don't need to worry about <ahref="https://www.gnu.org/proprietary/proprietary.html">proprietary malware</a>, "You may be a victim of software counterfeiting." windows (but you can <ahref="/invoke500.svr?aprilfools">visit it</a>), crashes caused by non-genuine versions of server software, or <ahref="https://www.gnu.org/proprietary/proprietary-back-doors.html">universal backdoors planted by Big Tech</a>. SVR.JS is licensed under the MIT (or X11) license, and it's open-source, so there are no secretly planted backdoors. SVR.JS is running on Node.JS, which is also free software (also MIT/X11 license). We have a <ahref="https://git.svrjs.org">Git repository</a>, so you can <ahref="/contribute">contribute to SVR.JS</a>! </p>
<p>SVR.JS is running on Node.JS, which is a JavaScript runtime using event-driven infrastructure, so SVR.JS is handling I/O-intensive operations pretty well. Additionally, SVR.JS is by default running in clusters, so it withstands more requests, server process hang-ups, and worker crashes.</p>
<p>We are putting the cybersecurity of your websites first. SVR.JS has a built-in URL sanitizer to prevent path traversal, protects sensitive data from brute force attacks on HTTP authentication by default, and forbids website visitors' access to sensitive configuration files. You can also configure SVR.JS to hide server-side JavaScript files and hide the server version. This way, bad actors will have a pretty hard time hacking your site (unless you're using vulnerable mods or vulnerable server-side JavaScript)! SVR.JS also has a built-in block list, so you can simply block those bad actors that might take control over your server. You can check <ahref="/vulnerabilities">which versions of SVR.JS are vulnerable</a>. </p>
<p>You can configure SVR.JS through <i>config.json</i> file. You can also install mods and use server-side JavaScript! Focus on developing JavaScript web applications with SVR.JS! </p>
<b>Your browser is obsolete and doesn't support HTML5 video.</b>
<ahref="/vid/svrjs-in-action.mp4">Watch the video</a>
</video>
<p>
<i>This video shows the process of developing a basic web application showing user's IP address using Node.JS and the SVR.JS API. HTML, CSS, and server-side JavaScript files are all in the public domain.</i>
<sup>*</sup>Apache httpd was included as a non-Node.JS-based reference <br/> Comparison done on August 2023. Node.JS-based servers are compared based on source code analysis from corresponding GitHub repositories (with exception of SVR.JS, which has self-hosted git repository). </small>
<b>As you can see, SVR.JS is more similar in terms of functionality to traditional HTTP servers, like Apache httpd, and it's more advanced than some other Node.JS-based web servers.</b> You can deploy your JavaScript web applications and use many features offered by traditional web servers without using any reverse proxy (using a reverse proxy, like NGINX or Apache httpd is common when deploying Node.JS-based web apps).
<p>A web server is computer software that accepts HTTP requests and serves websites. Web servers can also be underlying hardware running web server software.</p>
<h3>What is SVR.JS?</h3>
<p>SVR.JS is web server software running on Node.JS that can host both static and dynamic content. With additional mods, SVR.JS can be used for different types of dynamic content and can even be used as a forward or reverse proxy. SVR.JS is licensed under a permissive MIT/X11 license.</p>
<p>Someone in 2018 wanted to create a website, but he didn't know about setting up typical server software like Apache httpd, NGINX, or IIS... So he created his own web server in Node.JS to serve his website! And he saved it in a file called <i>svr.js</i>. Since then, this web server has been gradually turned from a web server intended for one website into a general-purpose web server. And this is now what SVR.JS is today! You can read more about the recent history of SVR.JS by deciphering <i><ahref="/zsoiebook.svr">The Book of ZSOiE</a></i>!</p>
<p>SVR.JS got its name from the original name of the server script: <i>svr.js</i>, one of many generic file names for a server written in JavaScript. </p>
<h3>What is Node.JS?</h3>
<p>Node.JS is an asynchronous event-driven JavaScript runtime built on Chromium's V8 engine. Node.JS is designed to build scalable network applications.</p>
<h3>How can I use SVR.JS?</h3>
<p>You can <ahref="/docs">read its documentation</a> to learn how to use the SVR.JS web server. </p>