Ajaxterm
Debian packages
The following Debian packages need to be installed
ajaxterm
References
Homepage
http://antony.lesuisse.org/qweb/trac/wiki/AjaxTerm
Configuration
Port
After installation, ajaxterm listens on port 8022. The port can be changed in
/etc/default/ajaxterm
I changed the port to 9000 because ports in the 8000-8999 range are reserved for domain-based services.
Proxying from 443
By default, ajaxterm will only bind to localhost, on port 8022, and thus will not be accessable from any other computer apart from localhost. In addition, ajaxterm only runs simple HTTP and is not secure.
In order to fix these problems, we create a proxy configuration for Apache that forwards connections on port 443 (https) to the ajaxterm service listening on port 9000. The configuration is made in
/etc/apache2/sites-enabled/herzbube.ch
and looks like this:
<IfModule mod_ssl.c> [...] <IfModule mod_proxy.c> # Rely on the general configuration file having enabled the # reverse proxy through the "ProxyRequests Off" directive ProxyPass /ajaxterm/ http://localhost:9000/ ProxyPassReverse /ajaxterm/ http://localhost:9000/ <Location /ajaxterm/> Require all granted </Location> </IfModule> [...] </IfModule>
As we can see, this configuration relies on some other file providing the directive:
<IfModule mod_proxy.c> ProxyRequests Off </IfModule>
Protecting access through .htpasswd
To protect the ajaxterm console from unauthorized access, we could provide another level of security by requiring the user to authenticate through the browser first (.htpasswd password protection). Since this is just another layer of security indirection I currently don't implement this feature.
Larger Terminal Window
This chapter copied verbatim from http://wiki.kartbuilding.net/index.php/Ajaxterm.
To get ajaxterm to use a larger terminal window within the browser, the following files need to be edited:
vi /usr/share/ajaxterm/ajaxterm.html window.onload=function() { t=ajaxterm.Terminal("term",100,40); }; </script>
vi /usr/share/ajaxterm/ajaxterm.py def __init__(self,width=100,height=40):
You may have to restart ajaxterm for the above to work.