Running DSpace: Technical overview, lessons learned, workflows and essential skills
Running Dspace
Technical overview, lessons learned, workflows
and essential skills
Alan Orth and Sisay Webshet
Dspace Ethiopia Interest Group Meeting
Addis Ababa, 28 October 2013
Instance Overview
CGSpace
(cgspace.cgiar.org)
● “Production”
● Should always be up &
stable
● Is the “reference”
implementation
DSpace Test
(dspacetest.cgiar.org)
● “Development”
● Changes to style,
functionality, DSpace etc
are tested here first
● Sometimes wiped clean
Living With Legacy Decisions...
CGSpace and DSpace Test on the same machine…
● In 2010 CGSpace had a fraction of the content,
users, etc, so it didn’t affect the running of the
system
● Not true anymore!
● 100s of 1000s of monthly views...
● Large assetstore, log files, RAM / CPU usage, etc
CGSpace Code Is 100% Open
Source code is on github: github.com/ilri/DSpace
How The Code Is Organized
Production code lives in the 3_x-prod branch; this
is stable, tested code. Updates (if any) come from
the development branch on Monday.
Development code lives in the 3_x-dev branch;
this is semi-tested code! Changes throughout the
week.
“Social Coding” on GitHub
● Anyone can “fork” the
code repository to their
own GitHub account
● Source code repositories
can share code via “pull
requests”
● Developers can comment
on changes and discuss
issues
GitHub “OctoCat”
Workflow Lessons Learned
● Sending changes is good, but leaves the
burden of merging to me
● Sending patches is better, but requires sender
to know how to generate them
● Sending a pull request is best, but requires
sender knows how to use git, branches, etc
Scenario: Create A New Theme
Creating an XMLUI theme for a new community
Create community in DSpace (ie, 10568/38440)
Add custom metadata (ie, cg.subject.bioversity)
Add custom submission template (input-forms.xml)
Copy existing XMLUI theme (ie ILRI) as a reference, and
customize for center-specific metadata, look & feel, etc
5. Update search & browse indexes (dspace.cfg)
6. Update XMLUI config for new theme (xmlui.xconf)
1.
2.
3.
4.
DSpace Sysadmin Crashcourse
DSpace...
● is a Java application
● builds using maven and ant
● uses PostgreSQL as a database backend
● stores PDFs and other blobs in the filesystem
(“assetstore”)
● runs best on Linux
Why Not Use Tomcat Directly?
Any sysadmin will tell you that working with Tomcat is a joy*.
Surprisingly**, these things are annoying in Tomcat:
● Virtual hosting
● SSL
● redirects
● caching and manipulating headers
*for some definitions of “joy”
**not surprising, actually
Essential Technical Skills
Managing a DSpace instance doesn’t require “programmers”
or “developers” (but it doesn’t hurt).
Mainly, you’ll need:
● Linux experience (Debian, CentOS, Ubuntu)
● Administration experience (web servers, log files, cron jobs,
security)
● Software development concepts (git, patches,
branching/merging)
Better lives through livestock
ilri.org
The presentation has a Creative Commons licence. You are free to re-use or distribute this work, provided credit is given to ILRI.