Hardware Requirements For Nodes
Nothing specific. Dual processor or dual core (preferably both). Lots of memory and disk space. Typical values can be seen in the table below:
Node |
Memory |
Processor(s) |
BogoMIPS |
OS |
calgary.canada.gaia-vxo.org |
4GB |
1 x AMD Athlon 64 X2 Dual Core Processor |
4420 |
Fedora linux |
uk.gaia-vxo.org |
4GB |
2 x Intel Xeon 2.8GHz |
5586 |
Gentoo linux |
sweden.gaia-vxo.org |
512MB |
1 x Intel Xeon 2.4GHz |
4807 |
Debian linux |
finland.gaia-vxo.org |
1GB |
1 x Intel Xeon 3.0GHz |
6010 |
Ubuntu linux |
Disk space will depend on the datasets you wish to store locally. There is no requirement to host all of the datasets. (it's not even necessary to host any datasets!) Allow around 800Mb/year for each data channel for an instrument in continual operation.
Software Requirements
Operating System requirements
Ideally GAIA should be indifferent to the choice of OS, however the following features are required or preferred:
- Symbolic links are assumed for certain aspects, currently they are:
-
server_config.php
, so that the local config file can be referenced by PHP but is outside of the main web directory, thus allow updated versions of GAIA to be installed without overwriting the server_config.php
file.
The preferred operating system is linux (tested with Fedora FC5, Fedora FC6, and Gentoo) though any unix-based operating system should work without problems. No development or testing has been performed under MS Windows though it is thought that all of the required components are also available for MS Windows.
Network requirements
For a GAIA node to operate correctly certain ports for input and output must be permitted.
ssh (TCP port 22)
Incoming access on port 22 is never required, though node operators can insist that other nodes mirror data using
rsync
through an SSH tunnel.
Outgoing access on port 22 is required only when mirroring datasets which define the synchronisation method to be
rsync+ssh
.
HTTP (TCP port 80 or alternative)
Incoming access is required on port 80 (default) or another port for HTTP. The
apache
config file defines virtual hosting, allowing multiple web sites to use port 80. HTTP is used for all the web services, serving web pages and possibly for allowing other sites to mirror data from the node. Nodes which may function as the master database node
must operate on port 80.
Outgoing connections are made to port 80 on the master node when querying the latest database dump file. Outgoing connections are also made to port 80 or alternative HTTP ports when the node attempts to synchronise any datasets it mirrors.
rsyncd (TCP port 873 or alternative, optional)
Incoming access is preferred on port 873 (default) or another port for
rsyncd
, for mirroring datasets and database dump files. If
rsyncd
does not operate on port 873 the node cannot become the database master node. For mirroring datasets it is possible to define incoming connections to tunnel through SSH (provided SSH uses the standard TCP port 22).
Outgoing connections are made by database slave nodes to port 873 as part of the database replication system. When synchronising datasets connections may be made to port 873 or other ports to connect to an
rsyncd
daemon. Some datasets may demand that synchronisation is performed through an SSH tunnel.
Summary of network ports
Port |
Service |
Incoming required |
Outgoing required |
Comment |
22 |
SSH |
No (optional) |
No (optional) |
See above |
80 |
HTTP |
Yes (unless you must use another port) |
Yes |
If necessary you can host on a port other than the standard port 80, but see above for limitations. |
873 |
rsync |
Strongly preferred |
Yes |
Use port 2873 for incoming connections only if port 873 cannot be used. |
2873 |
alternative rsync |
No, use 873 if possible |
Yes |
Use only if you cannot use 873 for incoming rsync connections. |
Applications and libraries
The components listed below pertain to GAIA. Each component may have additional or more restrictive requirements. If you find any GAIA dependencies not listed below please add them to this list.
Apache
Apache version 2. See also
NodeInstallationGuide.
C compiler
Any recent (within last 5 years) version of a C compiler should work, though
gcc
is preferred.
Cron
Any standard
cron
should be acceptable. If a windows-based system is used then Task Scheduler can probably be used instead.
(GNU) make
Any recent (within last 5 years) version of
make
should work. GNU make is preferred (required?). Feedback of which versions work successfully would be appreciated. Versions known to work are:
Imlib2
Imlib2 v1.2.1 or higher. Used for image processing and pseudocolour mapping.
JavaScript libraries
- Firebug, for web development.
firebugx.js
is used so that console.X
commands can remain in the code without causing errors on systems which do not provide such facilities.
- Sarissa, cross-browser wrapper library.
libCDF
CDF version 2.7 or higher; only required for nodes that store widebeam riometer data where the source files are in CDF format. You will need to ensure the CDF environment variables are set correctly in order for the GAIA CDF programs to compile.
PHP
PHP version 5. In addition the following modules are required:
- PDO for PostgresSQL.
- PECL JSON support (shipped with PHP 5.2)
Is it actually used? -- SteveMarple - 24 Sep 2007
- Readline (only for
sync.php
script, and then only for interactive use).
- SimpleXML
- zip support
- zlib support (and set
zlib.output_compression=1
in php.ini
) to allow automatic compression for browsers which accept it (see PHP Cookbook, 1st Edition §8.14).

If you are using Gentoo linux then ensure the following flags are set for PHP:
apache2 cli curl pdo postgres zip
.
PostgreSQL
PostgreSQL version 8. In addition you will need to install the
contrib
package as the following functions are used:

The
NodeInstallationGuide assumes a local installation of the PostgreSQL database. Network access to a remote database server is also supported.
rsync
rsync. Version 2.6.8 is known to work but older versions should work just as well. Reports on success with older versions would be appreciated.
Subversion
Subversion is used for all software development within GAIA, and also to install the latest version of the software.
sudo
You'll probably need to use
sudo
in order for the contributed PostgreSQL
earthdistance
function to be installed. The alternative is for the
gaia
database user to be a database superuser (not recommended).
unzip
unzip version 5.52 is known to work. Older versions should also work.
Software requirements for developers
xmlstarlet
xmlstarlet is used to validate the web service XML output. Version 1.0.1 is known to work.