Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/udivankin/pico-static-server
Tiny yet fully functional functional Node.js static files server with zero dependencies written with ES6.
https://github.com/udivankin/pico-static-server
http-server nodejs static-server
Last synced: about 2 months ago
JSON representation
Tiny yet fully functional functional Node.js static files server with zero dependencies written with ES6.
- Host: GitHub
- URL: https://github.com/udivankin/pico-static-server
- Owner: udivankin
- License: mit
- Created: 2017-09-13T12:57:42.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-07-24T09:51:12.000Z (over 6 years ago)
- Last Synced: 2024-02-22T19:20:23.609Z (11 months ago)
- Topics: http-server, nodejs, static-server
- Language: JavaScript
- Homepage:
- Size: 78.1 KB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Pico-static-server
Tiny yet fully functional Node.js zero-dependencies static files server with **HTTPS** support.### Install
Via npm:```bash
npm install --save pico-static-server
```### Example
You can start right away by running
```bash
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
```bash
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)
```bash
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
```bash
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:
```bash
node ./examples/pico-https-server.js
```### Usage
You may want to create your own static HTTP server:
```javascript
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:
```javascript
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](https://nodejs.org/api/http.html) or [https.Server](https://nodejs.org/api/https.html) to give you control over it if needed
MIT found in `LICENSE` file.