mirror of https://github.com/BOINC/boinc.git
115 lines
3.9 KiB
HTML
115 lines
3.9 KiB
HTML
<title>Setting up a single-host server</title>
|
|
<h2>Setting up a single-host server</h2>
|
|
|
|
<p>
|
|
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.
|
|
<p>
|
|
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
|
|
<a href=test.html>testing framework</a>
|
|
that allows multiple developers to work independently on
|
|
a single host, with each developer able to create multiple projects.
|
|
<p>
|
|
Install the following software on the server host:
|
|
<ul>
|
|
<li> MySQL, version 3.23 or later
|
|
<li> PHP, version 4.2.3 or later
|
|
<li> Apache, linked with the PHP module, POST enabled
|
|
<li> Python, version 2.2 or later
|
|
</ul>
|
|
Your operating system must have shared memory enabled, with
|
|
a max shared segment size of at least 32 MB.
|
|
|
|
<h3>Creating the server</h3>
|
|
<p>
|
|
Run the <code>make_project</code> script; example command line:
|
|
<pre>
|
|
cd tools/
|
|
./make_project --base $HOME/boinc --url_base http://boink/ yah 'YETI @ Home' upper_case 'UpperCase'
|
|
</pre>
|
|
|
|
See "make_project --help" for more command-line options available (such as
|
|
finer control of directory structure or clobbering an existing installation).
|
|
<p>
|
|
The script does the following:
|
|
<ul>
|
|
<li> Create the project directory and its subdirectories.
|
|
<li> Create the project's encryption keys if necessary.
|
|
NOTE: before making the project publicly visible,
|
|
you must move the code-signing private key
|
|
to a highly secure (preferably non-networked) host,
|
|
and delete it from the server host.
|
|
<li> Create a MySQL database for this project,
|
|
named (BOINC_USER_NAME)_(project-name).
|
|
<li> Insert initial records in the project, platform, user, and app
|
|
tables.
|
|
<li> Copy cgi-programs to project/cgi-bin
|
|
<li> Copy daemons to project/cgi
|
|
<li> Copy html files to project/html_user and project/html_ops
|
|
<li> Generate the configuration file (config.xml) used by
|
|
the server programs.
|
|
</ul>
|
|
|
|
<h3>Directory structure</h3>
|
|
|
|
Designate a "BOINC projects" directory on the server host.
|
|
The scripts will create subdirectories as follows:
|
|
<pre>
|
|
boinc_projects/
|
|
proj1/
|
|
config.xml
|
|
bin/
|
|
cgi-bin/
|
|
log/
|
|
pid/
|
|
download/
|
|
html_ops/
|
|
html_user/
|
|
keys/
|
|
upload/
|
|
proj2/
|
|
...
|
|
</pre>
|
|
where proj1, proj2 etc. are the names of the projects you create.
|
|
Each project directory contains:
|
|
<ul>
|
|
<li>config.xml: configuration file
|
|
<li>bin: server daemons and programs, including the main <code>start</code>
|
|
program as well as all the daemons
|
|
<li>cgi-bin: cgi programs
|
|
<li>log: log output
|
|
<li>pid: lock files and pid files
|
|
<li> download: storage for data server downloads.
|
|
<li> html_ops: copies of PHP files for project management.
|
|
<li> html_user: copies of PHP files for the public web site.
|
|
<li> keys: encryption keys used by the project.
|
|
<li> upload: storage for data server uploads.
|
|
</ul>
|
|
|
|
When you run the <code>make_project</code> script it will give you lines to
|
|
append to your Apache <code>httpd.conf</code>. (Basically you need to alias
|
|
html_user, alias html_ops, and script-alias cgi-bin, all with appropriate
|
|
directory permissions.)
|
|
<p>
|
|
You should also set the default MIME type as follows:
|
|
<pre>
|
|
DefaultType application/octet-stream
|
|
</pre>
|
|
|
|
|
|
<p>
|
|
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:
|
|
<ul>
|
|
<li> Develop, debug and test your application.
|
|
<li> Develop back-end systems for generating work and processing results.
|
|
<li> Using the "add" utility, add application versions to the BOINC database.
|
|
<li> Develop your web site.
|
|
</ul>
|