Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/qnkhuat/tstream
Live streaming from your terminal
https://github.com/qnkhuat/tstream
chat go streaming terminal terminal-app webrtc
Last synced: 7 days ago
JSON representation
Live streaming from your terminal
- Host: GitHub
- URL: https://github.com/qnkhuat/tstream
- Owner: qnkhuat
- License: mit
- Created: 2021-06-24T15:00:15.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-07-01T04:39:04.000Z (over 2 years ago)
- Last Synced: 2024-12-24T04:39:37.088Z (16 days ago)
- Topics: chat, go, streaming, terminal, terminal-app, webrtc
- Language: Go
- Homepage: https://tstream.xyz
- Size: 4.61 MB
- Stars: 269
- Watchers: 2
- Forks: 9
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-webrtc - TStream - Live streaming from your terminal. (Projects / Streaming)
README
TStream - Streaming from terminal
tstream.xyz | Join our Discord | Start Streaming![TStream](./client/public/demo.gif)
# Install
## Download pre-built package
The easiest way to install `tstream` is download it form our [Release](https://github.com/qnkhuat/tstream/releases) page. Make sure you download the version that match your Operating System
- Unpack it with command: `tar -xzf tstream_{version}_{os}_{arch}.tar.gz`
- Setup TStream to run it anywhere: `cp tstream /usr/local/bin`## Build from source
- Install the [Go toolchain](https://golang.org/dl/)
- Clone the project: `https://github.com/qnkhuat/tstream`
- Cd to tstream source code: `cd tstream/`
- Build: `go build cmd/tstream.go`
- Setup TStream to run it anywhere: `cp tstream /usr/local/bin`# Start Streaming
Just type `tstream` in the terminal and it will instruct you 🙂If you want to start a private session run: `tstream -private`
### (Optional) Tstream chat inside terminal
We also have a chat client on terminal, you can start it with `tstream -chat` after you've started your streaming session
![TStream chat](./client/public/chat.gif)### (Optional) Voice chat 🔈
Inside TStream chat client, you can turn on voice chat with command `/unmute` and turn off it with `/mute`# Self Host
This diagram is an overview of all needed components to run TStream![Overview of TStream](./client/public/Overview.png)
## TServer
The easiest way to install `tserver` is download it from our [Release](https://github.com/qnkhuat/tstream/releases) pageOr if you prefer to build from source
- Clone the repo `git clone https://github.com/qnkhuat/tstream`
- Install the [Go toolchain](https://golang.org/dl/)
- Build the server package: `cd tstream/tstream && go build cmd/server`
- Run it `./server`Optional configurations:
- `-host localhost:3000`: Address to server tserver. Default is `localhost:3000`
- `-db .db`: path to BoltDB file. This DB is used to store data like: finished streaming. Default is `$(pwd)/.db`Test the server with `curl http://localhost:3000/api/health`. It should return the current time
## Client web app
This is what currently running at [tstream.xyz](https://tstream.xyz).To run it:
- Install [nodejs](https://nodejs.org/en/download/)
- Clone the repo: `git clone https://github.com/qnkhuat/tstream`
- cd to the client folder: `cd client/`
- Install dependencies: `npm install`
- Tell the client your the server address by: `export REACT_APP_API_URL={your server address}`
- Run server: `npm run start`Now go to `localhost:3001`, it should be exactly like [tstream.xyz](https://tstream.xyz)
For production I recommend using service like [Vercel](https://vercel.com/). It's free and very easy to setup
## Streaming
By default the tstream package will stream to [https://server.tstream.xyz](https://server.tstream.xyz)
You can override it with by running `tstream -server {your server address}`.
For example : `tstream -server http://localhost:3000`
# Upcoming features
- [x] One command to stream terminal session to web => just like tty-share
- [x] In room Chat
- [x] Voice chat
- [ ] Stream playback
- [x] Private session
- [ ] Multiple tabs support
- [ ] User management system