The PERL based Webmin tool provides a web-based adminsitration tool for Linux servers. It is an excellent tool but rather over-complex - the Apache admin module for example is far more complex to use than editing the raw config files even for beginners. Additionally, many of the modules don't seem to get updated regularly.
Webmin.js is my first proper experiment with Node.js. I wanted to reproduce and enhance the parts of webmin that I really want and to see how easy this might be using Node.
Note that this is very much a part-time project. I am not a "developer", I use programming to support my various roles as an IT consultant & contractor. So it will likely be a long time before this is anything more than a "garden shed" project.
-
Creates an https server assigned to a free port (starting at 8000)
-
Uses an external js file (example included as docs/.secureme.example) that can be require'd to provide certificate and http basic authentication details.
-
Uses a simple JSON variable to create a menu of links
-
Uses a JSON file to provide a grouped list of links for display on the index page. See docs/links.json.example
-
Provides a package.json file for npm installation. You can check out the github project and run
npm install -d
at the command prompt to get the dependencies. -
Commands currently implemented:
utime
- shows the output of theuptime
shell commandtop
- shows the output of a single top (top -b -n 1
) shell commandports
- shows the output of lsof and netstat showing open ports on the systemcmdexec
- input any shell command and return the output to the browser- Currently has limited buffer capability (easily exceeded by a large
aptitude search
for example) - Has NO input checking yet! You've been warned!
- Currently has limited buffer capability (easily exceeded by a large
fsedit
- VERY simplistic file editor. Supply a folder/file name - it is retrieved to a textarea, edit and save.- Has NO input checking yet! You've been warned!
Some of the other things I want to do:
- Service checker using a simple JSON configuration to check that multiple services are working properly (e.g. web, email, database)
- Log viewer. Although log.io looked promissing it doesn't get kept up-to-date against Node so it's no use to me
- File editor - possibly grouped by services so that you can see all of the relavent files for a server service, website, etc. - Probably will include live syntax highlighting (as at github).
- Aptitude - update, search, show (details), install and uninstall Linux applications (Debian/Ubuntu)
- npm - update, search, show (details), install and uninstall Node.js modules
- PECL - update, search, show (details), install and uninstall PHP modules
- Service restarter - automatically list the available services (Debian) with button(s) to restart the services - maybe also add a marker (or colour) to show if they are running
- Change from a simple client/server interaction model to an AJAX one, possibly using socket.io
Feel free to add other suggestions by raising an "Issue" on the github project (TotallyInformation/webmin)
Webmin.js by Julian Knight (Totally Information) is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Based on a work at TotallyInformation@github.com.