TODO: update stuff about make_project (don't add application/appversion in make_project); move it to tool_make_project.php.

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 all components listed in the Software Prerequisites page. 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.) It will also give you a crontab line to install.

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: