wiki:MakeProject

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

--

The make_project script

The make_project script creates the server components of a BOINC project. To use it, set up a BOINC server. Then, for example, type:

cd BOINC_SOURCE/tools
make_project --test_app cplan

This creates a project with master URL http://HOSTNAME/cplan/ whose directory structure is rooted at $HOME/projects/cplan.

More specifically, make_project does the following:

  • Create the project directory and its subdirectories.
  • Create the project's encryption keys if necessary. NOTE: before making the project visible to the public, you must move the code-signing private key to a highly secure (preferably non-networked) host, and delete it from the server host.
  • Create and initialize the MySQL database
  • Copy source and executable files
  • Generate the project's configuration file.

With the --test_app option (recommended) the project will have a test application (uppercase) and daemons to generate and handle work for this application. This lets you quickly check that the project is working; you can remove the test application later by editing config.xml.

The following steps complete the project setup:

  • Insert PROJECT_NAME.http.conf into /etc/apache/httpd.conf (path varies), or Include it from that file.
  • Run crontab -e, and add an entry to run the project's cron script:
     0,5,10,15,20,25,30,35,40,45,50,55 * * * * PROJECT_HOME/bin/start --cron
    

(if cron cannot run 'start', try using a helper script to set PATH and PYTHONPATH)

  • Run bin/xadd and bin/update_versions in the project's home directory.
  • Run bin/start.

The script prints instructions for these steps.

The command-line syntax is as follows:

make_project [options] project_name [ 'Project Long Name ' ]

Options are as follows (normally you don't need to include any of them):

directory options

--project_root Project root directory path. Default: $HOME/projects/PROJECT_NAME
--key_dir Where keys are stored. Default: PROJECT_ROOT/keys
--url_base Determines master URL Default: http://HOSTNAME
--no_query Accept all directories without yes/no query
--delete_prev_inst Delete project-root first (from prev installation)

URL options

--html_user_url User URL. Default: URL_BASE/PROJECT_NAME/
--html_ops_url Admin URL. Default: URL_BASE/PROJECT_NAME_ops/
--cgi_url CGI URL. Default: URL_BASE/PROJECT_cgi/

database options

--db_host Database host. Default: none (this host)
--db_name Database name. Default: PROJECT_NAME
--db_user Database user. Default: current user
--db_passwd Database password. Default: None
--drop_db_first Drop database first (from prev installation)

Miscellaneous options

--test_app install test application
--verbose={0,1,2} verbosity level, default 1
-h or --help Show options