Home › Forums › AFP548 Community › Projects › Fedora Digital Repository Management System
PROJECT DESCRIPTION
Fedora is an open source project to be used by universities and other organizations for management of digital assets. The project is written in Java 1.4 and takes advantage of MySQL. In its 1.0 release it can be compared in some ways to Canto Cumulus or Extensis Portfolio in their high end iterations. Future enhancements should easily take it far past these products as it integrates versioning and Access Control and Aunthentication features to become a fully functional Digital Asset System.
Step 1: Prepare for installation
Fedora requires Java version 1.4 or higher as well as MySQL 3.2.3 or higher, both of which come installed on Mac OS X Server 10.2.
Step 2: Download Fedora
The current release is 1.0 and is available at this url:
Step 3: Fedora home directory
Fedora prefers to be installed in /usr/local in a directory called fedora-1.0. Within this directory you will want to install both the server and the client. In this way you will have to directories within fedora-1.0: server & client.
Step 4: Set permissions for Fedora
Fedora must have write permissions for its bin directories. These are set with the following commands:
sudo chmod 755 /usr/local/fedora-1.0/server/bin/*
sudo chmod 755 /usr/local/fedora-1.0/client/bin/*
Step 5: Prepare environmental variables
These variables need to be set prior to launching Fedora:
JAVA_HOME
PATH
FEDORA_HOME
They can be set on a single instance basis in the following way:
1. Log into the terminal
2. type “sh”
3. type “export” to get a list of current exports. You will note that PATH already exists.
4. type each of the following lines to create your necessary exports:
export PATH=”/bin:/sbin:/usr/bin:/usr/sbin:
/System/Library/Frameworks/JavaVM.framework/Versions/1.4.1/Home/bin:
/usr/local/fedora-1.0/server/bin:/usr/local/fedora-1.0/client/bin”
export FEDORA_HOME=/usr/local/fedora-1.0
export JAVA_HOME=”/Library/Java/Home”
Note the PATH export above is broken into three lines for posting but must be one contiguous line.
Now, obviously this is not the correct way to do this. To permanently set the environmental variables you need to create an XML file named “environmental.plist” inside a folder named “.MacOSX” within the home directory of the login account. To format the information correctly within the XML file, Apple suggest you use the PropertyListEditor application that comes with Developer Tools:
Step 6: Symobolic Link for orbd location
To verify that you are using Java 1.4 or higher, Fedora checks for the presence of orbd. Apple does not place orbd in the location Fedora expects. To resolve this you will need to symlink the orbd found at:
/System/Library/Frameworks/JavaVM.framework/Commands
to
/System/Library/Frameworks/JavaVM.framework/Home/bin/orbd
Step 7: Configure database
You need to create a database in MySQL named “FedoraObjects”. It is probably easiest to do this within PHPMyAdmin.
Step 8: Modify Fedora Configuration file
Prior to launching Fedora you need to edit the Fedora configuration file located at:
/usr/local/fedora-1.0/server/config/fedora.cfg
The following list of elements should be configured to your specific server settings:
adminPassword
This is where you set the value of the administrative user, ìfedoraAdminîís password. This is used when authenticating remote requests for performing administrative functions.
object_store_base
A directory where XML serializations of the digital objects will be stored. This will be created if it doesnít already exist. This parameter must be given as an absolute path.
fedora_temp
A temporary directory. This will be created if it doesnít already exist. This parameter must be given as an absolute path.
fedora_datastreams
A directory where datastreams of digital objects will be stored. This will be created if it doesnít already exist. This parameter must be given as an absolute path.
fedoraServerPort
The port on which the server should run. 8080 is often used, but this can be anything your OS / user privleges will allow.
fedoraServerHost
The host name of the machine on which Fedora runs. If the machine has aliases, use the alias that will be used by people connecting to the server (be it via a web browser or one of the SOAP API exposures).
DOManager/pidNamespace
This is the namespace id part of newly generated PIDs for objects. This should be a short string consisting of the characters [a-z][0-9]. When objects are first ingested or created in the repository, this will be the first part of the identifier used for them. (Note: the pid namespace wonít be used for objects that are ingested with a ìdemo:î pid)
DOManager/storagePool
This specifies the database connection pool to be used for the storage subsystem. Normally this will just identify ConnectionPoolManagerís default connection pool.
Management/allowHosts
A comma-separated list of IP ranges (for example, ì200.200.0.0-255.255.0.0,100.0.0.0-180.0.0.0î) that the clientís address is compared to for Management API access. If this is specified, the remote address must match for any Management request in order to be accepted. If this is not specified, all requests will be accepted unless the remote address matches a deny pattern (see below).
Management/denyHosts
IP Ranges to deny. If specified, the remote address must not match for any Management request in order to be accepted. If this is not specified, request acceptance is governed solely by the allowHosts parameter.
Access/allowHosts
Same as Management/allowHosts, except this controls access to the Access API.
Access/denyHosts
Same as Management/denyHosts, except this controls access to the Access API.
Access/doMediateDatastreams
This is for additional repository security. If true, all datastreams (even those that are referenced) will be piped through Fedora when they are sent to behavior services. See the description of this parameter inside fedora.fcfg for more detail on this option.
FieldSearch/connectionPool
Specifies the database connection pool to be used for the fielded search functionality. Normally this will be ConnectionPoolManagerís default pool.
OAIProvider/repositoryName
How you want your repository to be named in the OAI-PMH interfaceís Identify request.
OAIProvider/adminEmails
Who the OAI-PMH interface identifies as administrators to harvesters. This is a space-separated list.
OAIProvider/friends
A space separated list of OAI-PMH provider endpoints identifying other providers that you associate with. OAI harvesters use this for discovery purposes.
fedoraServerPort
The port on which the server should run. 8080 is often used, but this can be anything your OS / user privleges will allow.
ConnectionPoolManager/defaultPoolName
The pool to be provided to modules that request the default connection pool.
ConnectionPoolManager/poolNames
A comma delimited list of pools to make available. These should be identified by the id attribute of one of the datastore elements.
datastore/dbUsername
The username for database access. This should match the username used previously when setting up the database for Fedora.
datastore/dbPassword
The password for the database user.
datastore/jdbcURL
A JDBC URL that can be used to connect to your database. The syntax must match that required by the driver. Working examples for MySQL and McKoi are included.
datastore/jdbcDriverClass
Identifies the driver to use for connecting to the database. This is RDBMS-specific. If you need to use a driver that isnít already included, put the .jar file in server/tomcat41/common/lib./
Step 9: Start Fedora
You need to make sure Tomcat is running on your server. This is done through the Server Settings application via a checkbox under “Configure Web Service”.
The scripts for starting the server are located in the /usr/local/fedora-1.0/server/bin directory. To start the server issue this command:
sh fedora-start.sh
Step 10: Start the Fedora Admin
To begin working with Fedora, you can start the admin client located at /usr/local/fedora-1.0/client/bin. The command to start the Admin application is:
sh fedora-admin.sh
This will launch a Java Application which can be used to injest the demo files located in /usr/local/fedora-1.0/client/demo
The Fedora project has been updated to release 1.1. This is a bug fix release with few new features. New features include support for Oracle 9i & support for self-referential URLs.
The Fedora project has been updated to 1.2. This release adds content versioning of assets, improved interface, and new features to the Java client software.