# Telebit™ Remote Because friends don't let friends localhost™ | Sponsored by [ppl](https://ppl.family) | **Telebit Remote** | [Telebit Relay](https://git.coolaj86.com/coolaj86/telebitd.js) | 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 ======== ``` telebit --config /opt/telebit/etc/telebit.yml ``` ``` Connect to your device by any of the following means: SSH+HTTPS ssh+https://young-grasshopper-37.telebit.cloud:443 ex: ssh -o ProxyCommand='openssl s_client -connect %h:%p -quiet' young-grasshopper-37.telebit.cloud -p 443 SSH ssh://ssh.telebit.cloud:32852 ex: ssh ssh.telebit.cloud -p 32852 TCP tcp://tcp.telebit.cloud:32852 ex: netcat tcp.telebit.cloud 32852 HTTPS https://young-grasshopper-37.telebit.cloud ex: curl https://young-grasshopper-37.telebit.cloud ``` Install ======= Mac & Linux ----------- Open Terminal and run this install script: ``` curl -fsSL https://get.telebit.cloud | bash ``` Of course, feel free to inspect the install script before you run it: `curl -fsSL https://get.telebit.cloud` This will install Telebit Remote to `/opt/telebit` and put a symlink to `/opt/telebit/bin/telebit.js` in `/usr/local/bin/telebit` for convenience. **You can customize the installation**: ```bash export NODEJS_VER=v10.2 export TELEBIT_PATH=/opt/telebit curl -fsSL https://get.telebit.cloud/ ``` That will change the bundled version of node.js is bundled with Telebit Relay and the path to which Telebit Relay installs. You can get rid of the tos + email and server domain name prompts by providing them right away: ```bash curl -fsSL https://get.telebit.cloud/ | bash -- jon@example.com example.com telebit.example.com xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ``` Windows & Node.js ----------------- 1. Install [node.js](https://nodejs.org) 2. Open _Node.js_ 2. Run the command `npm install -g telebit` **Note**: Use node.js v8.x or v10.x There is [a bug](https://github.com/nodejs/node/issues/20241) in node v9.x that causes telebit to crash. Usage ==== ```bash telebit --config /opt/telebit/etc/telebit.yml ``` Options `/opt/telebit/etc/telebit.yml:` ``` email: 'jon@example.com' # 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](https://git.coolaj86.com/coolaj86/telebitd.js) 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. Uninstall ======= **Linux**: ``` sudo systemctl disable telebit; sudo systemctl stop telebit sudo rm -rf /etc/systemd/system/telebit.service /opt/telebit /usr/local/bin/telebit ``` **macOS**: ``` sudo launchctl unload -w /Library/LaunchDaemons/cloud.telebit.remote.plist sudo rm -rf /Library/LaunchDaemons/cloud.telebit.remote.plist /opt/telebit /usr/local/bin/telebit ``` Browser Library ======= This is implemented with websockets, so you should be able to LICENSE ======= Copyright 2016 AJ ONeal