wiki:CreateProjectCookbook

Version 5 (modified by davea, 17 years ago) (diff)

--

Project creation cookbook

Make a project

  • Create a BOINC server (preferably using the Server Virtual Machine).
  • Run make_project:
    cd boinc/tools/
    make_project --test_app myproject
    
  • Append the contents of ~projects/myproject/myproject.httpd.conf to httpd.conf and restart Apache.
  • Use 'crontab' to insert a cron job to run the project's periodic tasks, e.g. 0,5,10,15,20,25,30,35,40,45,50,55 * * * * ~projects/myproject/bin/start --cron
  • Edit html/project/project.inc, changing the master URL and copyright holder.
  • Protect the html/ops directory (e.g. use htpasswd to create .htaccess and .htpasswd files).

Visible result: the project web site is up.

Troubleshooting: check the Apache access and error logs.

Install and enable test application

  • Initialize database and add test application version
    cd projects/myproject
    bin/xadd
    bin/update_versions
    
  • Start the project
    bin/start
    
  • Create a client directory and copy the core client there, and run it.
    mkdir boinc_test
    cd boinc_test
    cp ../boinc/client/boinc_client .
    cp ../boinc/lib/boinc_cmd .
    boinc_client
    
  • Using the web interface, create an account on the project. Get the authenticator via email.
  • Attach to the account:
    cd boinc_test
    boinc_cmd --project_attach HOSTNAME/myproject/ authenticator
    

Visible result: the client does a stream of work; the web site shows credit accumulating.

Troubleshooting: check the log files of all daemon processes.

Add your own application version

  • Edit config.xml and remove items related to the test application (uppercase).
  • Add your application to project.xml and run bin/xadd again.
  • Write a BOINC application and compile it for your platform of choice.
  • Copy the executable to HOME/projects/PROJECTNAME/apps/APPNAME
  • Install the version and restart the project
    cd projects/myproject
    bin/update_versions
    bin/stop
    bin/start
    

Create a work unit

  • Using a text editor, create a work unit template file and a result template file.
  • Run create_work
  • Edit config.xml to add <daemon> records for make_work, the trivial validator, and the trivial assimilator. For example
    <daemon>
        <cmd>validate_test -app appname</cmd>
        <output>validate_test.log</output>
        <pid_file>validate_test.pid</pid_file>
    </daemon>
    
  • Restart the project

Visible result: the client downloads and runs your application.

Troubleshooting: check the log files of all daemon processes.

Develop back end components

Visible result: client executes a stream of workunits; a stream of completed results is handled by the assimilator.

Troubleshooting: check daemon log files

Before public launch

  • Create a new project; this time, immediately move the code-signing private key to an isolated code-signing machine. Generate all signatures on that computer.
  • Add message board categories: see html/ops/create_forums.php