GoTTY - Pin Ebute Linux Rẹ (TTY) bi Ohun elo Wẹẹbu kan


GoTTY jẹ ohun elo laini aṣẹ orisun orisun GoLang ti o fun ọ laaye lati pin ebute rẹ (TTY) bi ohun elo wẹẹbu kan. O yipada awọn irinṣẹ laini aṣẹ si awọn ohun elo wẹẹbu.

O gba iṣẹ emulator ebute (OS) fun ṣiṣe OS OS (hterm) lati ṣe ebute JavaScript ti o da lori awọn aṣawakiri wẹẹbu kan. Ati pe pataki, GoTTY n ṣiṣẹ olupin iho oju opo wẹẹbu kan eyiti o n gbe gbigbejade lati TTY si awọn alabara ni ipilẹṣẹ ati gba ifitonileti lati ọdọ awọn alabara (iyẹn ni pe a gba igbanilaaye lati ọdọ awọn alabara) ati siwaju si TTY.

Itumọ faaji rẹ (ero iho iho hterm + wẹẹbu) jẹ atilẹyin nipasẹ eto Wetty eyiti o jẹ ki ebute lori HTTP ati HTTPS.

O yẹ ki o ni agbegbe ti GoLang (Ede siseto) ti fi sori ẹrọ ni Linux lati ṣiṣẹ GoTTY.

Bii O ṣe le Fi GoTTY sori Awọn Ẹrọ Lainos

Ti o ba ti ni agbegbe GoLang ti n ṣiṣẹ, ṣiṣe lọ gba aṣẹ ni isalẹ lati fi sii:

# go get github.com/yudai/gotty

Aṣẹ ti o wa loke yoo fi sori ẹrọ alakomeji GoTTY ninu oniyipada agbegbe GOBIN rẹ, gbiyanju lati ṣayẹwo boya iyẹn jẹ ọran naa:

# ls $GOPATH/bin/

Bii O ṣe le Lo GoTTY ni Lainos

Lati ṣiṣe rẹ, o le lo iyipada GOBIN env ki o paṣẹ ẹya-ara ipari-laifọwọyi bi atẹle:

# $GOBIN/gotty

Ni omiiran, ṣiṣe GoTTY tabi eyikeyi eto Go miiran laisi titẹ ọna ni kikun si alakomeji, ṣafikun oniyipada GOBIN rẹ si PATH ninu faili ~/.profile nipa lilo pipaṣẹ si ilẹ okeere ni isalẹ:

export PATH="$PATH:$GOBIN"

Fipamọ faili naa ki o pa. Lẹhinna fa faili lati ṣe awọn ayipada loke:

# source ~/.profile

Iṣeduro gbogbogbo fun ṣiṣe awọn aṣẹ GoTTY ni:

Usage: gotty [options] <Linux command here> [<arguments...>]

Nisisiyi ṣiṣe GoTTY pẹlu aṣẹ eyikeyi bii aṣẹ df lati wo aaye awọn ipin disiki eto ati lilo lati ẹrọ lilọ kiri lori ayelujara:

# gotty df -h

GoTTY yoo bẹrẹ olupin wẹẹbu kan ni ibudo 8080 nipasẹ aiyipada. Lẹhinna ṣii URL naa:

Bii O ṣe le Ṣe akanṣe GoTTY ni Lainos

O le paarọ awọn aṣayan aiyipada ati ebute rẹ (hterm) ninu faili profaili ~/.gotty , yoo kojọpọ faili yii nipasẹ aiyipada bi o ba wa.

Eyi ni faili isọdi akọkọ ti a ka nipasẹ awọn ofin gotty, nitorinaa, ṣẹda bi atẹle:

# touch ~/.gotty

Ati ṣeto awọn iye to wulo ti ara rẹ fun awọn aṣayan atunto (wa gbogbo awọn aṣayan atunto nibi) lati ṣe akanṣe GoTTY fun apẹẹrẹ:

// 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)"
}

O le ṣeto faili index.html tirẹ nipa lilo aṣayan --index lati laini aṣẹ:

# gotty --index /path/to/index.html uptime

Bii o ṣe le Lo Awọn ẹya Aabo ni GoTTY

Nitori GoTTY ko pese aabo ti o gbẹkẹle nipasẹ aiyipada, o nilo lati lo pẹlu ọwọ awọn ẹya aabo kan ti a ṣalaye ni isalẹ.

