All Projects → berenm → termidor

berenm / termidor

Licence: BSL-1.0 license
A door to your home terminal

Programming Languages

C++
36643 projects - #6 most used programming language
javascript
184084 projects - #8 most used programming language
shell
77523 projects
CSS
56736 projects

Termidor: a door to your home terminal

Build Status Coverage Status Still Maintained?

INTRO

Termidor is a HTML5/Javascript interface communicating remotely via HTTP(S) protocol with a server-side bash (or similar) process. It is meant to be used for remote access from a restricted environment, where HTTP is the only allowed protocol.

USAGE

Termidor comes in two part:

  • A server-side process, termidord, in charge of managing user-sessions and running the shell child processes and the wrapping terminal emulation layer (implemented using the awesome GNOME's libvte).
  • An HTML page, with JQuery javascript code, in charge of capturing key inputs and translating them to ANSI control sequences that will be fed to the termidord child processes.

termidord is not meant to be accessed directly from the network. The server does not support any kind of authentication or security enforcement. It is focused exclusively on session managment and interface with the terminal emulator. Instead, termidord should be used behind a full-featured web server such as nginx, which will be configured to serve the static content (html page, css, and javascript), handle encryption (with HTTPS), and handle user authentication.

Current implementation can be tested with the following nginx configuration (It's a simple proxy, apache can do the same):

server {
  listen 127.0.0.1:8000;

  root <path-to-termidor-source>/termidor/www;
  index termidor.html;

  location / {
    try_files $uri $uri/ termidor.html;
  }

  location /termidor {
    proxy_pass http://localhost:8088;
  }
}

Running termidord is easy (for dependencies, look at the installed packages in .travis.yml):

mkdir build
cd build
cmake ..
make
./termidord

Then, interface can be accessed at http://127.0.0.1:8000. Chrome and Firefox browsers should be supported.

CONFIGURATION

For now, there is none, termidord spawns a /bin/bash -l instance, started with the same user as the termidord process. Might be possible later on.

COPYING INFORMATION

Distributed under the Boost Software License, Version 1.0.

See accompanying file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].