Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

june-webserver

Package Overview
Dependencies
Maintainers
0
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

june-webserver

JuNe WebServer ultra-lightweight HTTP or HTTPS server to run HTML projects and for development with HMR

  • 2.1.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
0
Created
Source

JuNe WebServer

JuNe WebServer is a ultra-lightweight Node.js HTTP / HTTPS server to run HTML projects. And for development with Hot Module Replacement (HMR) to automatically update the page when a change occurs (using WebSockets).

  • Creates a HTTP or HTTPS server (IPv4 / IPv6).
  • Serves the files included in the folder.
  • All main MIME types supported.
  • Checks index files to load as default in folders.
  • Monitors files changes in folder and subfolders (dev mode).
  • Opens default browser to show the webpage (dev mode).
  • Support for HTTP/2.
  • Detects if SSL certificates are renewed (different datetime) and restarts automatically.
  • Binaries compiled (x64 bits) for: 🐧Linux, 🪟 Windows and 🍎MacOS.
  • Just 1 file and 7 Kb.

7 Kb NPM Downloads

👉 JuNe Server was developed initially for JavaScript Framework JuNe PaulaJS

Author

Eduardo Ruiz <eruiz@dataclick.es>

JuNe / JUst NEeded Philosophy

  1. Source code using less code as possible So you can understand code and find bugs easier.
  2. Few and optimized lines is better Elegant design.
  3. Avoid external dependencies abuse/bloated, and possible third-party bugs Less files size, better and faster to the interpreter.
  4. Clear and useful documentation with examples and without verbose Get to the point.
  5. Avoid showing unsolicited popups, notifications or messages in frontend For better User eXperience.
  6. Simple UI, without many menus/options and with few clicks to get to sites.
  7. Consequences of having a lot of code (and for simple things): Having to work and search through many files and folders with a lot of wasted time, successive errors due to missing unknown files, madness to move a code to another project, errors due to recursive dependencies difficult to locate, complexity or impossibility to migrate to new versions, unfeasibility to follow the trace with so much code, risk of new errors if the functionality is extended, problems not seen at the first sight, general slowness in the whole development due to excessive and unnecessary code.

Installation

The best way is to install JuNe WebServer globally to run wherever you want with npm install -g june-webserver Then run with webserver [parameters]

...or if local installation node webserver [parameters] / npm start (only to use default parameters).

Running from binaries (x64 bits)

You can also download compiled binaries: 🐧Linux (20 Mb), 🪟 Windows (17 Mb) or 🍎MacOS (20 Mb).

Parameters

Passed as parameter (prefixed with hyphen) on command line, or an array object on class creation.

ObjectDefinitionRequiredDefaultSample
urlURL (and port) for runninghttp://localhost:8180-
folderWeb project folderCurrent Work Directory-
certSSL cert file path for HTTPS--cert.pem
keySSL key file path for HTTPS--key.pem
http2Use HTTP/2 (certs required)-01
indexIndex files to scan in folders default (sep by space)-index.html index.htm-
if404Returns the specified file if path does not exist--index.html
devDevelopment mode-false1
hmrHMR Port in Dev mode-30795-
script(only in Dev mode) Optional code (instead reload) to run when update-location.reload()-

Set -dev 1 for activate development mode.

For development mode:

  • <head> tag must exist in HTML files, then JuNe WebServer adds a JavaScript code with WebSockets to check for changes and reload if necessary.
  • script Custom JavaScript code to run on project update or location.reload()

Projects with process in a file

Some projects process paths or HTML files internally in a single file, usually index.html such as JavaScript frameworks with routing system. So if web server does not find a path, it must send the request to that file, you can do that with parameter -if404 index.html

Allowed extensions to MIME types

html, htm, css, xml, txt, ics, png, gif, webp, avif, jpg, jpeg, ico, svg, mp3, mpg, mpeg, ogg, aac, opus, mp4, webm, js, mjs, json, pdf, zip, ttf, woff2.

Samples on command line

Basic server with path and index.html webserver -url http://localhost:8180 -folder /var/www/myproject

Load myfile.html webserver -url http://localhost:8180 -folder /var/www/myproject -index myfile.html

Load myfile.html or myindex.html webserver -url http://localhost:8180 -folder /var/www/myproject -index "myfile.html myindex.html"

JuNe PaulaJS project webserver -url http://localhost:8180 -folder /var/www/myproject -if404 index.html

Development mode webserver -url http://localhost:8180 -folder /var/www/myproject -dev 1

Development mode with JuNe PaulaJS project webserver -url http://localhost:8180 -folder /var/www/myproject -if404 index.html -dev 1

Development mode with custom script when changes webserver -url http://localhost:8180 -folder /var/www/myproject -dev 1 -script "alert('Changes')"

Sample declaring class

const webserver = WebServer({url: 'http://myapp.com:8180', folder: '/var/www/myproject'});

Certificates for SSL localhost

Generate a self-signed certificate, only for localhost development purposes. Avoid browser warning ´Potential Security Risk´ with a Certification Authority entity (CA).

  1. Create file localhost.ext (add more IPs or domains if needed):
authorityKeyIdentifier = keyid,issuer
basicConstraints = CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
IP.1 = 127.0.0.1
DNS.1 = localhost
  1. Generate certificates (for 10 years) to use on your HTTP server localhost.crt and localhost.key
openssl genrsa -out CA.key -des3 2048
openssl req -x509 -sha256 -new -nodes -days 3650 -key CA.key -out CA.pem
openssl genrsa -out localhost.crypted.key -des3 2048
openssl req -new -key localhost.crypted.key -out localhost.csr
openssl x509 -req -in localhost.csr -CA CA.pem -CAkey CA.key -CAcreateserial -days 3650 -sha256 -extfile localhost.ext -out localhost.crt
openssl rsa -in localhost.crypted.key -out localhost.key
  1. To avoid warning: Browser ➜ Certificates ➜ Import ➜ Authorities ➜ CA.pem

JuNe Development Ecosystem

Everything you need to develop your project:

Backend

Frontend

Keywords

FAQs

Package last updated on 16 Nov 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc