3.0.3 • Published 6 years ago

pico-static-server v3.0.3

Weekly downloads
7
License
MIT
Repository
github
Last release
6 years ago

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.