npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

telebit

v0.20.6

Published

Break out of localhost. Connect to any device from anywhere over any tcp port or securely in a browser. A secure tunnel. A poor man's reverse VPN.

Downloads

1,113

Readme

Telebit™ Remote

Because friends don't let friends localhost™

| Sponsored by ppl | Telebit Remote | Telebit Relay | sclient |

Break out of localhost.

If you need to get bits from here to there, Telebit gets the job done.

Install Telebit Remote on any device - your laptop, raspberry pi, whatever - and now you can access that device from anywhere, even securely in a web browser.

How does it work? It's a net server that uses a relay to allow multiplexed incoming connections on any external port.

Features

  • [x] Show your mom the web app you're working on
  • [x] Access your Raspberry Pi from behind a firewall
  • [x] Watch Netflix without region restrictions while traveling
  • [x] SSH over HTTPS on networks with restricted ports or protocols
  • [x] Access your wife's laptop while she's on a flight

Examples

You do this:

curl -fsSL https://get.telebit.io | bash

You get this:

~/telebit http 3000
> Forwarding lucky-duck-42.telebit.cloud => localhost:3000

~/telebit http ~/sites/example.com/
> Serving ~/sites/example.com/ as lucky-duck-42.telebit.cloud

And this:

~/telebit tcp 5050
> Forwarding telebit.cloud:1337 => localhost:5050

And even this:

~/telebit ssh auto
> Forwarding ssh telebit.cloud -p 1337 => localhost:22
> Forwarding ssh+https (openssl proxy) => localhost:22

No privileged ports. No sudo. End-to-end encryption.

Fastest way to test a site, share a file, and pair over ssh.

Install

Mac & Linux

Open Terminal and run this install script:

curl -fsSL https://get.telebit.io | bash

What does the installer do?

  • install Telebit Remote to ~/Applications/telebit/
  • symlink the executable to ~/telebit for convenience
  • create the appropriate system launcher file
    • /etc/systemd/system/telebit.service
    • ~/Library/LaunchAgents/cloud.telebit.remote.plist
  • create local user config
    • ~/.config/telebit/telebit.yml
    • ~/.local/share/telebit

Of course, feel free to inspect it before you run it: curl -fsSL https://get.telebit.io

You can customize the installation:

export NODEJS_VER=v10.2                   # v10.2 is tested working, but we can test other versions
export TELEBIT_VERSION=master             # git tag or branch to install from
export TELEBIT_USERSPACE=no               # install as a system service (launchd, systemd only)
export TELEBIT_PATH=/opt/telebit
export TELEBIT_USER=telebit
export TELEBIT_GROUP=telebit
curl -fsSL https://get.telebit.io/ | bash

That will change the bundled version of node.js is bundled with Telebit Relay and the path to which Telebit Relay installs.

Windows & Node.js

  1. Install node.js
  2. Open Node.js
  3. Run the command npm install -g telebit
  4. Copy the example daemon conifg to your user folder .config/telebit/telebitd.yml (such as /Users/John/.config/telebit/telebitd.yml)
  5. Copy the example remote conifg to your user folder .config/telebit/telebit.yml (such as /Users/John/.config/telebit/telebit.yml)
  6. Change the email address
  7. Run npx telebit init and follow the instructions
  8. Run npx telebit list

Note: Use node.js v10.2.1

(there are specific bugs in each of v8.x, v9.x, v10.0, and v10.3 that each cause telebit to crash)

Remote Usage

# commands
telebit <command>

# domain and port control
telebit <service> <handler> [servername] [options ...]

Examples:

telebit status                          # whether enabled or disabled
telebit enable                          # disallow incoming connections
telebit disable                         # allow incoming connections
telebit restart                         # kill daemon and allow system launcher to restart it

telebit list                            # list rules for servernames and ports

                       ################
                       #     HTTP     #
                       ################

telebit http <handler> [servername] [opts]

telebit http none                       # remove all https handlers
telebit http 3000                       # forward all https traffic to port 3000
telebit http /module/path               # load a node module to handle all https traffic

telebit http none example.com           # remove https handler from example.com
telebit http 3001 example.com           # forward https traffic for example.com to port 3001
telebit http /module/path example.com   # forward https traffic for example.com to port 3001


                       ################
                       #     TCP      #
                       ################

telebit tcp <handler> [servername] [opts]

telebit tcp none                        # remove all tcp handlers
telebit tcp 5050                        # forward all tcp to port 5050
telebit tcp /module/path                # handle all tcp with a node module

telebit tcp none 6565                   # remove tcp handler from external port 6565
telebit tcp 5050 6565                   # forward external port 6565 to local 5050
telebit tcp /module/path 6565           # handle external port 6565 with a node module

telebit ssh disable                     # disable ssh access
telebit ssh 22                          # port-forward all ssh connections to port 22

telebit save                            # save http and tcp configuration changes

Using SSH

SSH over HTTPS

ssh -o ProxyCommand='openssl s_client -connect %h:443 -servername %h -quiet' lucky-duck-42.telebit.cloud

SSH over non-standard port

ssh lucky-duck-42.telebit.cloud -p 3031

Daemon Usage (non-global)

~/Applications/bin/node ~/Applications/bin/telebitd.js --config ~/.config/telebit/telebitd.yml

Options

~/.config/telebit/telebitd.yml:

email: '[email protected]'          # must be valid (for certificate recovery and security alerts)
agree_tos: true                   # agree to the Telebit, Greenlock, and Let's Encrypt TOSes
relay: wss://telebit.cloud        # a Telebit Relay instance
community_member: true            # receive infrequent relevant but non-critical updates
telemetry: true                   # contribute to project telemetric data
secret: ''                        # Secret with which to sign Tokens for authorization
#token: ''                         # A signed Token for authorization
ssh_auto: 22                      # forward ssh-looking packets, from any connection, to port 22
servernames:                      # servernames that will be forwarded here
  example.com: {}

Choosing A Relay

You can create a free or paid account at https://telebit.cloud or you can run Telebit Relay open source on a VPS (Vultr, Digital Ocean) or your Raspberry Pi at home (with port-forwarding).

Only connect to Telebit Relays that you trust.

Check Logs

Linux:

SYSTEMD_LOG_LEVEL=debug journalctl -xef --user-unit=telebit

macOS:

tail -f ~/local/share/telebit/var/log/info.log
tail -f ~/.local/share/telebit/var/log/error.log

Uninstall

Linux:

systemctl --user disable telebit; systemctl --user stop telebit
rm -f ~/.config/systemd/user/telebit.service
rm -rf ~/telebit ~/Applications/telebit
rm -rf ~/.config/telebit ~/.local/share/telebit

macOS:

launchctl unload -w ~/Library/LaunchAgents/cloud.telebit.remote.plist
rm -f ~/Library/LaunchAgents/cloud.telebit.remote.plist
rm -rf ~/telebit ~/Applications/telebit
rm -rf ~/.config/telebit ~/.local/share/telebit

Browser Library

This is implemented with websockets, so you should be able to

LICENSE

Copyright 2016-2018+ AJ ONeal