8 Going public
David Anderson edited this page 2024-11-08 00:31:29 -08:00

You've created a BOINC server and ported your apps to BOINC. A few more steps are required before you can do large-scale computing.

The steps depend on the type of your project:

  • In-house project: you're going to use only in-house resources, like the desktop computers in a company. In this case, install the BOINC client on your worker nodes and you're done. Details are here.
  • Semi-public project: you're going to use volunteered resources, but you're not going to publicize your project. Instead, you're going to use Science United to get resources.
  • Public project: you're going to publicize your project to get volunteers (as well as possibly using Science United).

Things all projects should do

Get a good domain name

Your server might move, so your project's master URL should use a domain name, not an IP address.

If you change your project's master URL, all your volunteers will have to manually detach from the old URL and attach to the new one. You don't want this to happen. So pick a URL that will last. For example, if you're based at a university but there's a chance that your project will someday move elsewhere, don't use the university's domain; buy your own.

Server software upgrades

The BOINC server software evolves over time. Many of the changes are security fixes, so it's important to use the latest released version.

Subscribe to the boinc_projects email list to learn of new releases.

To upgrade server software, check out the latest version from github, stop the project, then

cd ~/boinc/tools
upgrade <project-name>

Log files

The BOINC server generates lots of log files (in ~/projects/<project-name>/log_<host-name>. Configure logrotate to rotate and purge these logs.

Backups

Back up the server. To ensure that the MySQL files are in a consistent state, stop the project while backups are happening. Or use a separate mechanism for backing up the DB.

Things that public and semi-public projects should do

Get an SSL key

Use e.g. Let's Encrypt. You'll then need to update your Apache config file, and change a couple of BOINC config files. Details are here.

This is important because - for example - scheduler request messages contain authentication information.

Do code signing

If hackers break into your server, and your code-signing private key is there, they could in theory use your project to distribute malware all your volunteers. That would be the end of your project, and a PR disaster for BOINC and volunteer computing.

You can prevent this by code-signing your executables on a secure, unconnected machine, as described here.

Get listed

Contact us and ask to have your project listed by BOINC. You'll be asked to demonstrate that your project is doing what you claim it is, and that you're following a set of security practices. Your project will then

  • be announced on the BOINC web site news column
  • be listed on the BOINC web site
  • appear in the list of projects shown in the BOINC Manager.

Register with Science United

Contact us and ask to have your project included in Science United, a framework in which volunteers sign up for science areas instead of projects. You'll need to tell us what types of research your project is doing, and then you'll automatically get computing power from volunteers who have registered an interest in those areas. This has the advantage that you don't have to create a public-facing web site or do any publicity. In addition, you can ask to be included in Science United even before you've created your project. At that point we can tell you roughly how much computer power you'll get, and you can decide whether this justifies the investment in creating a project.

Things that public projects should do

Add content to the web site

The BOINC server software provides a web site for your project. This site lets volunteers create accounts, log in, set preferences, view their computers, and so on. You can modify and extend it in various ways:

  • Edit <project_dir>/html/project/forum.inc. Here you can

    • Set the project name and copyright holder constants.
    • Add a CSS file.
    • Define functions that generate page headers (project_banner()) and footers (project_footer).
    • Enable/disable various features such as user profiles.
    • Make the site dark mode.
  • Edit the front page: <project_dir>/html/user/index.php. E.g., create a logo for your project and use it as the top image.

  • Add a page <project_dir>/html/user/about.php describing your project (see below).

  • Enable forums, as described here. You'll also want to create accounts for yourself and other project staff, and give them access rights to moderate the forums and post to the News forum.

  • Make news items. There's a special forum called Project News. Only staff can create new threads there, and by default recent items are shown on the front page. This is the easiest way to post news about your project, e.g. its research accomplishments. Scientists can post stories without having to edit files or know HTML or PHP.

  • Add web pages. You can add whatever pages you want, linking from from the front page or the project banner. These are PHP files in <project-dir>/html/user. They have the following form:

<?php
require_once('../inc/util.inc');
page_head('Title of page');
echo "
    <p>
    Content goes here
";
page_tail();
?>

Recruit volunteers

If your project is listed with BOINC (see above) you should get a few hundred or thousand volunteers. To get more:

  • Have your organization's PR person make a press release announcing your project, and try to get media coverage, e.g. in local newspapers, TV, or web sites.
  • Publicize your project within your organization. For example, it you're based at a university, get coverage in the alumni fundraising emails or magazine.
  • Create a Facebook page or Twitter account for your project, and post to it regularly.

Interact with volunteers

Volunteers are turned off by uncommunicative projects. Monitor your project's forums, and respond to posts where appropriate. Post news occasionally.

Unforunately, allowing volunteer content on your web site (e.g. forums and profiles) opens the door to spammers. You'll see forum posts and profiles with links to web sites that offer porn or sell Viagra. BOINC offers various tools for dealing with this - e.g. by allowing posts only by volunteers who have done a certain amount of computing.