wiki:HtmlOps
Last modified 2 months ago Last modified on 06/23/14 11:16:40

Administrative web interfaces

Server status page

Each project has a server status page (project_url/server_status.php). This page, which is visible to the public, provides a "dashboard" for the project's server. It shows:

  • A list of the project's daemons, whether they're running, and where.
  • A count of jobs in various states.
  • Counts of active users and hosts.
  • The average throughput (FLOPS) of the project.
  • A list of the project's applications, with a summary of job throughput for each.

Project management page

Each project also has an project management web page, not visible to the public, that lets project administrators

  • Browse the database
  • Screen user profiles
  • Administer "special users" (e.g., forum moderators)
  • Create and edit applications and app versions
  • Send mass email to users (note: a more flexible way of doing this is described here).
  • Send emails to users with malfunctioning hosts.
  • See a distribution of how many FLOPs results are using.
  • Cancel workunits
  • View recent results, and analyze failures
  • Browse stripcharts
  • Browse log files

If your project's URL is http://a.b.c/test, then the URL of the project management page is http://a.b.c/test_ops. The directory containing the admin pages is ~/projects/test/html/ops/.

Because the page lets you do things like see user email addresses, it's extremely important that it be secure. There are two levels of protection:

Protection by .htaccess

When a project is created, a file html/ops/.htaccess is created that disallows access to the project management page. You can use htpasswd to create a .htpasswd file containing credentials for yourself:

htpasswd -c .htpasswd username

Project-defined protection policy

The config file html/project/project.inc can specify a function auth_ops() that defines a project-specific policy for protecting the project management page. Possible policies:

  • Access only if logged in as user from a given list.
  • Access only to users with ADMIN or DEV flag set in forum_preferences.privileges.
  • Access only from specific IP addresses.
  • Any other policy you can think of.

Some examples are given in the function auth_ops_example() in the default config file.