GoTTY é uma ferramenta simples que transforma o terminal Linux como uma aplicação web. Permitindo que qualquer ferramenta ou script de terminal Linux, que possa ter, venham a ser “transformadas” em aplicações web.
Terminal Linux como uma aplicação web
O GoTTY usa o emulador de terminal hterm para executar um terminal baseado em JavaScript em navegadores web. Assim, ele fornece um servidor websocket que, simplesmente, transmite a saída do terminal (TTY) para os usuários na web. Desta maneira, você pode compartilhar e transformar as ferramentas do seu sistema Linux, ou algum programa via terminal, em aplicações web (veja a ferramenta em ação):
Por padrão, o GoTTY não permite que os usuários, que usam o navegador web, enviem quaisquer comandos ou interações com o teclado; exceto o redimensionamento da janela do terminal. É possível que os usuários interajam com o terminal; desde que você permita! Contudo, aceitar a interação dos usuários remotos é perigoso para a maioria dos casos – permita com moderação 😉
Saiba como fazer pesquisas no Google diretamente pelo terminal Linux
Algumas ferramentas de terminal que podem ser mais práticas do que os aplicativos gráficos
Pode ser útil para mim?!
Esta ferramenta pode ser útil se você não quiser dar o acesso SSH a alguém, por exemplo. Basta saber qual a saída de comando que ele gostaria de ver, e executar esse comando em seu sistema local e permitir que ele veja em seu navegador web de qualquer lugar.
Ou, em um cenário acadêmico, onde precise disponibilizar ou exemplificar ferramentas de linha de comando para várias pessoas, simultaneamente. Ou pretende que outras pessoas editem o mesmo arquivo ou vejam arquivos de logs, por exemplo. Em resumo, você pode compartilhar qualquer comando Linux como uma aplicação web 😉
Mão na massa
Eu usei o openSUSE Tumbleweed para testar essa ferramenta. Não precisei instalar nenhum pacote como dependência. Acredito que na maioria das distribuições Linux também não precise 😉
Instalando
Faça o download, de um arquivo compactado, AQUI – conforme a arquitetura do seu sistema (32 ou 64 bits). No meu caso eu segui esses passos:
Descompactar arquivo tar.gz:
Pronto!!
Usando a ferramenta
Todo o tráfego entre o servidor e os usuários NÃO são criptografados, por padrão.
O arquivo descompactado possui um arquivo binário chamado gotty. Para transformar as ferramentas do seu sistema Linux, ou algum programa via terminal, em aplicações web use os seguintes parâmetros:
Assim, execute o gotty com seu comando preferido, com seus argumentos, e prossiga ao um navegador web. Por exemplo, caso queira ver os processos e recursos do seu sistema usamos o comando top:
Por padrão, o GoTTY inicia um servidor web na porta 8080. Abra a URL em seu navegador e verá o comando em execução como se estivesse sendo executado no seu terminal 😉
E mais… você pode compartilhar um arquivo editável pelo nano ou vim, por exemplo (primeira imagem como exemplo):
Onde,
-w: Permite usuários interagirem no navegador web com o terminal do seu sistema (seja cuidadoso)
Além disso, o GoTTY permite estabelecer conexões seguras (TLS/SSL), desde que forneça os arquivos de certificados (–tls-crt, –tls-key e –tls-ca-crt) e permite que os usuários enviem parâmetros de execução diretamente pelo navegador web (http://example.com:8080/?arg=AAA&arg=BBB). Para mais funções, verifique a documentação oficial.
Por fim, alguns exemplos:
Saiba como criar aplicações desktop multiplataforma usando JavaScript, HTML e CSS
Questões de segurança
Para restringir o acesso de determinado usuário, você pode usar a opção -c para ativar uma autenticação básica. Com esta opção, os usuários precisam inserir o nome de usuário e a senha especificados para se conectarem ao servidor do GoTTY. Observe que as credenciais serão transmitidas entre o servidor e o usuário em texto plano (sem segurança). Para uma autenticação mais segura, considere um módulo de autenticação usando certificado SSL/TLS.
A opção -r é um pouco mais simples. Com esta opção, o GoTTY gera uma URL aleatória para que apenas as pessoas que conheçam a URL possam ter acesso ao servidor.
Para conexão segura (TLS/SSL), recomenda-se que você use a opção -t que habilita o TLS/SSL na sessão. Por padrão, o GoTTY carrega os arquivos crt e key colocados em ~/.gotty.crt e ~/.gotty.key. Você pode substituir esses caminhos de arquivo com as opções –tls-crt e –tls-key. Caso não tenha um certificado válido, você pode gerar um arquivo de certificado auto-assinado usando o openssl 😉
Mais opções de customizações podem ser feitas em um arquivo que deve ser criado e localizado em ~/.gotty:
// Listen at port 9000 by default port = "9000" // Enable TSL/SSL by default enable_tls = true // hterm preferences // Smaller font and a little bit bluer background color preferences { font_size = 5, background_color = "rgb(16, 16, 32)" }
Modelo do arquivo de configuração AQUI.