All Projects → miguelmota → Streamhut

miguelmota / Streamhut

Licence: apache-2.0
Stream your terminal to web without installing anything 🌐

Programming Languages

javascript
184084 projects - #8 most used programming language
go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Streamhut

Sec Api
sec.gov EDGAR API | search & filter SEC filings | over 150 form types supported | 10-Q, 10-K, 8, 4, 13, S-11, ... | insider trading
Stars: ✭ 71 (-89.5%)
Mutual labels:  stream, websockets, real-time
Goaccess
GoAccess is a real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems or through your browser.
Stars: ✭ 14,096 (+1985.21%)
Mutual labels:  cli, terminal, real-time
Covid19 Tracker Cli
A curl-based command line tracker for Novel Coronavirus or COVID-19 pandemic. It Supports terminal for linux and macos, command prompt for windows, and termux for android with real-time updates.
Stars: ✭ 244 (-63.91%)
Mutual labels:  cli, terminal, real-time
Discline
🐍 A terminal Discord client that you can actually use.
Stars: ✭ 553 (-18.2%)
Mutual labels:  cli, terminal
World Cup 2018 Cli Dashboard
⚽🏆A World Cup 2018 CLI dashboard – Watch matches in your terminal
Stars: ✭ 529 (-21.75%)
Mutual labels:  cli, terminal
Nve
Run any command on specific Node.js versions
Stars: ✭ 531 (-21.45%)
Mutual labels:  cli, terminal
Remote retro
Free, world-class retrospectives
Stars: ✭ 474 (-29.88%)
Mutual labels:  websockets, real-time
Imgcat
It's like cat, but for images.
Stars: ✭ 577 (-14.64%)
Mutual labels:  cli, terminal
Rate.sx
💰 curl cryptocurrencies exchange rates
Stars: ✭ 563 (-16.72%)
Mutual labels:  cli, terminal
Autocomplete
Autocomplete for terminals on MacOS
Stars: ✭ 569 (-15.83%)
Mutual labels:  cli, terminal
Sultan
Sultan: Command and Rule over your Shell
Stars: ✭ 625 (-7.54%)
Mutual labels:  cli, terminal
Pyptt
支援 PTT 還有 PTT2 的 PTT API
Stars: ✭ 527 (-22.04%)
Mutual labels:  websockets, telnet
Saws
A supercharged AWS command line interface (CLI).
Stars: ✭ 4,886 (+622.78%)
Mutual labels:  cli, terminal
Typer
Typer, build great CLIs. Easy to code. Based on Python type hints.
Stars: ✭ 6,793 (+904.88%)
Mutual labels:  cli, terminal
Whipper
Python CD-DA ripper preferring accuracy over speed
Stars: ✭ 517 (-23.52%)
Mutual labels:  cli, terminal
Wunderbar
Simple horizontal bar chart printer for your terminal
Stars: ✭ 572 (-15.38%)
Mutual labels:  cli, terminal
Progressbar
Terminal-based progress bar for Java / JVM
Stars: ✭ 625 (-7.54%)
Mutual labels:  cli, terminal
Tml
🌈💻🎨 A tiny markup language for terminal output. Makes formatting output in CLI apps easier!
Stars: ✭ 634 (-6.21%)
Mutual labels:  cli, terminal
Nord Iterm2
An arctic, north-bluish clean and elegant iTerm2 color scheme.
Stars: ✭ 651 (-3.7%)
Mutual labels:  cli, terminal
Hn Cli
📰 CLI to browse Hacker News
Stars: ✭ 448 (-33.73%)
Mutual labels:  cli, terminal


logo


streamhut

Stream and send data, terminal to web and vice versa.

License Build Status Go Report Card GoDoc

Synopsis

  • Stream your terminal to anyone without installing anything.
  • Path names map to channels.
  • Anyone in the same channel can view what's streamed.
  • Easily self-host your own streamhut server.

Streamhut allows you to stream (pipe) realtime data from your terminal stdout/stderr to a web xterm UI or even to another terminal. It also allow you to quickly share data and files between devices.

As long as you have netcat which comes pre-installed in most *nix systems than you can use streamhut! If you can't install netcat, you may also use the streamhut CLI client.

⚠️ Disclaimer: This software is alpha quality and not production ready. Use at your own risk!

Demo

https://streamhut.io

Demo

Getting Started (without installing anything)

One liner to stream your terminal:

$ exec &> >(nc stream.ht 1337)

The above command pipes stdout and stderr of new bash shell to streamhut.

Stream to a custom channel name:

$ exec &> >(nc stream.ht 1337);echo \#mychannel

Example of streaming tail of file:

# terminal 1
$ cat > data.txt
# terminal 2
$ tail -F data.txt | nc stream.ht 1337

Stream the current date every second:

$ while true; do date; sleep 1; done | nc stream.ht 1337

Stream output of a program (delay is required to see share url):

$ (sleep 5; htop) | nc stream.ht 1337
# waits 5 seconds, and then send contents of program.

Example of piping a program to both stdout and streamhut:

$ (echo -n; sleep 5; htop) | tee >(nc stream.ht 1337)

Don't have netcat available? Pipe to a file descriptor with an open TCP connection:

$ exec 3<>/dev/tcp/stream.ht/1337 && head -1 <&3 && exec &> >(tee >(cat >&3))

Install

$ go get github.com/streamhut/streamhut

CLI

Example of using streamhut CLI:

Stream to server

Piping commands:

$ htop | streamhut

Add delay to see share url:

$ htop | streamhut -d 5

Open url in browser:

$ htop | streamhut -o

Stream to different server:

$ htop | streamhut -h example.com -p 1337

Stream to custom channel:

$ htop | streamhut -c mychannel

For more options, run streamhut --help

Run your own server:

$ streamhut server

Starting server...
HTTP/WebSocket port: 8080
TCP port: 1337

Run server with SSL/TLS:

$ mkcert localhost

$ sudo streamhut server --tls --tls-cert=localhost.pem --tls-key=localhost-key.pem -p 443

For more options, run streamhut server --help

Connecting to a channel

# terminal 1
$ streamhut connect -c mychannel

For more options, run streamhut connect --help

Docker

You can run streamhut as a Docker container:

$ docker pull streamhut/streamhut
$ docker run -e PORT=8080 -e TCP_PORT=1337 -p 8080:8080 -p 1337:1337 --restart unless-stopped streamhut/streamhut:latest

Self-host (docker one-liner)

One-liner to self-host using Docker:

docker run -p 8080:8080 -p 1337:1337 streamhut/streamhut

Test

make test

Development

Start server:

make start

Run migrations:

make migrate

Web App

The web app source code is found on https://github.com/streamhut/web.

FAQ

  • Q: How is the stream log data stored?

    • A: Currently it's stored in a local sqlite3 database. You can disable storage with the --no-storage flag, e.g. streamhut server --no-storage.
  • Q: What happened to the streamhut NPM module?

  • Q: Can the same channel be used more than once?

    • A: Yes! send #{channel} (ie #mychannel) as the first stream text to use that channel.

      Example:

      exec &> >(nc stream.ht 1337);echo \#mychannel
      
  • Q: What's the difference between stream.ht and streamhut.io?

    • A: The domain stream.ht is an alias for streamhut.io, meaning you can type stream.ht as the domain for convenience. Other aliases are streamhut.net and streamhut.org.
  • Q: What is the difference between exec > >(nc stream.ht 1337) 2>&1 and exec &> >(nc stream.ht 1337)

    • A: They are the same in that they both stream stdout and stderr to the server.

License

Released under the Apache 2.0 license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].