tlsd
This is a node.js based webserver.
Features
- SSL/TLS magically via Greenlock
- Websockets built in
- Standardised Websockets/RPC protocol for front/back end communcations
- Utility command 'tlsd'
- Browser reload on src changes
Installing
There are 2 ways to use this:
- Install globally as CLI command "tlsd"
- Install locally to an existing project directory and executed with "npx tlsd"
Install Globally
npm install -g tlsd
You should how have a CLI command "tlsd"
tlsd
This way lets you run a project without having to have tlsd included in it.
Install Locally
npm install tlsd
The tlsd module should now be added to your local package.json file and you can run it this way:
npx tlsd
This way you can just use it to serve your local project in dev or production mode.
tlsd init
Creates empty scaffolding files for a project:
tlsd init my_project
This can then be tested by starting the server:
tlsd run dev my_project 12345 3
And then browsing to "http://localhost:12345". You should see the pages being delivered and a websocket connecting being established.
tlsd run dev
In dev mode, tlsd runs a plain HTTP server without TLS/SSL security. This is for local (your computer) development:
tlsd root_dir port_num log_level
All arguments are required
tlsd domain
Adds a domain to Greenlock for production.
tlsd domain example.com
tlsd version
Displays the current version of tlsd
Production Mode
In production mode, you must specify the dir containing links/dirs for domains to serve it will run on HTTP on 80 (redirecting to 443), HTTPS on 443, and magically generate certs and serve secure sites like nodes:
DOMAINS_ROOT=./my_domains MAINTAINER_EMAIL=foo@bar.com VERBOSITY=4 node tlsd.js
All env vars and arguments are required.
You must also add your domain to greenlock before running nodes or it won't be recognzied:
npx greenlock add --subject example.com --altnames example.com,www.example.com
Production mode serves files with Letsencrypt SSL certs magically.
The browser reload feature does not operate in production mode.