So what is this WebRSH thing and what is it good for?
The short answer is: WebRSH is a flexible and extensible general purpose web-based computing shell, designed to run as a CGI program and to provide a command line interface, file manager, text editor, and a few other basic things while being highly configurable and adaptable to various tasks.
Here is a much longer answer, that also puts WebRSH in the context of other available programs:
WebRSH is somewhat similar to programs of a type known as "site managers." These are usually CGI programs aimed at providing users with a web-based interface to manage their website space. They typically include a simple file manager along with a form-based text editor. Links to some site managers are provided here . While WebRSH can be effectively used as a site manager its scope is much wider than that. It is intended to provide a general purpose computing shell, and, roughly speaking, its features are a superset of what typical site managers do. Some of the key differences between WebRSH and typical site managers are:
Another type of programs to which WebRSH is related are web-based administration tools. From Netscape's administration server to webmin to linuxconf the usefulness and popularity of such tools for remote server administration is clear. Such tools typically provide a form based interface to the administration of specific services or portions of the operating system. In some cases, they also provide the capability to edit directly certain configuration files. But what if you want to edit a configuration file that these tools don't know about? To save a backup copy of an existing configuration? To import a previously saved configuration? To find out who is running netscape by typing "ps auxw | grep netscape" rather than having to extract this information from a long list?
This is where WebRSH comes into the web-based administration picture. By providing a general purpose command line and file manager at your fingertips, it complements specialized configuration tools and can be used in conjunction with such tools to achieve a complete web-based administration solution. In fact, WebRSH can be easily integrated with many existing administration tools. Here are some specific examples:
In fact, by using WebRSH's Frames Interface, WebRSH can become the main portal for web-based administration of a system. Links to various administration tools can be inserted to its main menu (the main menu of the frames interface is simply an html page with a bit of JavaScript, and it can be easily edited and customized), and these tools can then be run in its main frame, such that the command line interface and the main menu itself are kept readily available. Furthermore, WebRSH provides a plugin API that should make it easy to integrate self-contained CGI programs (or programs that take advantage of some portions of WebRSH itself) into it, without changing a single line of code in WebRSH itself. Thus, WebRSH can be a starting point to creating a more complete administration system. Another important aspect is the capability of WebRSH to start other programs alongside the fact that as a CGI program it need not involve running an independent server. As long as an appropriate web server is running, programs such as a VNC server, webmin, or even inetd can be installed and started with WebRSH only when needed. This can help to utilize such programs when needed, while avoiding the resource consumption and potential security risks involved in keeping them constantly running.
What are WebRSH's main design principles and future goals?
The main goal for WebRSH at the moment is to be good at what it is (a general purpose computing shell), while attempting to maximize compatibility (with operating systems, servers, and browsers), performance, configurability, and adaptability. Being a CGI program means that it should be easy to incorporate WebRSH as a plugin (or module) of other programs, and being implemented in Perl makes it easy to modify and adapt to various tasks. At the same time, WebRSH provides its own plugin API which enables other CGI programs to be integrated with it.
There are virtually no limits on how far the general concept of a "web-based computing shell" can be carried. It is possible to combine CGI, Java, JavaScript, etc., to produce a fairly extensive computing environment, as well as applications to run in it. Indeed, this may be a direction some portions of the computing world are moving to, and, in a sense, WebRSH fits into that paradigm if you think of programs written to be WebRSH plugins as "applications" written for its API. To the most part, however, such things are beyond the scope of WebRSH, which is focused on providing a solid basic shell that can be effectively operated from virtually any web browser and over low bandwidth network connections.
The following more specific guidelines effect WebRSH's design: While WebRSH uses some JavaScript code and has an optional interface that utilizes frames, the use of such "advanced" technologies is:
How can I help the WebRSH project?
Help can include general feedback, bug reports, fixes, feature requests, reports on success or failure of using WebRSH in settings where its usability status is not yet known, etc. It can also be more substantial and include implementing portions of WebRSH that are still missing, improving the existing documentation, writing CGI plugins that add to WebRSH's functionality, and porting WebRSH to operating systems on which it does not yet work (or providing "missing pieces" like pslib-*.pl scripts for operating systems where some of WebRSH's functionality is absent). More generally, if you think something is missing, please drop me a note . If you are also willing to do something about it, that's even better.
Note that while WebRSH is basically a simple program, making it
robust and reliable across many operating systems, web servers,
and browsers isn't so trivial. Furthermore, WebRSH can be extended
to cover more grounds as a system administration tool, as well as
to become a first class site manager. This seems worthwhile
since its core is more robust than any free site manager that I
know of, and while webmin
is growing into an impressive system
administration tool, it is not free software. However, all this is
not likely to happen if WebRSH's development remains the doing
of a single person: My access to operating systems is
restricted to Win32, Linux, and (to a lesser extent) Solaris,
I don't run an ISP or anything of the sort--so my real world
experience in using WebRSH is limited, and, of course,
my time is also limited.
Here is a random collection of links to programs that may be of interest to people that are interested in WebRSH.