Installing RAMADDA

This small tutorial is based on:


First you need to download RAMADDA from the SourceForge site. The last version at the moment of this writing is 1.5:


RAMADDA can run stand alone or under a servlet container. Since we may want to run other applications, we will use Tomcat to run RAMADDA.

So the first step is to install the Tomcat servlet container. We can smoothly install it with the yum package manager. With CentOS 6.4 the version is still 6.0, but it’s fine to run our RAMADDA repository:

yum install tomcat6.noarch

Tomcat6 will be installed by default in /usr/share/tomcat6. Take a look at the directories inside and explore the configuration files.

Try now to start it:

service tomcat6 start

And check if you are able to contact the test page. Actually nexus is redirecting all the traffic on the 8080 port to the grid3 server:


Now you can copy the repository.war file, you downloaded from the SourceForge site, to the webapps directory inside /usr/share/tomcat6. If tomcat6 is running, you will see anything, but Tomcat will automatically deploy the application. Check if a new repository directory has been created under /usr/share/tomcat6/webapps:

cp repository.war /usr/share/tomca6/webapp

Try now to check the default home page for the newly installed application:


If it displays an error, it means that the RAMADDA home was not set. RAMADDA needs a home directory, that by default will be a hidden directory named ramadda in the server process home directory. Check also for the Tomcat log in /usr/share/tomcat6/logs to see other errors.

You need to think now on where to put the RAMADDA home directory. This will be where RAMADDA will look for files and other resources, where the java derby database is stored and where uploaded data files are stored.

The best way to set a new home for RAMADDA is to specify it in the repository.properties under the WEB-INF directory, located in /usr/share/tomcat6/webapp/repository/ . Moreover, you can specify an alternative point of access to reach the service on the web. By default you will reach RAMADDA on the http://your-web-server:8080/repository , but you can change this path editing the ramadda.html.urlbase variable in the same file:

Edit repository.properties and modify the RAMADDA home variable to point to the right directory. Try to modify also the ramadda.html.urlbase to specify an alternative point of access for RAMADDA.

Now set the RAMADDA directory you specified in the above file. This could be for instance a /storage directory on your filesystem, that is a mount point to access storage space dedicated to store data:

mkdir -p /storage/ramadda
chown -R tomcat.tomcat /storage/ramadda/

Finally, restart the tomcat6 service to let the modifications take effect. Check the catalina.out log in /usr/share/tomcat6/logs to look for errors:

service tomcat6 restart

If you connect now to your webserver, you will see the RAMADDA instance now up and running. You will add some basic information to set up the repository (admin password is the most important one).

Take a look at the directory hierarchy RAMADDA creates under its home:

[root@grid3 ramadda]# tree -L 1
|-- derby
|-- htdocs
|-- logs
|-- plugins
|-- process
|-- resources
|-- storage
|-- tmp
|-- uploads

9 directories, 0 files

The main directories are:

  • htdocs: where RAMADDA will look for any static web content
  • logs: where RAMADDA will store log files
  • plugins: RAMADDA will look for plugins in this directory. By default RAMADDA is packaged with a lot of useful plugins.
  • resources: where RAMADDA will look for any internal resources (html template files, etc.)
  • storage: this is the directory where the uploaded files are stored. The directory structure will be y<year>/m<month>/d<day>/thefiles


You can configure all the basic settings by means of the web admin interface. If you click on the Admin on the left side of the page you can enter the admin panel. Here you can: - change the repository title and logo (12.0.5 configuration ramadda) - add new users - create folders and upload files - defining where RAMADDA can serve files from - limiting access to certain parts of the repository


Try to follow the tutorial and accomplish the following tasks:
  • create folders and entries
  • editing entries
  • managing entries
  • manage entry access control
  • populate the server

Installing THREDDS

This tutorial is based on:


First step to have the THREDDS server installed is to install Java distributed by Oracle. Even if there are different distributors of Java and Java servlet container, Unidata develops THREDDS using Java by Sun.

Download Java from Oracle official page:

> tar zxvf jre-7u45-linux-x64.tar.gz 
> mv jre1.7.0_45/ /usr/lib/jvm

Edit the configuration of Tomcat to use newly installed Java. Set also some options:

> nano /usr/share/tomcat6/conf/tomcat6.conf
# modify JAVA_HOME to point to the new installed java
#set JAVA_OPTS to
JAVA_OPTS="-Xmx4096m -Xms512m -server -Djava.awt.headless=true -Djava.util.prefs.systemRoot=$CATALINA_BASE/content/thredds/javaUtilPrefs"

Restart now the Tomcat container:

service tomcat6 restart

check if the tomcat container is using the new Java:

ps wuax | grep tomcat

If everything is correct, you can proceed to install THREDDS.

Download THREDDS from the Unidata offical page:


By default THREDDS will look for a content directory to store the data, located in /usr/share/tomcat6/webapp/content. You may want to change this, for instance to point to /storage/thredds. Create /storage/thredds and modify the tomcat6 configuration file to use that directory for the THREDDS service:

> mkdir /storage/thredds 
> chown tomcat:tomcat /storage/thredds
#modify tomcat6.conf to specify, with the JAVA_OPTS variable, to use that directory for the THREDDS application
> nano /usr/share/tomcat6/conf/tomcat6.conf
JAVA_OPTS="-Xmx4096m -Xms512m -server -Djava.awt.headless=true -Djava.util.prefs.systemRoot=$CATALINA_BASE/content/thredds/javaUtilPrefs -Dtds.content.root.path=/storage/thredds"

Now restart tomcat6 and check if the service is up and running.


Try to upload data as suggested in the official Unidata tutorial:


You may want to upload a bunch of files from a directory in you local filesystem. Take a look to the datasetscan feature:


and try to describe a datasetscan service in the enhancedCatalog.xml under your THREDDS home:

        <datasetScan name="Test scan" ID="testScan"
             path="testScan" location="/storage/thredds/thredds/public/testscan/"