Giter Club home page Giter Club logo

gotty's People

Contributors

denkoren avatar dependabot[bot] avatar fazalmajid avatar felixoid avatar flechaig avatar freakhill avatar fredster33 avatar funnywwh avatar gitter-badger avatar guywithnose avatar hardliner66 avatar immortalin avatar jizhilong avatar josegonzalez avatar lukaszlach avatar mattn avatar moul avatar prusnak avatar sehaas avatar shingt avatar shoz avatar sorenisanerd avatar svanellewee avatar tsl0922 avatar uovobw avatar xgdgsc avatar xinsnake avatar ygit avatar yudai avatar zyfdegh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gotty's Issues

[Feature request] Bind to multiple interfaces

Thanks for your helpdul project
Can we bind gotty to 2 interfaces? I dont want to bind it to 0.0.0.0 so vpn users can conect to it and I must manage firewall and etc. Can you change listen address from text to comma seprated list to bind to multiple interfaces?

Support for mobile browsers?

What version of GoTTY are you using (gotty --version)?

1.5.0

What operating system and browser are you using?

NixOS (server, no gui), Mobile Chrome, Mobile Firefox

Selection on mobile browsers does not work on Firefox or Chrome. I'm trying to understand if this is a limitation with xterm.js or gotty. Anyone else noticed this behavior?

just one

I wish gotty-windows. can you make it?

我怎么获取随机数,我可以自定义随机数吗?

When file a bug report (see below for feature requests)

Please answer these quesions for a bug report. Thanks!

What version of GoTTY are you using (gotty --version)?

gotty version v1.3.0

What operating system and browser are you using?

What did you do?

If possible, please provide the command you ran.

What did you expect to see?

What did you see instead?

If possible, please provide the output of the command and your browser's console output.

When file a new feature proposal

Please provide an actual usecase that requires your new feature.

WebGL is enabled by default, README and --help says it's off by default

See

(default = true)

EnableWebGL bool `hcl:"enable_webgl" flagName:"enable-webgl" flagDescribe:"Enable WebGL renderer" default:"true"`

and

(default = false)

--enable-webgl Enable WebGL renderer (default: false) [$GOTTY_ENABLE_WEBGL]

gotty --help also shows:

   --enable-webgl                Enable WebGL renderer (default: false) [$GOTTY_ENABLE_WEBGL]

Suggestion: either set it to false in options.go (when it's hard to fix #15) or set it to true in README.md (when it's easy to fix #15). Not sure how to fix the --help prompt.

gotty arguments need order

When file a bug report (see below for feature requests)

Please answer these quesions for a bug report. Thanks!

What version of GoTTY are you using (gotty --version)?

latest verision, build myself.

What operating system and browser are you using?

linux

What did you do?

[root@docker-desktop ~]# /usr/bin/gotty --port 9090 --address 0.0.0.0 --permit-write true --permit-arguments true ssh
2022/11/03 03:48:01 GoTTY is starting with command: true --permit-arguments true ssh
2022/11/03 03:48:01 Permitting clients to write input to the PTY.
2022/11/03 03:48:01 HTTP server is listening at: http://[::]:9090/
2022/11/03 03:48:01 Alternative URL: http://127.0.0.1:9090/
2022/11/03 03:48:01 Alternative URL: http://[::1]:9090/
2022/11/03 03:48:01 Alternative URL: http://192.168.65.3:9090/
2022/11/03 03:48:01 Alternative URL: http://[fe80::50:ff:fe00:1]:9090/
[root@docker-desktop ~]# /usr/bin/gotty --port 9090 --address 0.0.0.0 --permit-arguments true --permit-write true ssh
2022/11/03 03:48:53 GoTTY is starting with command: true --permit-write true ssh
2022/11/03 03:48:53 HTTP server is listening at: http://[::]:9090/
2022/11/03 03:48:53 Alternative URL: http://127.0.0.1:9090/
2022/11/03 03:48:53 Alternative URL: http://[::1]:9090/
2022/11/03 03:48:53 Alternative URL: http://192.168.65.3:9090/
2022/11/03 03:48:53 Alternative URL: http://[fe80::50:ff:fe00:1]:9090/

What did you expect to see?

all command should output:

2022/11/03 03:48:01 Permitting clients to write input to the PTY.

What did you see instead?

The second command not enable permit-write.

When file a new feature proposal

Could we use cobra as out cli library? It's more easy process command flages.

https://github.com/spf13/cobra

how to support alpine Linux?

When file a bug report (see below for feature requests)

Please answer these quesions for a bug report. Thanks!

What version of GoTTY are you using (gotty --version)?

v1.3.0

What operating system and browser are you using?

Alpine Linux 3.13.5

What did you do?

I want to run gotty in alpine Linux, but failed.

If possible, please provide the command you ran.
./gotty -w bash

What did you expect to see?

gotty run well in alpine Linux.

What did you see instead?

If possible, please provide the output of the command and your browser's console output.
./gotty: not found

When file a new feature proposal

Please provide an actual usecase that requires your new feature.

WebGL rendering broken in Safari (14.1)

What version of GoTTY are you using (gotty --version)?

1.3.0

What operating system and browser are you using?

macOS 11.3 on Apple Silicon
Safari 14.1

What did you do?

Just run gotty with any command. Safari does not show any characters, just the background color.

What did you expect to see?

Normal font rendering


Running GOTTY_ENABLE_WEBGL=0 gotty top fixes the issue.

It seems that WebGL is enabled by default despite the documentation says WebGL is disabled by default. I am opening second issue for this - #16

Value not properly updated when using nethogs

What version of GoTTY are you using (gotty --version)?

gotty version v1.4.0

What operating system and browser are you using?

Ubuntu 20.04.3 LTS chrome latest

What did you do?

run nethogs

gotty -p 1234 sudo nethogs br0

What did you expect to see?

same results as in terminal

What did you see instead?

different IP address listed on top with same bandwidth usage, which is misleading

image

[Feature Request] static binary to run in alpine container

When file a bug report (see below for feature requests)

when run gotty in alpine docker container, got the error:

./bin/gotty
sh: ./bin/gotty: not found

What version of GoTTY are you using (gotty --version)?

1.4.0

What operating system and browser are you using?

What did you do?

docker run -it --entrypoint sh --rm alpine:3.11

When file a new feature proposal

in some minimal docker image like alpine/ busybox, c lib may not installed.

scrollback and file downloads

hello,
excuse me if this is not the right place but I have two questions:

  1. is there a way to control how many lines we can scroll back?
  2. I've seen some work in the master branch pointing to some gui to allow download/uploads but I see no mention in the readme -- how is that supposed to work / can we test it?

currently my docker entrypoint is

#!/bin/bash

PARAMS="--permit-write"

gotty $PARAMS /bin/bash

and builder

FROM golang:1.16-alpine as builder

RUN apk add --update --no-cache git

RUN go get github.com/sorenisanerd/gotty

thanks

update: I installed lrzsz on alpine, which provides these files https://pkgs.alpinelinux.org/contents?branch=edge&name=lrzsz&arch=x86&repo=testing

I tried some lsz test.txt but I see no file dialog, in the remote web terminal:

bash-5.1# cat test.txt 
wwww
bash-5.1# lsz test.txt 
�*B00000000000000

and the terminal blocks

update 2:

I updated my dockerfile to ensure master version is correctly used:

FROM golang:1.18-alpine as builder

RUN apk add --update --no-cache git

RUN go install github.com/sorenisanerd/gotty@master

and file download works, nice job :)

HTTP headers processing

Not a bug report, just wanted to share this code change without creating a pull request as this is potentially unsafe change to add to the code base.

master...George-NG:process-http-headers

