Skip to content

Tiny yet fully functional functional Node.js static files server with zero dependencies written with ES6.

License

Notifications You must be signed in to change notification settings

udivankin/pico-static-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pico-static-server

Tiny yet fully functional Node.js zero-dependencies static files server with HTTPS support.

Install

Via npm:

npm install --save pico-static-server

Example

You can start right away by running

node ./examples/pico-http-server.js

assuming you've put your content into ./examples/static/ folder.

HTTPS example requires you to generate SSL cerificates first: Generate 2048-bit RSA private key and remove the password from generated key

openssl genrsa -des3 -passout pass:x -out localhost.pem 2048 && openssl rsa -passin pass:x -in localhost.pem -out localhost.key && rm localhost.pem

Generate a Certificate Signing Request (CSR)

openssl req -new -key localhost.key -out localhost.csr

Generate a self-signed certificate that is valid for 365 days with sha256 hash and remove CSR

openssl x509 -req -sha256 -days 365 -in localhost.csr -signkey localhost.key -out localhost.crt && rm localhost.csr

Then install generated certificate in system, mark as trusted and you are ready:

node ./examples/pico-https-server.js

Usage

You may want to create your own static HTTP server:

  const createServer = require('pico-static-server');

  const staticServer = createServer({
    defaultFile: 'index.html',  // defaults to 'index.html'
    staticPath: './static',     // defaults to './'
    port: 8080,                 // defaults to 8080
  });

or even HTTPS one:

  const createServer = require('pico-static-server');

  const staticServer = createServer({
    defaultFile: 'index.html',         // defaults to 'index.html'
    staticPath: __dirname + '/static', // defaults to './'
    port: 8080,                        // defaults to 8080
    protocol: 'https',                 // defaults to 'http'
    cert: __dirname + '/localhost.crt',
    key: __dirname + '/localhost.key',
  });

createServer() returns an instance of http.Server or https.Server to give you control over it if needed

MIT found in LICENSE file.

About

Tiny yet fully functional functional Node.js static files server with zero dependencies written with ES6.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published