an online terminal and communal text buffer :) https://term.arimelody.me
Go to file
2024-01-19 03:23:44 +00:00
public version checks, improved secure/insecure handling, bugfixes, and proxy support! 2024-01-19 03:12:54 +00:00
res mobile support! readme!! branding!!! 2023-09-30 10:55:58 +01:00
server version checks, improved secure/insecure handling, bugfixes, and proxy support! 2024-01-19 03:12:54 +00:00
.dockerignore dockerisation 🐬 2023-10-03 20:39:47 +01:00
.gitignore dockerisation 🐬 2023-10-03 20:39:47 +01:00
docker-compose-example.yml version checks, improved secure/insecure handling, bugfixes, and proxy support! 2024-01-19 03:12:54 +00:00
Dockerfile updated dockerfile to build explicitly for amd64 systems 2023-10-03 20:57:41 +01:00
LICENSE.txt licensed under GPLv3! 2024-01-19 03:23:44 +00:00
nodemon.json server-side that!! 2023-09-30 07:58:03 +01:00
OpenTerminal.service fixed systemd unit file 2023-09-30 09:06:25 +01:00
package-lock.json server-side that!! 2023-09-30 07:58:03 +01:00
package.json server-side that!! 2023-09-30 07:58:03 +01:00
README.md version checks, improved secure/insecure handling, bugfixes, and proxy support! 2024-01-19 03:12:54 +00:00

OpenTerminal

An online terminal and communal text buffer

openterminal thumbnail image

how it works

a simple static web server pushes out the html, css and javascript needed to make this function well and look pretty on client devices. from there, clients connect back to the server's websocket, which they then exchange keystroke information with, back and forth, all passing through the server's own saved buffer. (if you refresh the page, everything's still there!)

wouldn't this be really easy to grief?

yes!

jokes aside- while i do absolutely see how an open, self-moderated text buffer is hilariously easy to grief, i could also imagine users taking the concept and pushing it quite a bit further than what i'm doing here. who knows? maybe a anti-spam bot could come in, read through the buffer for any nefarious material, and backpedal through the buffer just enough to remove it, before replacing the otherwise above-board text from memory.

...or maybe it'll just become a garbage-posting haven. regardless, it's a fun little idea, so i made it anyway.

hosting

  • git clone this repo and cd into it
  • npm ci to install dependencies
  • npm run start, and you should be good to do!

OpenTerminal also makes use of environment variables for server hosts who want a bit more control of their setup:

  • OPENTERM_HOST - the address to bind OpenTerminal's http and websocket server. (default 0.0.0.0)
  • OPENTERM_POST - the port to bind OpenTerminal's http and websocket server. (default 8080)
  • OPENTERM_TRUSTED_PROXIES - a comma-separated list of addresses to check for X-Forwarded-For headers from. handy if you run OpenTerminal behind a reverse proxy! (default none, example "127.0.0.1,192.168.0.100")

roadmap

  • rewrite backend in go/rust (me no like javascript raaaahhh)
  • master server (anyone can host a channel and post to the MS)

"maybe" roadmap

  • channel logs (for recovery in the event of a crash, as an optional feature)