Forgot your password?
typodupeerror
Cloud Security Software The Internet IT Linux Technology

Gate One Brings Text-mode Surfing To the Web, Quake-Style 71

Posted by timothy
from the terminal-illness dept.
Riskable writes "As a follow-up to my previous Slashdot story, Gate One is now out of beta. Packages can be downloaded here. There's also a live demo: press the ESC key on this page to have a terminal running lynx drop into view, Quake-style! I've also posted a video overview and the documentation can be found here. Some pertinent changes since the beta: Added the ability display images inline within terminals, key-based SSH authentication, a WebSockets authentication API (for secure embedding), dramatically improved terminal emulation, an overhauled bookmark manager, support for international keyboard layouts, and a web-based log viewer that lets you export logs to self-contained HTML playback files."
This discussion has been archived. No new comments can be posted.

Gate One Brings Text-mode Surfing To the Web, Quake-Style

Comments Filter:
  • by gid (5195) on Tuesday March 06, 2012 @02:59PM (#39264829) Homepage

    Pressing ESC does nothing in Chrome or Firefox, and produces a not supported error in IE9.

  • by olsmeister (1488789) on Tuesday March 06, 2012 @03:04PM (#39264881)
    Slashdotted already.
  • Slashvertishment (Score:5, Informative)

    by monjemono (1695034) on Tuesday March 06, 2012 @03:05PM (#39264895)
    As this looks like advertishment to me, I will post about my own UNIX web terminal emulator. Its C, executable only 100kb for the executable with everything contained, and many of the goodies from GateOne (multiple sessions, session attached to user, not browser window...) It also even has colaborative terminal, where two users can attach to the same terminal. All AGPLv3. https://github.com/davidmoreno/onion/tree/master/examples/oterm [github.com]
  • by nman64 (912054) * on Tuesday March 06, 2012 @03:20PM (#39265127) Homepage

    You've obviously never pitted Slashdot against a cheap VPS. Even serving static files, the traffic of a good slashdotting will bring a lightweight server to its knees, and this is a story related to SSH.

  • Re:From the Homepage (Score:5, Informative)

    by nman64 (912054) * on Tuesday March 06, 2012 @03:22PM (#39265153) Homepage

    Not at all contradictory. It does not require the use of browser plugins, but the Gate One application supports its own plugins for customization.

  • by Riskable (19437) <YouKnowWho@YouKnowWhat.com> on Tuesday March 06, 2012 @03:38PM (#39265359) Homepage Journal

    You're right: The four webservers I setup to serve liftoffsoftware.com are barely breaking a sweat right now. Load average on all of them is about 0.02. It is low enough that I'll be taking one or two of them offline I think (why pay for what I don't need?). I also want to mention that I *did* tune them considerably and even modified the Drupal theme to serve up many of the static files via a CDN.

    It is the Gate One servers that needed the beefy resources since each open terminal needs to take up enough memory to be stored/kept track of inside of the Python interpreter. 90% of the load there (from a Slashdotting) is memory and I can't believe I didn't foresee this. Lesson learned.

    Having said all that I believe I went way overboard by setting up four 4096MB Gate One servers. Here's the line from 'top' on one of the Gate One servers right now (as I'm being slashdotted):

    1203 1165 3:51.43 36 5.3 20 0 S 980m 768m 211m 0 python ./gateone.py

    That's with Google Analytics showing ~400 users on the site right now.

    5.3% memory utilization is nothing and as long as everyone doesn't stick around surfing the web all day in text mode that number will probably never rise above 10%. I'll be watching it and likely be swapping these servers out with 1GB ones. I love on-demand cloud hosting!

  • Re:From the Homepage (Score:4, Informative)

    by Riskable (19437) <YouKnowWho@YouKnowWhat.com> on Tuesday March 06, 2012 @04:46PM (#39266239) Homepage Journal

    To answer your question: Gate One comes with the SSH plugin pre-installed and enabled. So it's ready-to-go as an SSH client "out of the box" as it were.

    As for the plugin architecture, it's not as complicated as it sounds. There's a "plugins" directory. In that directory there's individual plugins such as "ssh" (which is its own directory): /opt/gateone/plugins/ssh

    When you execute gateone.py it will scan the plugins directory for plugins and load them accordingly. Plugins can be written in any combination of Python, JavaScript, and CSS (yes, in theory you could make a CSS-only plugin). As an example, here's the layout of the SSH plugin directory:


    root@portarisk:/opt/gateone/plugins # ls -lR ssh
    ssh:
    total 48
    drwxr-xr-x 2 root root 4096 2012-02-26 12:29 scripts
    -rw-rw-r-- 1 root root 36473 2012-02-09 12:24 ssh.py
    drwxr-xr-x 2 root root 4096 2012-02-21 09:12 static
    drwxr-xr-x 2 root root 4096 2012-02-07 15:25 templates

    ssh/scripts:
    total 60
    -rw-rw-r-- 1 root root 5708 2012-02-13 10:36 logo.png
    -rwxr-xr-x 1 root root 30576 2012-02-26 12:29 ssh_connect.py

    ssh/static:
    total 56
    -rw-r--r-- 1 root root 54852 2012-02-21 09:12 ssh.js

    ssh/templates:
    total 8
    -rw-rw-r-- 1 root root 5052 2012-02-07 15:23 ssh.css

    So in this example the SSH plugin is taking advantage of all three supported plugin types simultaneously: Python, JavaScript, and CSS. Each type will be loaded appropriately... Python files will be imported and their 'hooks' will be attached accordingly, JavaScript files will be automatically added to whatever page is loading Gate One, and CSS files will be automatically added to the HEAD tag of the page. It's all seamless and happens automatically by simply placing the files in the correct locations.

    That 'scripts' directory is just somewhere to store that ssh_connect.py script which is what gets called when Gate One spawns a new terminal (by default). Just think of the 'scripts' directory as an arbitrary place to store a non-plugin file or two (I could've just placed them inside the 'ssh' directory but that wouldn't be very organized =).

    Cool fact: Gate One loads JS and CSS files over the WebSocket.

If a listener nods his head when you're explaining your program, wake him up.

Working...