(the specific branch is https://github.com/George-NG/gotty/tree/process-http-headers )

This would pass headers from the browser and any proxy servers (ie nginx) to the backend application in the form of env vars prefixed with HTTP_.

I am using this for a non-publicly accessible project, where we need some headers to be sent to the backend. I have not checked about security implications at all and there is possibly a better way to do this, ie not at the time of creating the websocket and for each and every request. Since currently there is no option in the project (or I couldn't find one!) to pass headers to the backend, I thought I might share this anyway for anyone who might need something similar.

Any feedback is appreciated, as I am going to use this for the foreseeable future and don't want to leave an obvious wide open security gap in place 😅

For anyone who thinks of using this at its current state, be very careful about what you are processing and sanitize input as much as possible via a proxy in front of gotty.

Add support for customizing the url used for interacting with websocket

I have a golang service that proxies to gotty. It provides authentication via an ephemeral token in a query parameter as described here. The service doesn't use HTTPS cookies for authentication, and using the built-in basic auth support for authenticating via credentials would be extra overhead due to already being logged into the system.

In the ideal case, I could specify a custom set of query string parameters - perhaps via some sort of config.js var gotty_query_string like here - that could be included in the query here and then added here to the open of each websocket. This would provide allow my proxy service the ability to handle authentication as is without needing to implement workarounds.

Would you be willing to accept a PR that implemented this?

--quiet flag has no effect

What version of GoTTY are you using (gotty --version)?

1.4.0

What operating system and browser are you using?

Ubuntu 22.04, Chrome

What did you do?

If possible, please provide the command you ran.

./gotty -p 7681 --quiet bash

What did you expect to see?

No log output

What did you see instead?

root@f33e40d1f76c:/# ./gotty -p 7681 --quiet bash
2022/08/11 01:31:33 GoTTY is starting with command: bash
2022/08/11 01:31:33 HTTP server is listening at: http://[::]:7681/
2022/08/11 01:31:33 Alternative URL: http://127.0.0.1:7681/
2022/08/11 01:31:33 Alternative URL: http://172.17.0.4:7681/
2022/08/11 01:32:03 172.17.0.1:57258 200 GET /
2022/08/11 01:32:03 172.17.0.1:57258 200 GET /css/index.css
2022/08/11 01:32:03 172.17.0.1:57262 200 GET /css/xterm_customize.css
2022/08/11 01:32:03 172.17.0.1:57264 200 GET /auth_token.js
2022/08/11 01:32:03 172.17.0.1:57268 200 GET /config.js
2022/08/11 01:32:03 172.17.0.1:57260 200 GET /css/xterm.css
2022/08/11 01:32:03 172.17.0.1:57258 200 GET /js/gotty.js
2022/08/11 01:32:03 New client connected: 172.17.0.1:57270, connections: 1/0
2022/08/11 01:32:03 172.17.0.1:57258 200 GET /manifest.json
2022/08/11 01:32:03 172.17.0.1:57260 200 GET /icon.svg
2022/08/11 01:32:03 172.17.0.1:57258 200 GET /icon_192.png
2022/08/11 01:32:03 172.17.0.1:57258 200 GET /favicon.ico
(...etc)

Zmodem transfers/cancellations hang terminal

What version of GoTTY are you using (gotty --version)?

1.4.0

What operating system and browser are you using?

Ubuntu 22.04, Chrome

What did you do?

If possible, please provide the command you ran.

./gotty -p 7681 -w bash

What did you expect to see?

Action Expected Behavior
rz, cancel upload (close modal) rz exits and terminal prompt advances
sz <filename>, click Accept File is transferred to browser, terminal prompt advances
sz <filename>, click Decline sz exits and terminal prompt advances
sz <filename>, close modal sz exits and terminal prompt advances

What did you see instead?

If possible, please provide the output of the command and your browser's console output.

Action Observed Behavior
rz, cancel upload (close modal) Prompt is stuck on rz waiting to receive.**B0100000023be50
sz <filename>, click Accept File is transferred to browser, terminal prompt is stuck on **B00000000000000, JavaScript console reports errors: Uncaught PROTOCOL: Only thing after ZFIN should be “OO” (79,79), not: ... at zsession.js:563
sz <filename>, click Decline Modal displays "Skipping..." until manually closed, JavaScript console reports errors: Uncaught PROTOCOL: Only thing after ZFIN should be “OO” (79,79), not: ..., sz: skipped: <filename> is written to terminal but prompt is stuck
sz <filename>, close modal Prompt is stuck on **B00000000000000 until it eventually times out

-m 404

When file a bug report (see below for feature requests)

Please answer these quesions for a bug report. Thanks!

What version of GoTTY are you using (gotty --version)?

gotty version v1.3.0

What operating system and browser are you using?

MAC OS
chrome

What did you do?

./gotty --path /t df -h

What did you expect to see?

What did you see instead?

image

When file a new feature proposal

Please provide an actual usecase that requires your new feature.

Tests fail for webtty

$ go test github.com/sorenisanerd/gotty/webtty
# github.com/sorenisanerd/gotty/webtty [github.com/sorenisanerd/gotty/webtty.test]
webtty/webtty_test.go:25:16: not enough arguments in call to New
	have (pipePair)
	want (Master, Slave, ...Option)
webtty/webtty_test.go:42:14: dt.TTY undefined (type *WebTTY has no field or method TTY)
webtty/webtty_test.go:80:16: not enough arguments in call to New
	have (pipePair)
	want (Master, Slave, ...Option)
webtty/webtty_test.go:112:13: dt.TTY undefined (type *WebTTY has no field or method TTY)
FAIL	github.com/sorenisanerd/gotty/webtty [build failed]
FAIL

Gotty multi users, Docker and Helm

Hi all, and thanks to the author for this wonderful project,

I wanted to used Gotty for a personal project with a basic authentication for multiple users. I found another project were this functionnality was added : https://github.com/KubeOperator/webkubectl. In this project the Gotty original code was updated to support a credential file for basic authentication for multiple users. As the project also changes many others things in the Gotty original project, i have moved only the changes concerning the multiple users authentication in another repository. I also added a DockerFile and a Helm Chart to deploy it in a containerized environment. You can see those changes in this repository : https://github.com/stevelaclasse/gotty-multi-users-Docker.

I hope it may help someone.

(This was originaly posted in the original GitHub gotty repository : yudai/gotty#342)

Can't send meta to emacs in the browser

When file a bug report (see below for feature requests)

What version of GoTTY are you using (gotty --version)?

gotty version v1.4.0

What operating system and browser are you using?

macOS Monterey 12.5
Google Chrome (Desktop) Version 103.0.5060.134 (Official Build) (x86_64)
Safari (Desktop) Version 15.6 (17613.3.9.1.5)
Safari (iPadOS 15.5)

What did you do?

I run spacemacs via gotty with
gotty --port 11111 --permit-write --reconnect emacsclient --tty -a ""
when I go to localhost:11111 I can successfully use emacs.
Since when I press the "option" key I want instead to send a "meta" key, I have tried using this config (and restarting gotty)

preferences {                                                                   
    alt_is_meta = true
}

or this config

preferences {                                                                   
    alt_is_meta = true
    alt_is_what = "browser-key"
}

but nothing changes.

What did you expect to see?

I would expect the meta key to be sent. For example, if I press for instance Option-x, I expect emacs in the browser to recognize M-x.

What did you see instead?

I get the option key instead. In the example above, if I press Option-x I get the character . So I can't use most of the emacs keybinding. As a workaround I can use spacemacs and switch to evil-mode, but I would like to use the default emacs keybindings.

[Feature Request] Add support for custom favicons (browser tab icons) in the .gotty file

I'd like to be able to set the tab favicon to a custom .png/.ico in the .gotty config file. You can already set the tab title, so setting the tag icon/favicon seems reasonable too. I can set it manually by using a custom index.html, but I'd prefer to be able to do it directly from the .gotty config file. I'd like to be able to do something like this:

favicon = "/my_favicon.png"

Can this be implemented, or, alternatively, would anyone mind if I sent a PR? I'd be willing to add this myself.

Improve js development workflow

Rebuilding assets is easy enough, but it would be really handy to be able to directly manipulate the browser side of things (html, css, js/ts) without that step. An environment variable could tell gotty to ignore compiled assets and use the file system instead.

Embeding Gotty URL in HTML iframe throws CROS error

Opening gotty's URL in browser tab works fine. And it even exposes my terminal output.

But embedding Gotty URL in an HTML iframe throws CORS error. Presumably same-origin policy error.

Is there a way to allow CORS headers in gotty?

Gotty Versions: v1.5.0.

@sorenisanerd

Provide some level of integration with a GUI

Use case: Suppose I want to launch a GUI from the tty I'm connected to. There are excellent SPiCE clients (e.g. https://github.com/eyeos/spice-web-client) that we can use.

We need a few things to make this work well:

  1. Embed websockify in GoTTY. It needs to be explicitly enabled when launching GoTTY for security reasons.
  2. Add an escape sequence to tell the webtty that e.g. a vnc or spice server is available. E.g. "]9876;spice://10.20.30.40:5442;credentials".
  3. The webtty can then connect GoTTY's websockify path, send "10.20.30.40:5442" as the target IP:port and GoTTY will connect it.
  4. Once the connection is established, it can be passed along to a js spice client.

This may or may not be a security concern. Let's look at three scenarios:

  1. For the common use case where you run e.g. "gotty -w bash", the user lands in a bash prompt where they can just netcat their way to any other system. Giving them access via websocket to that same network should not be a concern.
  2. If you're using gotty to just show something, e.g. "gotty top", the user can't even interact with top, but only see its output. In that case, giving them free reign to connect to arbitrary systems on the server network is obviously terrible.
  3. If you're doing e.g. "gotty -w login -", you'll be presented with a login prompt. In other words, the authentication step is outside of GoTTY's control.

If we only had to worry about scenarios 1 and 2, we could simply use the "-w" flag to decide whether to allow this websockify mechanism. Because of scenario 3, it needs to be a separate flag. It should restrict the access to specific hosts/ports.

Consider adding dependabot for golang, nodejs, and github actions

While dependabot can sometimes be a bit noisy, it forces you to consider upgrading dependencies as they update upstream, ensuring you never get into a state where upgrading is a pain because its not just one dependency.

Here is the one for the Dokku project, which has a variety of examples for usage. I'd be happy to PR a config for you if you think this would be a good idea.

node v18.10.0 | webpack --mode=production: --: not found

Hello Soren.

Got issue compiling with several last node vesions:

cd js && \
npm install

added 249 packages, and audited 250 packages in 3s

30 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
cd js && \
npx webpack --mode=production
webpack --mode=production: --: not found
make: *** [Makefile:45: bindata/static/js/gotty.js.map] Error 127

With lower node v187.0 compilation passed allright.

Which side is erroneus?

Font size/family and colors/palette customisations?

Hello Soren.

Thanks for your work. Please point to ways on subject. It looks like those are being hardcoded at build time (when performing npx install dependencies, xterm.js, creating gotty.js) and does not apply settings from the config file at run time like font_size/font_family/color_palette_overrides as in originator's (yudai) version.

Thank You.

How to set font using custom HTML?

Ability to set custom font

I don't like the default font in the terminal. I'd prefer to be able to set my own. I set the following to be my custom index.html file:

<!doctype html>
<html>
  <head>
    <title>{{ .title }}</title>
    <link rel="manifest" href="manifest.json">
    <link rel="icon" href="favicon.ico">
    <link rel="icon" href="icon.svg" type="image/svg+xml">
    <link rel="stylesheet" href="./css/index.css" />
    <link rel="stylesheet" href="./css/xterm.css" />
    <link rel="stylesheet" href="./css/xterm_customize.css" />
    <style>
      canvas, div {
        font-family: 'Comic Sans MS', 'Comic Sans', sans-serif !important;
        color: red;
      }
    </style>
  </head>
  <body>
    <div id="terminal"></div>
    <script src="./auth_token.js"></script>
    <script src="./config.js"></script>
    <script src="./js/gotty.js"></script>
  </body>
</html>

But that didn't set the font of the terminal. So, by modifying the HTML, what is the correct/working way to change the font used in the terminal.

Although, when I do that, it does set the font of the dimensions that appear for a second when I open it to be in Comic Sans. However, I'm looking to change the font of the terminal.

EDIT 1:

I tried setting the config file to the following:

title_format = "DEMO DEMO"
preferences {
    font_size = 64
}

The title gets set, so I'm using the config fine, but I can't set the font size (or the font itself, either). Any ideas?

add ARM64 version

possible to add Linux arm64 (aarch64) into release build

thanks a lot

gotty bash can't input command

When file a bug report (see below for feature requests)

Please answer these quesions for a bug report. Thanks!

What version of GoTTY are you using (gotty --version)?

gotty version latest

What operating system and browser are you using?

Linux kaisawind-z2 5.10.42-1-MANJARO #1 SMP PREEMPT Thu Jun 3 14:37:11 UTC 2021 x86_64 GNU/Linux
Chrome Version 91.0.4472.77 (64 bit)

What did you do?

./gotty bash

What did you expect to see?

just like ttyd, can input commands in web

What did you see instead?

only show bash, nothing can be input

When file a new feature proposal

./ttyd bash

works well

key handling behavior when autostarted via crontab

What version of GoTTY are you using (gotty --version)?

v1.5.0

What operating system and browser are you using?

Ubuntu 22.04.2 LTS
Google Chrome 112.0.5615.50 (Official Build) (64-bit)

What did you do?

I want to run gotty upon server reboot so I added the following to crontab -e:

@reboot /root/gotty/gotty --config "/root/gotty/.gotty" tmux new -A -s gotty

the content of /root/gotty/.gotty is:

address = "1.1.1.1"
port = "1010"
enable_tls = true
tls_crt_file = "/root/cert.crt"
tls_key_file = "/root/private.key"
enable_basic_auth = true
credential = "admin:admin"
permit_write = true

What did you expect to see?

successful execution and normal operation of gotty

What did you see instead?

crontab successfully executes and runs gotty upon reboot and I can access terminal at 1.1.1.1:1010 as usual but interpretation and handling of some key combinations are now different from what was the expected behavior.

for example: ctrl + l writes literally ^L on the terminal rather than resetting it.
or pressing tab for completing a filename, writes literally a tab character (empty space)

  1. Is this a bug or because of how crontab handles the execution?

  2. If not a bug, what is the correct procedure to run gotty upon server reboot?

How to debug the front-end code locally ?

Hello.

I am currently using your repository for local development. It really works very well and I appreciate it.
But at the moment I have a question, how do you debug the front-end code locally (especially js part as well as html etc) By building a separate http server, which is possible. But I don't know if it is already supported inside your code?

I would be grateful if I could get an answer from you.

Colors no longer obeyed in 1.4.0

It seems that the color preferences are no longer respected in 1.4.0.
I was looking through the release notes, and did not see anything to explain it.

What version of GoTTY are you using (gotty --version)?

Gotty 1.4.0 - bug exists
Gotty 1.3.0 - bug does not exist

What operating system and browser are you using?

Ubuntu 20.04

What did you do?

Have this file in ~/.gotty

port = 3000

term = "hterm" 

preferences {
  background_color = "white"
  foreground_color = "black"
  cursor_color = "blue"
}

and run gotty --once ls

Note: This exact same config worked in all previous Gotty versions, including 1.3.0

What did you expect to see?

The terminal background color should be white.

What did you see instead?

The terminal background color was black.

Apple M1 silicon installation via Homebrew fails

brew install sorenisanerd/gotty/gotty

fails on Apple M1 Macbook:

==> Tapping sorenisanerd/gotty
Cloning into '/opt/homebrew/Library/Taps/sorenisanerd/homebrew-gotty'...
remote: Enumerating objects: 69, done.
remote: Counting objects: 100% (13/13), done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 69 (delta 5), reused 13 (delta 5), pack-reused 56
Receiving objects: 100% (69/69), 8.45 KiB | 8.45 MiB/s, done.
Resolving deltas: 100% (37/37), done.
Tapped 1 formula (14 files, 16.4KB).
gotty: The intel architecture is required for this software.
Error: gotty: An unsatisfied requirement failed this build.

however, Apple has a compatibility layer called Rosetta and it can actually run x86 binaries on ARM. I assume most developers enable this.

e.g. if I do go install github.com/sorenisanerd/gotty@latest (I think you should consider changing the command in the README to this), gotty works just fine on my machine. So Homebrew is being extra defensive here for no reason.

Add access to Docker

It would be awesome to use gotty to access a running Docker container, like docker exec does. Such feature allow to access a Docker without having to install and run gotty inside the container.

Can't set font size and family with xterm

What version of GoTTY are you using (gotty --version)?

1.4.0

What operating system and browser are you using?

Ubuntu 22.04 - Docker container

What did you do?

I tried everything to change the font sizez and family and can't get it to work.
I managed to change the "messages" font size (the message "Connection Closed"), but not the terminal font size.

What did you expect to see?

I want to be able to set the font size and family in the config file.

What did you see instead?

The font size and family cannot be modified.

Set TERM value

GoTTY is the one that provides the shell with its environment, so that's where the TERM value has to come from. This fixes dumb terminal issues when running GoTTY from systemd.

REST API to execute bash scripts

Use case: I have a lot of scripts hanging around that glue two services together, ingest data into a database, scrape a page, etc. Usually if I want more interactivity I have to port the script to a Web server and HTML forms.

It would be great if I could instead assign a script to a URL, so that I could send a POST or GET request to a gotty URL and spawn a process with URL parameters being ported to command line arguments. This could then redirect to an ephemeral URL for the specific process, so if it takes a long time I can come back to the URL to see what the script is doing. Additionally, if the script prompts for user input, the process could just hang until I visit the URL again to type in input. This way I can periodically check in on my scripts without having to use ssh and screen, and automate their execution using tools like curl or wget.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.