Setting up a single-host server

BOINC provides a set of scripts for setting up and controlling a BOINC server complex. These scripts require all the server components to run on a single host. This has been tested only on Linux and Solaris hosts; it may work with small modifications on Windows also.

The scripts can be used to create multiple BOINC projects on the same host. This can be handy for creating separate projects for testing and debugging. In fact, the scripts are part of a general testing framework that allows multiple developers to work independently on a single host, with each developer able to create multiple projects.

Install the following software on the server host:

Your operating system must have shared memory enabled, with a max shared segment size of at least 32 MB.

Creating the server

Run the make_project script; example command line:

    cd tools/
    ./make_project --base $HOME/boinc --url_base http://boink/ yah 'YETI @ Home' upper_case 'UpperCase'
  
See "make_project --help" for more command-line options available (such as finer control of directory structure or clobbering an existing installation).

The script does the following:

Directory structure

Designate a "BOINC projects" directory on the server host. The scripts will create subdirectories as follows:
boinc_projects/
    proj1/
        config.xml
        bin/
        cgi-bin/
        log/
        pid/
        download/
        html_ops/
        html_user/
        keys/
        upload/
    proj2/
    ...
where proj1, proj2 etc. are the names of the projects you create. Each project directory contains: When you run the make_project script it will give you lines to append to your Apache httpd.conf. (Basically you need to alias html_user, alias html_ops, and script-alias cgi-bin, all with appropriate directory permissions.)

You should also set the default MIME type as follows:

DefaultType application/octet-stream

At this point you hopefully have a functioning BOINC server, but it has no applications or work to distribute. The remaining steps to make a public project include: