Make skeletal project
- Compile the BOINC software, say into HOME/boinc.
Make sure MySQL is configured and running.
- run HOME/boinc/tools/make_project
- paste text into httpd.conf
- insert cron job
- xadd project.xml
- Edit html/project/project.inc, changing the
master URL and copyright holder.
- Add .htaccess and .htpasswd files to html/ops.
Visible result: the project web site is up.
The database 'platforms' table has several rows.
Troubleshooting:
check the Apache access and error logs.
Create an application version
- Create a BOINC application executable
(if you're in a hurry, use the test application).
- Copy the executable to HOME/projects/PROJECTNAME/apps/APPNAME
- cd to HOME/projects/PROJECTNAME/bin
- run ./update_versions, type y or return.
- run ./stop && ./start
Visible result: the web site's Applications page has an entry.
Create a work unit
- Using a text editor, create a work unit template file
and a result template file.
- Run create_work
- Edit the configuration file to add
".htmlspecialchars("")." records for
make_work,
feeder,
transitioner,
file_deleter,
the trivial validator,
and the trivial assimilator.
Visible result: 'status' shows the above daemon processes running.
Troubleshooting: check the log files of all daemon processes.
Test the system
- Create a client directory (on the same computer or different computer), say HOME/boinc_client.
Copy the core client there.
- Using the web interface, create an account on the project.
- Run the core client;
enter the project URL and the account ID.
Visible result: the client does a stream of work;
the web site shows credit accumulating.
Troubleshooting: check the log files of all daemon processes.
Develop back end components
- Write a work generator.
- Write a validator.
- Write an assimilator.
- Edit the configuration file to use these programs
instead of the place-holder programs.
- Make sure everything works correctly.
Extras
- Make the core client available from your site
- Add message board categories: see html/ops/create_forums.php
";
page_tail();
?>