wiki:control-panel/hacking

Control Panel (Red) Admin/Hacking Overview

Red is a system designed to allow non-technical users to easily make system changes to servers running Linux via a web interface.

Most of red is PHP code libraries designed to be extended by a programmer, not used out of the box. If you are looking for a turnkey solution, this is probably not for you. On the other hand, if you are looking for a way to give your users web access to modify settings on your server that require root privileges and you don't want to change the way your servers are configured to work with a monolithic control panel system you may be interested in Red.

There are three parts to an installation that uses Red:

  1. MySQL database. There is one central database containing all the settings used by Red. For a network of servers, all servers need access to this database.
  2. UI machine. This machine runs the web application that allows users to add/edit/delete configuration settings, and stores those settings in the MySQL database, and notifies node servers that they have pending changes.
  3. Node machines. There can be one or more machines. These machines are configured to check the central MySQL database to see if there are any pending requests, execute the requests, and update the status of the request in the database.

The following pages go into more detail about how these elements work together:

  • The database schema provides a simple representationship between the tables in the database.
  • The object diagram shows the class inheritance of the main classes used in red.

  • The state transition describe the typical states for items created by the database.

You can download the code via git with:

git clone git://git.mayfirst.org/mfpl/red

Or, if you have write access:

git clone gitolite3@git.mayfirst.org:mfpl/red
Last modified 18 months ago Last modified on Mar 17, 2018, 8:10:45 AM