Akiyesi pe, ni aiyipada, GoTTY ko gba awọn alabara laaye lati tẹ titẹ sii sinu TTY, o nikan jẹ ki atunṣe window ṣe.

Sibẹsibẹ, o le lo aṣayan -w tabi - Gba-kọ aṣayan lati gba awọn alabara laaye lati kọwe si TTY, eyiti a ko ṣe iṣeduro nitori awọn irokeke aabo si olupin.

Aṣẹ atẹle yoo lo vi olootu laini aṣẹ lati ṣii faili fossmint.txt fun ṣiṣatunkọ ninu ẹrọ lilọ kiri lori ayelujara:

# gotty -w vi fossmint.txt

Ni isalẹ ni wiwo vi bi a ti rii lati aṣawakiri wẹẹbu (lo awọn pipaṣẹ vi nibi bi o ti ṣe deede):

Gbiyanju lati mu siseto idanimọ ipilẹ ṣiṣẹ, nibiti a yoo nilo awọn alabara lati ṣagbewọle orukọ olumulo ati ọrọ igbaniwọle ti a ṣalaye lati sopọ si olupin GoTTY.

Aṣẹ ti o wa ni isalẹ yoo ni ihamọ iraye si alabara nipa lilo aṣayan -c lati beere lọwọ awọn olumulo fun awọn iwe-ẹri ti o daju (orukọ olumulo: idanwo ati ọrọ igbaniwọle: @ 67890):

# gotty -w -p "9000" -c "test:@67890" glances

Ọna miiran ti ihamọ wiwọle si olupin naa jẹ nipa lilo aṣayan -r . Nibi, GoTTY yoo ṣe agbekalẹ URL alailẹgbẹ ki awọn olumulo nikan ti o mọ URL le ni iraye si olupin naa.

Tun lo ọna kika -aṣayan-ọrọ “GoTTY - {{.Command}} ({{.Hostname}})” aṣayan lati ṣalaye akọle wiwo awọn aṣawakiri wẹẹbu ati aṣẹ awọn iwoju ni a lo lati fihan awọn iṣiro ibojuwo eto:

# gotty -r --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances

Atẹle yii jẹ abajade aṣẹ ti o wa loke bi a ti rii lati wiwo ẹrọ lilọ kiri lori ayelujara:

Nitori ni aiyipada, gbogbo awọn isopọ laarin olupin ati awọn alabara ko ni paroko, nigbati o ba firanṣẹ alaye ikoko nipasẹ GoTTY gẹgẹbi awọn iwe eri olumulo tabi alaye miiran, o ni lati lo -t tabi - -tls aṣayan eyiti o jẹ ki TLS/SSL ṣiṣẹ lori igba:

GoTTY yoo ka aiyipada ka faili ijẹrisi naa ~/.gotty.crt ati faili bọtini ~/.gotty.key , nitorinaa, bẹrẹ nipa ṣiṣẹda ijẹrisi ti a fowo si ti ara ẹni daradara bi faili bọtini ni lilo aṣẹ openssl ni isalẹ (dahun ibeere ti o beere lati ṣe agbekalẹ cert ati awọn faili bọtini):

# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ~/.gotty.key -out ~/.gotty.crt

Lẹhinna lo GoTTY ni ọna aabo pẹlu SSL/TLS ti ṣiṣẹ bi atẹle:

# gotty -tr --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances

O le lo pipaṣẹ kokan (rii daju pe o ti fi sori ẹrọ tmux):

# gotty tmux new -A -s gotty glances 

Lati ka faili atunto oriṣiriṣi, lo aṣayan -config “/ path/to/file” bii bẹ:

# gotty -tr --config "~/gotty_new_config" --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances

Lati ṣe afihan ẹya GoTTY, ṣiṣe aṣẹ naa:

# gotty -v 

Ṣabẹwo si ibi-ipamọ GoTTY GitHub lati wa awọn apẹẹrẹ lilo diẹ sii: https://github.com/yudai/gotty

Gbogbo ẹ niyẹn! Njẹ o ti gbiyanju? Bawo ni o ṣe rii GoTTY? Pin awọn ero rẹ pẹlu wa nipasẹ fọọmu esi ni isalẹ.