/serial-server

Simple serial port server

Primary LanguageJavaScriptMIT LicenseMIT

This tool allows you to share/access your serial terminal over the internet.
Based on xterm.js, localtunnel.

Works on: Linux, Windows, MacOS

Features:

  • Automatic tunneling from local machine to a public-accessible link
  • Multi-user access
  • Simple password-based authentication (with multiple credentials)
  • Read-only access for specific users
  • ANSI escape codes support: colors, mouse, window resize, window title
  • Bonus: share your OS shell. Just specify shell instead of serial port

Example

$ serial-server /dev/ttyACM0 --baud=115200 --auth=vova:MyPaSS --tunnel=vsh-device01
Server listening on 0.0.0.0:5123
Preparing your tunnel...
Opened port /dev/ttyACM0,115200
Tunnel link: https://vsh-device01.localtunnel.me

Visit the provided tunnel link. It will ask for the password, then present you with a remote terminal:

examples

Installation

npm i -g https://github.com/vshymanskyy/serial-server.git

Usage

serial-server <port> [options]

Options:
  --version               Show version number                                              [boolean]
  --bind, --addr          Server endpoint address                          [default: "0.0.0.0:5123"]
  --baudRate, -b, --baud                                                  [number] [default: 115200]
  --dataBits                                                      [choices: 8, 7, 6, 5] [default: 8]
  --stopBits                                                            [choices: 1, 2] [default: 1]
  --parity                       [choices: "none", "even", "mark", "odd", "space"] [default: "none"]
  --auth                  Password protection. Can add multiple users (user:pass)            [array]
  --readonly, --ro        List of users with readonly access (comma-separated)
  --tunnel                Create tunnel link automatically                                  [string]
  --config                Path to JSON config file
  -h, --help              Show help                                                        [boolean]

Copyright 2019 Volodymyr Shymanskyy

More examples

Start OS shell server, allow multiple guests to connect with read-only access:

$ serial-server shell --auth=vova:MyPaSS --auth=guest --readonly=guest --tunnel=vsh-shell

Non-authenticated access is always provided in read-only mode:

$ serial-server /dev/ttyACM0 --tunnel=vsh-device01