IR-GUIDE
Upcoming SlideShare
Loading in...5
×
 

IR-GUIDE

on

  • 368 views

The guidelines are targeted at academic institutions in developing countries world wide, who want to start an open access research repository and who want to know in detail what is required and how to ...

The guidelines are targeted at academic institutions in developing countries world wide, who want to start an open access research repository and who want to know in detail what is required and how to do it step-by-step. This soup-to-nuts overview may be particularly useful for those involved in the early stages of planning for an institutional repository. The focus during development of the open system has been long term repository preservation, security, stability and interoperability on the internet.

Statistics

Views

Total Views
368
Views on SlideShare
367
Embed Views
1

Actions

Likes
0
Downloads
3
Comments
0

1 Embed 1

http://www.slideee.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

IR-GUIDE IR-GUIDE Document Transcript

  • PDF generated using the open source mwlib toolkit. See http://code.pediapress.com/ for more information. PDF generated at: Mon, 05 May 2014 09:31:20 CEST IR-GUIDE
  • Contents Articles Introduction 1 SUNScholar/Practical guidelines for starting an institutional repository (IR) 1 SUNScholar/Checklist 3 SUNScholar/Reference Architecture 5 SUNScholar/DSpace/Why Ubuntu Server 6 Step 1 10 SUNScholar/Guidelines/Step 1 10 SUNScholar/Open Access 11 SUNScholar/Repository Preservation 16 Step 2 18 SUNScholar/Guidelines/Step 2 18 Step 3 20 SUNScholar/Guidelines/Step 3 20 SUNScholar/Capacity Building/Digital Repository Systems Management 21 SUNScholar/Capacity Building/Digital Repository Content Management 24 Step 4 28 SUNScholar/Guidelines/Step 4 28 Step 5 30 SUNScholar/Guidelines/Step 5 30 SUNScholar/Install Ubuntu 31 SUNScholar/Prepare Ubuntu 32 SUNScholar/Install DSpace 32 Install DSpace/S04/3.2 32 Install DSpace/S04/1.8.2 37 Step 6 43 SUNScholar/Guidelines/Step 6 43 SUNScholar/Disaster Recovery/Backups/Client Setup 44 SUNScholar/Disaster Recovery/Backups/Server Setup 44
  • Step 7 47 SUNScholar/Guidelines/Step 7 47 Step 8 48 SUNScholar/Guidelines/Step 8 48 SUNScholar/Populating 49 Step 9 51 SUNScholar/Guidelines/Step 9 51 Step 10 52 SUNScholar/Guidelines/Step 10 52 Step 11 53 SUNScholar/Guidelines/Step 11 53 SUNScholar/Optimisations 53 Step 12 56 SUNScholar/Repository Information 56 XMLUI 60 SUNScholar/XMLUI Theme 60 SUNScholar/XMLUI Theme/Tutorial 60 SUNScholar/XMLUI Theme/Creation 66 SUNScholar/XMLUI Theme/Modify 68 SUNScholar/XMLUI Theme/Page Content 68 SUNScholar/XMLUI Theme/Page Structure 73 SUNScholar/XMLUI Theme/Language 78 SUNScholar/XMLUI Theme/Styling 80 Copyright 81 SUNScholar/Copyright 81 SUNScholar/Embargo 83 SUNScholar/Embargo Systems/3.2 85 SUNScholar/Embargo Systems/1.8.2 89 Customisation 92 SUNScholar/Customisation 92 SUNScholar/Theme 95
  • SUNScholar/JSPUI Theme 96 SUNScholar/Language 96 SUNScholar/Web Analytics 97 SUNScholar/Licences 98 SUNScholar/Browse Indexes 98 SUNScholar/Email Templates 100 SUNScholar/Item and Collection Permissions 100 SUNScholar/Community Management 102 SUNScholar/Harvesting 102 SUNScholar/SOLR Statistics 104 SUNScholar/Export and Import Artifacts 106 SUNScholar/Submission System 107 System Admin 108 SUNScholar/Upgrading 108 SUNScholar/Change Management 108 SUNScholar/Upgrading/DSpace/Release Notes/3.2 109 SUNScholar/Upgrading/Server Software 110 SUNScholar/Upgrading/Hardware/New Server 114 SUNScholar/Upgrading/Hardware/Add a New Disk 116 SUNScholar/User Management 119 SUNScholar/Rebuild DSpace 127 SUNScholar/Daily Admin 129 SUNScholar/Handle Server 130 SUNScholar/Internet Security 137 SUNScholar/Secure Internet Connections 138 SUNScholar/Firewall 152 References Article Sources and Contributors 155 Image Sources, Licenses and Contributors 157 Article Licenses License 158
  • 1 Introduction SUNScholar/Practical guidelines for starting an institutional repository (IR) Introduction The guidelines are targeted at academic institutions in developing countries world wide, who want to start an open access research repository and who want to know in detail what is required and how to do it step-by-step. This soup-to-nuts [1] overview may be particularly useful for those involved in the early stages of planning [2] for an institutional repository. The focus during development of the open system has been long term repository preservation, security, stability and interoperability on the internet. These guidelines are also an attempt to promote the use of a reference architecture as best practice, for the implementation of DSpace as a trusted institutional digital repository, as we did for our repository, SUNScholar (http://scholar.sun.ac.za). Considerations After quickly reading all of the steps below and then carefully building a test system, it should be possible to derive a business plan/model to solicit funding or prepare a fairly comprehensive initial capital expenditure foundation budget and then an implementation plan/schedule. It is assumed that the institution has internet access and is prepared to make provision for a production and two backup data centers [3] , in different geophysical locations, for the purposes of disaster recovery. It is also assumed that the institution is aware of the critical importance of data sovereignty [4] and repository preservation, especially in the light of the revelations about the American NSA [5] and the "takedown" campaign by Elsevier [6] . Step by step recommendations Step 1 - Open Access Policy and Repository Preservation Plan Step 2 - Marketing Friendly Persistent URL and Preservable Digital Objects Step 3 - Employ Repository Management Personnel Step 4 - Build Repository IT Infrastructure Step 5 - Install DSpace Repository Software Step 6 - Repository System Backup & Monitoring Step 7 - Repository Launch and Registration with Harvesters Step 8 - Capture Research Records and Submit Research Items Step 9 - Repository Self-Help and News Step 10 - Engage Research Partners Step 11 - Continuous System Improvement and Maintenance Step 12 - Repository Research, Support and Management Help Contacts
  • SUNScholar/Practical guidelines for starting an institutional repository (IR) 2 •• For open access advocacy and repository content management , please contact: Ina Smith: ?Subject=Libopedia%20Reference%20-%20Repository%20Content%20Management ismith@sun.ac.za [7] •• For repository preservation, repository interoperability and digitisation management, please contact: Wouter Klapwijk: ?Subject=Libopedia%20Reference%20-%20Repository%20Digital%20Preservation wklap@sun.ac.za [8] •• For repository systems management and errors/omissions/improvements regarding this wiki guide, please contact: Hilton Gibson: ?Subject=Libopedia%20Reference%20-%20Repository%20Systems%20Infrastructure hilton.gibson@gmail.com [9] Latest information for installations http://wiki.lib.sun.ac.za/index.php/SUNScholar/DSpace http://wiki.lib.sun.ac.za/index.php/SUNScholar/System_Admin http://wiki.lib.sun.ac.za/index.php/SUNScholar/Customisation http://wiki.lib.sun.ac.za/index.php/SUNScholar/Optimisations Use the online wiki when doing test/development/production/backup system installations because the wiki has the latest information. See the links above. •• Latest News http://lists.lib.sun.ac.za/mailman/listinfo/irtalk''' •• Printable PDF Book http://hdl.handle.net/10019.1/79321''' •• Shortened Web Link http://bit.ly/goodir References [1] http://en.wikipedia.org/wiki/Soup_to_nuts [2] https://wiki.duraspace.org/display/DSPACE/DSpaceResources#DSpaceResources-RepositoryPlanning [3] http://en.wikipedia.org/wiki/Data_center [4] https://www.google.co.za/search?q=data+sovereignty&oq=data+sovereignty&aqs=chrome..69i57j69i64&sourceid=chrome& ie=UTF-8#q=data+sovereignty [5] http://en.wikipedia.org/wiki/Global_surveillance_disclosures_(2013%E2%80%93present) [6] http://www.washingtonpost.com/blogs/the-switch/wp/2013/12/19/ how-one-publisher-is-stopping-academics-from-sharing-their-research/ [7] mailto:ismith@sun.ac.za [8] mailto:wklap@sun.ac.za [9] mailto:hilton.gibson@gmail.com
  • SUNScholar/Checklist 3 SUNScholar/Checklist Back to Guidelines Introduction This wiki page attempts to provide a simple quick check list with which to evaluate the repository system required for possible deployment. This quick check list is open systems based and does not only introduce the repository software but also the system, including preparedness for disaster recovery and long term repository preservation. The ultimate goal is to provide a high performance trusted system, that is sustainable in the long term, using open published standards and software. Essential Reading (Only available online) • 2014 - EU - DUTCH CITY EDE SAVES 92% ON SOFTWARE LICENCES WITH OPEN SOURCE SOFTWARE [1] •• 2014 - COMPUTERWORLD - 4 REASONS WHY COMPANIES SAY YES TO OPEN SOURCE SOFTWARE •• 2013 - MDPI - THE IMPORTANCE OF OPEN SOURCE SOFTWARE AND STANDARDS IN MODERN SCIENTIFIC PUBLISHING Archival Standards • NISO - Framework for Good Digital Collections [2] •• CCSDS - Open Archival Information System (OAIS) •• CCSDS - Audit and Certification of Trusted Digital Repositories •• OCLC - RLG - Trusted Digital Repositories Policies and Plans •• Open Access Policy (OAP) •• Repository Preservation Plan (RPP) Management •• System Personnel •• Content Personnel Researcher •• Identification •• Visibility •• Authorisation
  • SUNScholar/Checklist 4 Network •• Secure Connections •• Internet Firewall Hardware •• Bare Metal Server •• Virtualised Server •• Cloud Server Digital Objects •• Digital Object - Identifier •• Digital Object - Preservation •• Digital Object - Open Formats •• Digital Object - Closed Formats Software • Open Source Server Operating System [3] • Open Source Web Application Repository Software [4] System •• System Administration •• System Backups References • http://bit.ly/goodir • http://bit.ly/garpir References [1] https://joinup.ec.europa.eu/elibrary/case/dutch-city-ede-spends-92-percent-less-its-peers-software-licenses [2] http://wiki.lib.sun.ac.za/digital-collection [3] http://www.ubuntu.com [4] http://www.dspace.org
  • SUNScholar/Reference Architecture 5 SUNScholar/Reference Architecture Back to Guidelines Essential Reading (Only available online) •• 2008 - INTERSCIENCE - THE CONCEPT OF REFERENCE ARCHITECTURES Introduction In order to make the use of DSpace systems, simpler, more reliable and standardised it is proposed that the DSpace community adopt a reference architecture approach to DSpace. The benefits of the reference architecture approach would be: •• Much simpler installations. •• Much simpler configuration. •• Much simpler customisation. •• Much simpler upgrades. The very popular Wordpress CMS uses the LAMP stack [1] as it's de-facto reference architecture. This has made Wordpress very easy to install, configure and customise. The popular Open Journal System [2] (OJS) software also uses the LAMP stack. Definition • http://en.wikipedia.org/wiki/Reference_architecture • http://en.wikipedia.org/wiki/Software_architecture • http://en.wikipedia.org/wiki/Systems_architecture • http://en.wikipedia.org/wiki/Systems_design • http://en.wikipedia.org/wiki/Systems_engineering • http://whatis.techtarget.com/definition/reference-architecture Implementations • http://www.ibm.com/developerworks/rational/library/2774.html • http://www.redhat.com/resourcelibrary/reference-architectures • http://www.opengroup.org/soa/source-book/soa_refarch Proposal for DSpace 1. Standardise on an open source server operating system such as Ubuntu LTS. 2.2. Match versions of DSpace to the server operating system. 3.3. Match versions of required software to versions of DSpace and server operating system For example:
  • SUNScholar/Reference Architecture 6 Reference DSpace Ubuntu OS Database Java runtime Ant compiler Java webapp server RA-01 3.2 10.04 LTS PostgreSQL 8.4 OpenJDK 1.6 Ant 1.7 Tomcat 6 RA-02 4.1 12.04 LTS PostgreSQL 9.1 OpenJDK 1.7 Ant 1.8 Tomcat 6 |+ References [1] http://en.wikipedia.org/wiki/LAMP_(software_bundle) [2] http://www.journals.ac.za/index.php/System_Admin SUNScholar/DSpace/Why Ubuntu Server Back to Install Ubuntu - Step 1 Introduction In order to make the research outputs of Stellenbosch University available, the library decided develop an open access research repository service. The repository has to make the research available for future researchers as well. With this in mind as a selection criteria, DSpace [1] on top of the Ubuntu server [2] was used for the following reasoning: Reasoning 1.1. We cannot predict what technology will exist in the future. 2. But we can be almost certain, that open systems [3] based on open standards [4] will have a better chance of surviving to the future. 3.3. Since we are employing open systems based on open standards, we have to eliminate any proprietary systems or standards. 4.4. DSpace is open source software, supported by a foundation and is based on open standards. 5. DSpace is also very popular as a repository management system [5] . 6. Ubuntu is also supported by a foundation and is also one of the most popular linux distributions which are based on open source software [6] . 7. Ubuntu is committed to releasing a "long term support" (LTS) [7] version of the distribution every two years. 8. The method of Ubuntu LTS releases [8] allows us to plan for upgrades and makes capacity planning of the repository more effective. 9. In addition, Ubuntu is derived from Debian [9] , the original linux distribution. 10.10. Debian is very stable, and has a very large community supporting it. 11. Most linux distributions are based on open Unix [10] standards. 12. The Microsoft server software and client access licences are extremely expensive. [11] So considering all of the above, DSpace on an Ubuntu server made logical sense to comply with most of BOAI, section 3.
  • SUNScholar/DSpace/Why Ubuntu Server 7 Please Note: • It is not a good idea to use to use the latest LTS release of Ubuntu, if you do not have access to an expert Ubuntu linux system administrator. For example: If you install using Ubuntu 10.04 LTS, then wait until the second point release of the next LTS version before considering upgrading. • If you are considering using Redhat Enterprise Linux (RHEL), then remember Redhat is commercial and if they fail then so does your support. Whereas Ubuntu can be supported by Canonical commercially and by the Debian and Ubuntu linux community. So, long term support for Ubuntu/Debian is much more sustainable. See: http://community.ubuntu.com''' Comments on LinkedIn
  • SUNScholar/DSpace/Why Ubuntu Server 8
  • SUNScholar/DSpace/Why Ubuntu Server 9 References • http://ubuntu.sun.ac.za/wiki/index.php/Enterprise_Server_Management • http://www.jorgecastro.org/2013/04/29/13-reasons-to-deploy-with-ubuntu-server References [1] http://www.dspace.org/ [2] http://www.ubuntu.com/business/server/overview [3] http://en.wikipedia.org/wiki/Open_system_(computing) [4] http://en.wikipedia.org/wiki/Open_standard [5] http://wiki.lib.sun.ac.za/images/1/10/Opendoar-dspace-usage.png [6] http://en.wikipedia.org/wiki/Open-source_software [7] http://ubuntu.sun.ac.za/wiki/index.php/LTS [8] http://wiki.ubuntu.com/LTS/ [9] http://www.debian.org/ [10] http://www.unix.org/ [11] http://news.slashdot.org/story/13/08/09/2021205/microsoft-will-squeeze-datacenters-on-price-of-windows-server
  • 10 Step 1 SUNScholar/Guidelines/Step 1 Back to Guidelines Step 1 - Open Access Policy and Repository Preservation Plan Formulate an open access policy and then a repository preservation plan which leads to planning for and building repository management capacity, all of which, are designed to produce a trustworthy academic research repository. Proposed systems life cycle for open access academic research repositories. Below are links to information regarding the digital scholarly communication systems life cycle for open access academic research repositories, as demonstrated in the diagram above. The principles of an open access policy. Usually for the repository director to formulate in collaboration with institutional management. The principles of a repository preservation plan. Usually for the repository manager to formulate in collaboration with the institutions IT department. The principles of a trustworthy academic research repository. Usually an understanding between the repository management team and the institutions research office. PREVIOUS NEXT
  • SUNScholar/Open Access 11 SUNScholar/Open Access Back to Guidelines - Step 1 First, we go green open access, with repositories [1] . Then we go gold open access, with academic journals [2] . Until eventually, everything simply becomes open access. Brief History A subversive proposal [3] by Steven Harnard in 1994, precipitated later by the serials crisis [4] , led to the beginning of the open access movement [5] and the creation of institutional repositories [6] . Formulation An open access policy is usually for the repository director to formulate in collaboration with institutional management. Good Open Access Policy Practices http://bit.ly/goodoa Copyright Click on the heading above. Essential Reading (Only available online) •• 2014 - WRO - GROWTH OF OPEN ACCESS REPOSITORIES 2005 TO 2012 • 2014 - BREMBS - CONFLICTS OF INTEREST EVEN FOR "GOOD" PUBLISHERS [7] • 2014 - C LONG - TO BE PUBLISHED OR TO BE READ [8] • 2014 - RICHARD POYNDER - THE STATE OF OPEN ACCESS [9] •• 2014 - SCAP - COSTS AND BENEFITS OF OPEN ACCESS PUBLISHING - A GUIDE FOR MANAGERS IN SOUTHERN AFRICAN HIGHER EDUCATION •• 2013 - UNESCO - OPEN ACCESS POLICY VERSION 2 • 2013 - PETER SUBER - HARVARD WIKI - GOOD PRACTICES FOR UNIVERSITY OPEN ACCESS POLICIES [10] • 2013 - PETER SUBER - HARVARD OPEN ACCESS WIKI [11] •• 2013 - SPARC/PLOS/OSAPA - HOW OPEN IS IT? •• 2013 - MEDOANET - GUIDELINES FOR IMPLEMENTING AN OPEN ACCESS POLICY •• 2012 - REPORT TO OAUK - BENEFITS OF OPEN ACCESS FOR THE PUBLIC SECTOR •• 2012 - REPORT TO OAUK - FINAL •• 2012 - JISC - OPEN ACCESS AND VCS REPORT - FINAL
  • SUNScholar/Open Access 12 •• 2012 - FINCH GROUP - EXECUTIVE SUMMARY - FINAL VERSION •• 2012 - PETER SUBER - OPEN ACCESS BOOK •• 2011 - AN OPEN LETTER •• 2011 - REPORT TO OAUK - BENEFITS OF OPEN ACCESS FOR THE PRIVATE SECTOR • 2010 - VIMEO - R2RC - THE DIGITAL NATIVES ARE GETTING RESTLESS: THE STUDENT VOICE OF THE OPEN ACCESS MOVEMENT [12] •• 2008 - THE COST OF KNOWLEDGE • 2008 - AARON SWARTZ - THE GUERILLA OPEN ACCESS MANIFESTO [13] •• 2003 - ARL - CLIFFORD LYNCH - INSTITUTIONAL REPOSITORIES: ESSENTIAL INFRASTRUCTURE FOR SCHOLARSHIP IN THE DIGITAL AGE Founding Open Access Statements •• The Budapest Open Access Initiative •• The Berlin Declaration Conceptual Origins • http://en.wikipedia.org/wiki/Memex • http://en.wikipedia.org/wiki/Standing_on_the_shoulders_of_giants • http://en.wikipedia.org/wiki/Great_Conversation • http://en.wikipedia.org/wiki/Tragedy_of_the_commons • http://en.wikipedia.org/wiki/Knowledge_commons National Policies • http://www.arc.gov.au/applicants/open_access.htm Registry of Policies • http://roarmap.eprints.org Advocacy • http://www.openaccessbutton.org or http://en.wikipedia.org/wiki/Open_Access_Button Communities of Practice Wenger, et al (2002) defines a Community of Practice (COP) as a group of people who share a common interest and who come together to fulfil both individual and group goals. • http://www.openaire.eu • http://www.fosteropenscience.eu • http://www.libereurope.eu • http://aoasg.org.au • http://open-access.org.uk • http://www.ciard.net Current News • http://paper.li/SPARC_EU/1333818336 • http://openaccess.eprints.org • http://scholarlykitchen.sspnet.org Berlin Conferences • http://www.berlin11.org • http://www.berlin10.org • http://www.berlin9.org • http://www.berlin8.org • http://www.berlin7.org
  • SUNScholar/Open Access 13 • http://www.berlin6.org • http://www.berlin5.org Open Access applied at Stellenbosch University • SUNScholar [1] • SUNJournals [2] • SUNConferences [14] Overview in the scholarly life cycle With reference to: http://www.cfses.com/EI-ASPM/SCLCM-V7/dgm13715.htm References • http://bit.ly/oa-overview • http://www.arl.org/sparc/openaccess/why-oa.shtml • http://www.digital-scholarship.org/cwb/WhatIsOA.pdf • http://www.digital-scholarship.org/cwb/OALibraries2.pdf • http://www.eprints.org/openaccess • http://www.connotea.org/tag/oa.impact • http://www.dlib.org/dlib/march05/harnad/03harnad.html • http://www.ifla.org/strategic-plan/key-initiatives/digital-content/oa • http://www.openaccessweek.org/profiles/blogs/iflas-open-access-task-force-established Graphics
  • SUNScholar/Open Access 14 Timeline of significant events leading up to the adoption of open access academic repositories
  • SUNScholar/Open Access 15 Date Initiative 1994/06 Steven Harnard's Subversive Proposal [3] 2002/02 Budapest Open Access Initiative (BOAI) [15] 2002/05 Trusted Digital Repositories [16] 2002/06 Open Archives Initiative (OAI) Version 2 [17] 2003/10 Berlin Declaration on Open Access to Knowledge in the Sciences and Humanities 2007/01 The Scientific Communication Life-Cycle Model [18] 2008/04 NISO Good Digital Collections Framework [19] 2009/08 The Open Archival Information System (OAIS) [20] 2010/06 Managing Digital Collections [21] 2010/07 MOU on Trusted Digital Repositories [22] 2010/10 Stellenbosch University Library Open Access Seminar [23] 2011/06 Education and Training for Digital Repository Manager [24] 2011/09 Trustworthy Repositories Audit and Certification (TRAC) [25] 2011/10 Stellenbosch University Library Open Access Seminar [26] 2012/06 SCECSAL Resolution [27] 2012/09 Budapest Open Access Initiative Recommendations (BOAIR) - Updated from 2002/02 2012/09 Levels of Digital Preservation - Draft V2 [28] 2012/09 Good practices for university open-access policies [10] 2012/10 Policy guidelines for the development and promotion of open access [29] 2012/11 Stellenbosch University Berlin 10 Open Access Conference - Workshop 2 [30] References [1] http://scholar.sun.ac.za [2] http://www.journals.ac.za [3] http://en.wikipedia.org/wiki/Subversive_Proposal [4] http://en.wikipedia.org/wiki/Serials_crisis [5] http://en.wikipedia.org/wiki/Open_access [6] http://en.wikipedia.org/wiki/Institutional_repository [7] http://bjoern.brembs.net/2014/04/should-we-stop-supporting-open-access-publishers [8] http://www.cplong.org/2014/03/to-be-published-or-to-be-read [9] http://poynder.blogspot.co.uk/2014/03/the-state-of-open-access.html [10] http://cyber.law.harvard.edu/hoap/Good_practices_for_university_open-access_policies [11] http://cyber.law.harvard.edu/hoap/Open_Access_(the_book) [12] http://vimeo.com/15061659# [13] http://archive.org/stream/GuerillaOpenAccessManifesto/Goamjuly2008_djvu.txt [14] http://conferences.sun.ac.za [15] http://www.soros.org/openaccess/read [16] http://wiki.lib.sun.ac.za/images/e/e1/Tdr-oclc.pdf [17] http://en.wikipedia.org/wiki/Open_Archives_Initiative
  • SUNScholar/Open Access 16 [18] http://www.sciencemodel.net [19] http://wiki.lib.sun.ac.za/images/6/68/Framework3.pdf [20] http://en.wikipedia.org/wiki/OAIS [21] http://wiki.lib.sun.ac.za/images/5/51/Managing_Digital_Collections.pdf [22] http://www.trusteddigitalrepository.eu/Site/Trusted%20Digital%20Repository.html [23] http://scholar.sun.ac.za/handle/10019.1/4806 [24] http://wiki.lib.sun.ac.za/images/e/e8/217-repanovici-en.pdf [25] http://en.wikipedia.org/wiki/Trustworthy_Repositories_Audit_%26_Certification [26] http://scholar.sun.ac.za/handle/10019.1/17764 [27] http://wiki.lib.sun.ac.za/images/f/fb/Scecsal2012_resolutions_.pdf [28] http://wiki.lib.sun.ac.za/images/d/dd/Levels-of-Digital-Preservation-draft-handout-v3.pdf [29] http://www.unesco.org/new/en/communication-and-information/resources/publications-and-communication-materials/publications/ full-list/policy-guidelines-for-the-development-and-promotion-of-open-access [30] http://www.berlin10.org/workshops/16-workshops/72-w02.html SUNScholar/Repository Preservation Back to Guidelines - Step 1 Formulation The repository preservation plan (RPP) is usually for the repository director/manager to formulate in collaboration with the institutions IT department [1] . Considerations Currently in the academic literature, much is being said about digital curation/preservation, however this distracts from the strategic imperative of preserving the repository itself and the contents of the repository on the internet, in the same way that libraries and the contents of libraries in buildings, are preserved. There is a very subtle but very important distinction between digital curation and repository preservation. Preamble - Essential Reading Priority 1 - Repository Long Term Support Priority 2 - Preservable Digital Objects Priority 3 - Electronic Citation Preservation Preservation Services • http://www.portico.org/digital-preservation • http://www.clockss.org Contributions From Denise Nicholson • http://libguides.wits.ac.za/digitalpreservation • http://digi.nrf.ac.za/publ/Managing%20Digital%20Collections.pdf Ohio State University Library • Ohio State University Library [2] (OSUL) Documentation Examples • http://wiki.lib.sun.ac.za/images/6/61/Osul-digital-preservation-policy-framework.pdf • http://wiki.lib.sun.ac.za/images/8/87/Osul-digital-initiatives-program.pdf • http://library.osu.edu/projects-initiatives/digital-projects/standards • Ohio State University Library [2] (OSUL) Links
  • SUNScholar/Repository Preservation 17 • http://library.osu.edu/blogs/digitalscholarship • http://library.osu.edu/documents/digital-projects/OAIS_Report.pdf • http://library.osu.edu/projects-initiatives/digital-projects/standards/outside-resources • http://library.osu.edu/projects-initiatives/osu-records-management/ records-information-management-resorces • Ohio State University Library [2] (OSUL) Contacts • https://portal.lib.ohio-state.edu/intranet/staff/group/pres • https://portal.lib.ohio-state.edu/intranet/staff/group/DCS • https://portal.lib.ohio-state.edu/intranet/staff/group/infrastructure Keep clicking on the images to zoom in, to the maximum extent. References [1] http://it.sun.ac.za [2] http://library.osu.edu
  • 18 Step 2 SUNScholar/Guidelines/Step 2 Back to Guidelines Step 2 - Marketing Friendly Persistent URL and Preservable Digital Objects While developing your open access policy and repository preservation plan, take time to consider the following as very important strategic imperatives at all times, for a very long term successful repository. Marketing Friendly Persistent URL •• Decide on a marketing friendly persistent (URL) for the repository. •• This name should be short and simple to remember, easy to type into documentation and good for marketing/branding. •• Ensure the name will never change and that it has a clean URL with no forward slash redirect. The marketing friendly persistent URL is vital for electronic citation persistence on the web in the long term and for repository marketing/branding. http://wiki.lib.sun.ac.za/index.php/SUNScholar/Install_Ubuntu/S02 http://wiki.lib.sun.ac.za/index.php/SUNScholar/Repository_Website_Metrics http://mashable.com/2014/03/10/domain-names-history http://www.commoncraft.com/video/domain-names-and-hosting Good Examples • http://scholar.sun.ac.za • http://digital.lib.sun.ac.za Bad Examples • http://uctscholar.uct.ac.za - Double use of UCT is very confusing for marketing. • http://researchspace.csir.co.za/dspace - Uses a forward slash URL something, also bad for marketing and internet harvesters. • http://digitalknowledge.cput.ac.za:8081/jspui - Uses a port number AND forward slash URL something, very bad for internet interoperability.
  • SUNScholar/Guidelines/Step 2 19 Preservable Digital Objects •• Ensure you only deposit preservable digital objects into the repository. Preservable digital objects are vital for access by future researchers and for data interoperability. http://wiki.lib.sun.ac.za/index.php/SUNScholar/Preservable_Digital_Objects http://wiki.lib.sun.ac.za/index.php/SUNScholar/Digitisation/Digital_Formats/Open http://www.documentliberation.org Click on the image below to zoom in and click on it again to zoom in further. You are welcome to download it and use it for open digital object formats advocacy. PREVIOUS NEXT
  • 20 Step 3 SUNScholar/Guidelines/Step 3 Back to Guidelines Step 3 - Employ Repository Management Personnel The development and implementation of your open access policy and repository preservation plan should point to the fact that your organisation needs to assign the following persons to the project. •• To be appointed permanently, repository librarians and a repository manager/director. • To be consulted or appointed permanently, an experienced IT Ubuntu Linux [1] system administrator for installation, optimisation and upgrades. •• To be consulted or appointed permanently, an experienced web 2.0 developer for website programming, customisation, and styling. http://wiki.lib.sun.ac.za/index.php/SUNScholar/Capacity_Building http://wiki.lib.sun.ac.za/index.php/SUNScholar/Repository http://wiki.lib.sun.ac.za/index.php/SUNScholar/Repository_Information http://wiki.lib.sun.ac.za/index.php/OpenCampus PREVIOUS NEXT
  • SUNScholar/Guidelines/Step 3 21 References [1] http://ubuntu.sun.ac.za SUNScholar/Capacity Building/Digital Repository Systems Management Back to Capacity Building One man's 'magic' is another man's engineering. Robert A. Heinlein Essential Reading (Only available online) •• 2014 - RHT - SALARY GUIDE •• 2013 - CAMPUS TECHNOLOGY - IT PAY: CAN HIGHER EDUCATION COMPETE? •• 2013 - DICE - LINUX JOBS REPORT •• 2012 - IAI - SALARY SURVEY DSpace and Ubuntu require expert technical support for long term sustainability. Technology is expanding at ever faster rates, therefore it is wise to find persons experienced in specialised areas to do systems management. Think of any other field that has expanded and become specialised, the same applies to technology and systems management today and definitely in the very near future. Persons with the following skills are desirable. They can be hired part-time or employed full-time depending on the amount of resources available to you and the amount of work to be done. Web 2.0 Software Technologist or Java Webapp Developer [1] • Expert Java [2] programming skills • Expert XML [3] programming skills • Professional SQL [4] programming skills • Professional HTML [5] programming skills • Professional CSS [6] programming skills • Professional PHP [7] programming skills • Familiarity with the Tomcat [8] java webapp server • Familiarity with the LAMP [1] stack webapp server Web 2.0 Hardware Technologist or Ubuntu Linux System Administrator [9] • Expert with the Ubuntu [3] Linux server operating system • Expert with the Tomcat [8] java webapp server • Expert with the LAMP [1] stack webapp server • Expert with virtualization [10] and cloud [11] services • Professional BASH [12] programming skills • Professional TCP/IP [13] networking skills • Familiarity with a major vendors server hardware [14] • Familiarity with a major vendors networking hardware [15]
  • SUNScholar/Capacity Building/Digital Repository Systems Management 22 Example Job Advertisement The (name of institution) is seeking candidates to fill the positions of Java web app developer and Ubuntu Linux system administrator for the open scholarship office. The candidates should have at least 2 years experience and optionally supply certification and accreditation where available. In-depth Information How to find persons with these skills Try the following links to able to source persons with these skills from the community in your area. • http://community.ubuntu.com • http://en.wikipedia.org/wiki/Linux_user_group • http://en.wikipedia.org/wiki/Computer_User_Group • http://www.linkedin.com • http://www.linuxrecruit.co.uk Remuneration • http://iainstitute.org/en/learn/research/salary_survey.php • http://www.roberthalftechnology.com Skills Surveys • http://www.computerworld.com/s/article/9242548/8_hot_IT_skills_for_2014 • http://www.computerworld.com/s/article/9231486/10_hot_IT_skills_for_2013 Technologist Jobs • http://jobs.code4lib.org/jobs/dspace • http://jobs.code4lib.org/jobs/apache-tomcat • http://jobs.code4lib.org/jobs/java • http://jobs.code4lib.org/jobs/xml Organisations • http://www.usenix.org/lisa • http://www.opsschool.org • http://devcsi.ukoln.ac.uk/local-developer-impact Certification • http://www.icdl.org.za • http://www.lpi.org • http://www.linuxcertification.co.za
  • SUNScholar/Capacity Building/Digital Repository Systems Management 23 References • http://en.wikipedia.org/wiki/Web_developer • http://en.wikipedia.org/wiki/System_administrator • http://en.wikipedia.org/wiki/DevOps • http://langpop.com Comment • http://www.itworld.com/it-management/361516/9-reasons-sys-admins-hate-you • http://www.informit.com/store/devops-troubleshooting-linux-server-best-practices-9780321832047 • http://jamesclear.com/goals-systems Sample CV's • http://staff.lib.sun.ac.za/~hgibson/docs/cv/cv.html Salaries according to RHT in the USA Currency convertor: http://www.xe.com Year Linux System Admin Java Web Developer 2014 $ 64500 - $ 89500 $ 65750 - $ 95250 2013 $ 62000 - $ 86000 $ 62000 - $ 89750 A Good Geek What a good geek does, is AUTOMATE, INNOVATE and ANNOTATE. References [1] https://www.google.co.za/search?q=Java+Webapp+Developer&oq=Java+Webapp+Developer&aqs=chrome..69i57& sourceid=chrome&ie=UTF-8 [2] http://en.wikipedia.org/wiki/Java_%28programming_language%29 [3] http://en.wikipedia.org/wiki/Xml [4] http://en.wikipedia.org/wiki/Sql [5] http://en.wikipedia.org/wiki/Html [6] http://en.wikipedia.org/wiki/Css [7] http://en.wikipedia.org/wiki/PHP [8] http://en.wikipedia.org/wiki/Apache_Tomcat [9] https://www.google.co.za/search?q=Ubuntu+Linux+System+Administrator&oq=Ubuntu+Linux+System+Administrator& aqs=chrome..69i57j69i64&sourceid=chrome&ie=UTF-8 [10] http://en.wikipedia.org/wiki/Virtualization [11] http://en.wikipedia.org/wiki/Cloud_computing [12] http://en.wikipedia.org/wiki/Bash_%28Unix_shell%29 [13] http://en.wikipedia.org/wiki/Tcp/ip [14] http://en.wikipedia.org/wiki/Server_(computing) [15] http://en.wikipedia.org/wiki/Networking_hardware
  • SUNScholar/Capacity Building/Digital Repository Content Management 24 SUNScholar/Capacity Building/Digital Repository Content Management Back to Capacity Building Introduction *** After the system has been built *** you will require persons who have the following skills to manage the content of the digital repository. *** You CANNOT do good content management without an experienced systems manager/team. *** Essential Reading (Only available online) •• 2014 - ERASMUS - JUST GOOGLE IT •• 2014 - CARNEGIE - CONTINUING PROFESSIONAL DEVELOPMENT (CPD) •• 2014 - ARL - SALARY SURVEY SPREADSHEET •• 2014 - FSU - LIBRARIAN, HEAL THY SELF: A SCHOLARLY COMMUNICATION ANALYSIS OF LIS JOURNALS • 2013 - LIBRARIES SUPPORTING ROLES: RESEARCH THROUGH NEW METHODS OF SCHOLARLY COMMUNICATION [1] •• 2013 - ARL - NEW ROLES FOR NEW TIMES - TRANSFORMING LIAISON ROLES IN RESEARCH LIBRARIES •• 2011 - RSP UK - REPOSITORY STAFF AND SKILL SET •• 2011 - IFLA - EDUCATION AND TRAINING FOR DIGITAL REPOSITORY MANAGERS •• 2010 - NRF - SOUTH AFRICA - MANAGING DIGITAL COLLECTIONS Example Job Advertisement The (name of institution) is seeking candidates to fill the positions of director, manager and librarian for the open scholarship office. The candidates should have at least 2 years experience and optionally supply certification and accreditation where available. The minimum required skill sets are listed below. Directors •• Excellent written and verbal communication skills. •• Doctorate in library science. •• Academic journal publication and/or institutional policy development about "open access digital academic publishing". • Expert understanding of open access digital repository content management. • Expert with metadata standards for academic publishing. •• Professional understanding of web 2.0 communication technologies. • Familiarity with DSpace software [4] . •• Familiarity with desktop computer operations. • Familiarity with digital object formats and identifiers. • Familiarity with digitisation technologies. • Familiarity with open access digital repository systems management.
  • SUNScholar/Capacity Building/Digital Repository Content Management 25 • Familiarity with the operations of the internet and how to use it securely. [2] Managers •• Excellent written and verbal communication skills. •• Bachelors degree in library science. •• Major or Masters in "open access digital academic publishing systems". • Expert understanding of open access digital repository content management. • Expert with metadata standards for academic publishing. •• Professional understanding of web 2.0 communication technologies. • Professional understanding of DSpace software [4] . • Familiarity with open access digital repository systems management. •• Familiarity with desktop computer operations. • Familiarity with digital object formats and identifiers. • Familiarity with digitisation technologies. • Familiarity with the operations of the internet and how to use it securely. [2] Librarians •• Professional written and verbal communication skills. •• Technology certificate in library science. •• Major in "open access digital academic publishing systems". • Expert with DSpace software [4] . •• Expert with desktop computer operations. • Expert with digital object formats and identifiers. • Expert with digitisation technologies. • Expert with metadata standards for academic publishing. • Professional understanding of open access digital repository content management. • Professional understanding of the operations of the internet and how to use it securely. [2] •• Professional understanding of web 2.0 communication technologies. • Familiarity with open access digital repository systems management. Library Schools • http://www.liasa.org.za/node/467 Library Jobs • http://www.liasa.org.za/careers • http://joblist.ala.org Web Literacy • http://en.wikipedia.org/wiki/Technology_acceptance_model • http://en.wikipedia.org/wiki/Digital_literacy • http://en.wikipedia.org/wiki/Diffusion_of_innovations • http://www.jisc.ac.uk/guides/developing-students-digital-literacy • http://www.jiscinfonet.ac.uk/infokits/digital-literacies
  • SUNScholar/Capacity Building/Digital Repository Content Management 26 Technology See: http://en.wikipedia.org/wiki/Technology_acceptance_model Simple answers to technophobia [3] .
  • SUNScholar/Capacity Building/Digital Repository Content Management 27 References [1] http://www.infotoday.eu/Articles/Editorial/Featured-Articles/ Library-roles-supporting-research-through-new-methods-of-scholarly-communication-93398.aspx [2] http://en.wikipedia.org/wiki/Internet [3] http://en.wikipedia.org/wiki/Technophobia
  • 28 Step 4 SUNScholar/Guidelines/Step 4 Back to Guidelines Step 4 - Build Repository IT Infrastructure • With the system personnel you hired or consulted from the previous step, budget for and purchase the necessary server hardware resources and also plan for server replacement when the supplier warranty expires. • You may also want to consider using cloud [1] or virtualised servers, either public or private. Speak to your campus IT cloud/virtual services administrator. •• Enterprise Cloud Services in South Africa Essential Reading (Only available online) •• 2014 - WEF - STATE OF INFORMATION TECHNOLOGY REPORT 2014 • 2014 - AKAMI - STATE OF THE INTERNET REPORT [2] •• 2014 - COAR - TOWARD A SEAMLESS GLOBAL INFRASTRUCTURE FOR REPOSITORIES •• 2013 - DLIB - A VISION TOWARDS SCIENTIFIC COMMUNICATION INFRASTRUCTURES •• 2013 - IDRC - CONNECTING ICT TO DEVELOPMENT •• 2013 - MDPI - THE IMPORTANCE OF OPEN SOURCE SOFTWARE AND STANDARDS IN MODERN SCIENTIFIC PUBLISHING •• 2013 - AAUPNET - LIBRARY AND UNIVERSITY PRESS COLLABORATION •• 2013 - A4AI - INTERNET AFFORDABILITY REPORT •• 2013 - DEPARTMENT OF COMMUNICATIONS - SOUTH AFRICA - BROADBAND POLICY •• 2012 - BOAI - ON INFRASTRUCTURE AND SUSTAINABILITY •• 2011 - LSE - TOTAL COST OF OWNERSHIP OF OPEN SOURCE SOFTWARE http://wiki.lib.sun.ac.za/index.php/SUNScholar/Install_Ubuntu/S01#Hardware http://wiki.lib.sun.ac.za/index.php/SUNScholar/Reference_Architecture http://wiki.lib.sun.ac.za/index.php/SUNScholar/DSpace/Why_Ubuntu_Server http://wiki.lib.sun.ac.za/index.php/SUNScholar/Upgrading/Hardware http://wiki.lib.sun.ac.za/index.php/SUNScholar/Disaster_Recovery With reference to: http:/ / www. cfses. com/ EI-ASPM/ SCLCM-V7/ actuse12576. htm and http:/ / www. sciencemodel.net
  • SUNScholar/Guidelines/Step 4 29 PREVIOUS NEXT References [1] http://www.aaron-helton.com/2013/02/installing-dspace-in-amazon-aws [2] http://uk.akamai.com/stateoftheinternet
  • 30 Step 5 SUNScholar/Guidelines/Step 5 Back to Guidelines Step 5 - Install Repository Software Please note It is assumed that you will be applying due diligence to learn some Linux skills, so that you can install and maintain an Ubuntu linux server. If you cannot and you still want to use an Ubuntu linux server, then click here to find out how you might find an Ubuntu linux person locally, to assist you. http://wiki.lib.sun.ac.za/index.php/SUNScholar/DSpace - Installation of Ubuntu server and DSpace software. http://wiki.lib.sun.ac.za/index.php/SUNScholar/Install_DSpace/S11 - Important after DSpace installation tasks. Essential Reading (Only available online) • 2014 - GURU 99 - LINUX TUTORIAL [1] •• 2013 - SHOTTS,W E JNR - THE LINUX COMMAND LINE BOOK • 2013 - DURASPACE - DSPACE 4: COMMAND LINE OPERATIONS [2] • 2013 - EAST WEST UNIVERSITY - DSPACE 3.2 INSTALLATION ON DEBIAN WHEEZY 7.10 [3] •• 2012 - VALENCIA POLYTECH UNIVERSITY - DSPACE AND UBUNTU INSTALLATION DSpace Vision • https://wiki.duraspace.org/display/DSPACE/DSpace+2013+Vision+Document DSpace Documentation • https://wiki.duraspace.org/display/DSDOC/All+Documentation • https://wiki.duraspace.org/display/DSPACE/EndUserFaq Software Versions • http://wiki.lib.sun.ac.za/index.php/SUNScholar/Install_Ubuntu/S01 • http://wiki.lib.sun.ac.za/index.php/SUNScholar/Install_DSpace/S02
  • SUNScholar/Guidelines/Step 5 31 PREVIOUS NEXT References [1] http://www.guru99.com/unix-linux-tutorial.html [2] https://wiki.duraspace.org/display/DSDOC4x/Command+Line+Operations [3] http://www.slideshare.net/rafiqur83/dspace-32-installation-on-debian-wheeze-710 SUNScholar/Install Ubuntu PROCEDURE: 1 - INSTALL UBUNTU PROCEDURE INDEX NEXT PROCEDURE Introduction It is fairly easy to install the Ubuntu LTS server software. The following procedures apply to any LTS version of the Ubuntu server software. It is good best practice to develop installation skills on a test server first, before doing a production server installation.
  • SUNScholar/Prepare Ubuntu 32 SUNScholar/Prepare Ubuntu PROCEDURE: 2 - PREPARE UBUNTU PREVIOUS PROCEDURE NEXT PROCEDURE SUNScholar/Install DSpace PROCEDURE: 3 - INSTALL DSPACE PREVIOUS PROCEDURE Requirements This procedure assumes that your server is open on the campus firewall OR proxy server. This is needed to be able to download Java packages from various websites during the build of the DSpace web application. Install DSpace/S04/3.2 Back to Step 4 Requirements • http://wiki.lib.sun.ac.za/index.php/SUNScholar/Install_DSpace/S03 Procedure With the release of DSpace 3.2 came a new way of configuring DSpace. The critical core elements of the old "dspace.cfg" file have been superseded by a "build.properties" file. The idea is to put all the custom configs in the "config" folder and use the build.properties file for the core "building" of DSpace. To edit the build.properties file, type the following: nano /home/dspace/source/build.properties See example below. Replace all the places with a pair of percent signs (%something%), with the settings for your system. 1.1. Be careful to NOT comment out any settings, leave them as they are with blanks!! 2. Check the 1.8.2 config help for important comments about critical settings. # DSpace build.properties # This file should be customised to suit your build environment. # Note that not all configuration is handled here, only the most common # properties that tend to differ between build environments.
  • Install DSpace/S04/3.2 33 # For adjusting global settings or more complex settings, edit the relevant config file. # # IMPORTANT: Do not remove or comment out settings in build.properties # When you edit the "build.properties" file (or a custom *.properties file), # take care not to remove or comment out any settings. Doing so, may cause # your final "dspace.cfg" file to be misconfigured with regards to that # particular setting. Instead, if you wish to remove/disable a particular # setting, just clear out its value. For example, if you don't want to be # notified of new user registrations, ensure the "mail.registration.notify" # setting has no value, e.g. "mail.registration.notify=" # ########################## # SERVER CONFIGURATION # ########################## # DSpace installation directory. This is the location where you want # to install DSpace. NOTE: this value will be copied over to the # "dspace.dir" setting in the final "dspace.cfg" file. It can be # modified later on in your "dspace.cfg", if needed. dspace.install.dir = %/home/dspace% # DSpace hostname. dspace.hostname = %localhost% # DSpace URL. dspace.baseUrl = %http://localhost% # Name of the site dspace.name = %DSpace at My University% # Solr server solr.server = %http://localhost/solr% # Default language for metadata values default.language = %en_ZA% ########################## # DATABASE CONFIGURATION # ########################## # Database name ("oracle", or "postgres") db.name=postgres # Uncomment the appropriate block below for your database. # postgres
  • Install DSpace/S04/3.2 34 db.driver=org.postgresql.Driver db.url=jdbc:postgresql://localhost:5432/dspace db.username=%dspace% db.password=%dspace% # oracle #db.driver= oracle.jdbc.OracleDriver #db.url=jdbc:oracle:thin:@//localhost:1521/xe #db.username=dspace #db.password=dspace # Schema name - if your database contains multiple schemas, you can avoid problems with # retrieving the definitions of duplicate object names by specifying # the schema name here that is used for DSpace by uncommenting the following entry db.schema = # Maximum number of DB connections in pool db.maxconnections = %300% # Maximum time to wait before giving up if all connections in pool are busy (milliseconds) db.maxwait = 5000 # Maximum number of idle connections in pool (-1 = unlimited) db.maxidle = -1 # Determine if prepared statement should be cached. (default is true) db.statementpool = true # Specify a name for the connection pool (useful if you have multiple applications sharing Tomcat's dbcp) # If not specified, defaults to 'dspacepool' db.poolname = dspacepool ####################### # EMAIL CONFIGURATION # ####################### # SMTP mail server mail.server = %smtp.example.com% # SMTP mail server authentication username and password (if required) # mail.server.username = myusername # mail.server.password = mypassword mail.server.username= mail.server.password= # SMTP mail server alternate port (defaults to 25) mail.server.port = 25
  • Install DSpace/S04/3.2 35 # From address for mail mail.from.address = %dspace-from-email-address@myu.edu% # Currently limited to one recipient! mail.feedback.recipient = %dspace-feedback@myu.edu% # General site administration (Webmaster) e-mail mail.admin = %dspace-admin@myu.edu% # Recipient for server errors and alerts #mail.alert.recipient = email-address-here mail.alert.recipient = %dspace-alert@myu.edu% # Recipient for new user registration emails #mail.registration.notify = email-address-here mail.registration.notify = %dspace-registration-notify@myu.edu% ######################## # HANDLE CONFIGURATION # ######################## # Canonical Handle URL prefix # # By default, DSpace is configured to use http://hdl.handle.net/ # as the canonical URL prefix when generating dc.identifier.uri # during submission, and in the 'identifier' displayed in JSPUI # item record pages. # # If you do not subscribe to CNRI's handle service, you can change this # to match the persistent URL service you use, or you can force DSpace # to use your site's URL, eg. #handle.canonical.prefix = ${dspace.url}/handle/ # # Note that this will not alter dc.identifer.uri metadata for existing # items (only for subsequent submissions), but it will alter the URL # in JSPUI's 'identifier' message on item record pages for existing items. # # If omitted, the canonical URL prefix will be http://hdl.handle.net/ handle.canonical.prefix = http://hdl.handle.net/ # CNRI Handle prefix handle.prefix = 123456789 ####################### # PROXY CONFIGURATION #
  • Install DSpace/S04/3.2 36 ####################### # uncomment and specify both properties if proxy server required # proxy server for external http requests - use regular hostname without port number http.proxy.host = # port number of proxy server http.proxy.port = NANO Editor Help CTL+O = Save the file and then press Enter CTL+X = Exit "nano" CTL+K = Delete line CTL+U = Undelete line CTL+W = Search for $string$ CTL+ = Search for and replace $string$ ALT+C = Show line numbers More info = http://en.wikipedia.org/wiki/Nano_(text_editor) References • https://wiki.duraspace.org/display/DSDOC3x/Configuration#Configuration-Thebuild. propertiesConfigurationPropertiesFile • https://github.com/DSpace/DSpace/blob/master/build.properties
  • Install DSpace/S04/1.8.2 37 Install DSpace/S04/1.8.2 Back to Step 4 Edit "dspace.cfg" file Type the following to edit the DSpace (dspace.cfg) config file: nano /home/dspace/source/dspace/config/dspace.cfg Replace all the places with a pair of percent signs (%something%), with the settings for your system. Please read the notes about each specification very carefully DSpace Folder This must NOT point to /dspace as per the default DSpace documentation. Please review the disk partition setup when preparing an Ubuntu server for the DSpace installation. A separate /home disk partition is created for the DSpace user, application and assetstore! dspace.dir = /home/dspace Server Hostname dspace.hostname = %hostname% dspace.url = http://%hostname% dspace.baseUrl = http://%hostname% An example %hostname% is: scholar.sun.ac.za and NOT http://scholar.sun.ac.za.''' The "http://" part specifies a TCP/IP protocol [13] and is therefore a URL specification, not a hostname only specification. See: Hostname selection before installation for more details. Title dspace.name = %DSpace for My University% Database Connection db.name = postgres db.url = jdbc:postgresql://localhost:5432/dspace db.driver = org.postgresql.Driver Credentials db.username = dspace db.password = %db_user_password% Connections db.maxconnections = 300 db.maxwait = 5000
  • Install DSpace/S04/1.8.2 38 db.maxidle = -1 Email Before setting this up, please read the notes here http://wiki.lib.sun.ac.za/index.php/SUNScholar/Prepare_Ubuntu/S07'' Mail Delivery Server mail.server = %my_university_email_server_address% mail.server.username = %email-user-name% mail.server.password = %email-user-password% Email Addresses mail.from.address = %my_email_address% feedback.recipient = %my_email_address% mail.admin = %my_email_address% alert.recipient = %my_email_address% registration.notify = %my_email_address% Language Specifications default.language = en_ZA OAI URL dspace.oai.url = http://%hostname%/oai The full OAI URL then becomes http://%hostname%/oai/request NANO Editor Help CTL+O = Save the file and then press Enter CTL+X = Exit "nano" CTL+K = Delete line CTL+U = Undelete line CTL+W = Search for $string$ CTL+ = Search for and replace $string$ ALT+C = Show line numbers More info = http://en.wikipedia.org/wiki/Nano_(text_editor)
  • Install DSpace/S04/1.8.2 39 Example config setup •• %hostname% = scholar.sun.ac.za •• %DSpace for My University% = Stellenbosch University Research Repository •• %db_user_password% = my very secret PostgreSQL DB password •• %my_university_email_server_address% = mail.sun.ac.za •• %my_email_address% = scholar@sun.ac.za #---------------------------------------------------------------# #------------------GENERAL CONFIGURATIONS-----------------------# #---------------------------------------------------------------# # These configs are used by underlying DSpace API, and are # # therefore applicable to all interfaces # #---------------------------------------------------------------# ##### Basic information ###### # DSpace installation directory dspace.dir = /home/dspace # DSpace host name - should match base URL. Do not include port number dspace.hostname = scholar.sun.ac.za # DSpace base host URL. Include port number etc. dspace.baseUrl = http://scholar.sun.ac.za # DSpace base URL. Include port number etc., but NOT trailing slash # Change to xmlui if you wish to use the xmlui as the default, or remove
  • Install DSpace/S04/1.8.2 40 # "/jspui" and set webapp of your choice as the "ROOT" webapp in # the servlet engine. dspace.url = http://scholar.sun.ac.za # Name of the site dspace.name = Stellenbosch University SUNScholar ##### Database settings ##### # Database name ("oracle", or "postgres") # db.name = postgres db.name = postgres #db.name = oracle # URL for connecting to database #db.url = jdbc:postgresql://localhost:5432/dspace db.url = jdbc:postgresql://localhost:5432/dspace # JDBC Driver #db.driver = org.postgresql.Driver db.driver = org.postgresql.Driver # Database username and password #db.username = dspace #db.password = dspace db.username = XXXXXX db.password = XXXXXX # Schema name - if your database contains multiple schemas, you can avoid problems with # retrieving the definitions of duplicate object names by specifying # the schema name here that is used for DSpace by uncommenting the following entry # db.schema = # Connection pool parameters # Maximum number of DB connections in pool db.maxconnections = 300 # Maximum time to wait before giving up if all connections in pool are busy (milliseconds) db.maxwait = 5000 # Maximum number of idle connections in pool (-1 = unlimited) db.maxidle = -1 # Determine if prepared statement should be cached. (default is true) db.statementpool = true
  • Install DSpace/S04/1.8.2 41 # Specify a name for the connection pool (useful if you have multiple applications sharing Tomcat's dbcp) # If not specified, defaults to 'dspacepool' # db.poolname = dspacepool ##### Email settings ###### # SMTP mail server mail.server = mail.sun.ac.za # SMTP mail server authentication username and password (if required) # mail.server.username = myusername # mail.server.password = mypassword # SMTP mail server alternate port (defaults to 25) # mail.server.port = 25 # From address for mail mail.from.address = scholar@sun.ac.za # Currently limited to one recipient! feedback.recipient = scholar@sun.ac.za # General site administration (Webmaster) e-mail mail.admin = scholar@sun.ac.za # Recipient for server errors and alerts alert.recipient = hgibson@sun.ac.za # Recipient for new user registration emails registration.notify = scholar@sun.ac.za # Set the default mail character set. This may be over ridden by providing a line # inside the email template "charset: <encoding>", otherwise this default is used. #mail.charset = UTF-8 # A comma separated list of hostnames that are allowed to refer browsers to email forms. # Default behaviour is to accept referrals only from dspace.hostname #mail.allowed.referrers = localhost # Pass extra settings to the Java mail library. Comma separated, equals sign between # the key and the value. #mail.extraproperties = mail.smtp.socketFactory.port=465, # mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory, # mail.smtp.socketFactory.fallback=false # An option is added to disable the mailserver. By default, this property is set to false # By setting mail.server.disabled = true, DSpace will not send out emails.
  • Install DSpace/S04/1.8.2 42 # It will instead log the subject of the email which should have been sent # This is especially useful for development and test environments where production data is used when testing functionality. #mail.server.disabled = false # Default language for metadata values default.language = en_ZA
  • 43 Step 6 SUNScholar/Guidelines/Step 6 Back to Guidelines Step 6 - Repository System Backup & Monitoring Plan for disaster recovery, this is vital for long term system sustainability, its as simple as that. http://wiki.lib.sun.ac.za/index.php/SUNScholar/Disaster_Recovery With reference to: http:/ / www. cfses. com/ EI-ASPM/ SCLCM-V7/ actuse12576. htm and http:/ / www. sciencemodel.net PREVIOUS NEXT
  • SUNScholar/Disaster Recovery/Backups/Client Setup 44 SUNScholar/Disaster Recovery/Backups/Client Setup Back to Disaster Recovery Backups SUNScholar/Disaster Recovery/Backups/Server Setup Back to Disaster Recovery Backups Enable "rsync" connections to the backup server •• Install the firewall service: sudo apt-get install ufw •• Add a firewall rule for secure remote connections: sudo ufw allow ssh •• Enable the firewall as follows: sudo ufw enable •• Create a firewall rule for each client to be backed up as follows: sudo ufw allow from %client-ipaddress% to any •• Now test your rsync connection to each client as follows: sudo rsync %client-ipaddress%::backup You should get a listing of the backup files in the clients /var/backup folder. Install "backuppc" server • If the above is successful then install backuppc on the server as follows: sudo apt-get install backuppc •• BackupPC has a web interface which you enable as follows: sudo apt-get install apache2 sudo cd /etc/apache2/conf.d sudo ln -s /etc/backuppc/apache.conf backuppc sudo /etc/init.d/apache2 restart •• Now we add an admin backuppc user as follows: sudo htpasswd /etc/backuppc/htpasswd backuppc
  • SUNScholar/Disaster Recovery/Backups/Server Setup 45 You will prompted to enter a password twice. Setup "backuppc" server •• Now open a web browser and type the following into the address bar: http://%my-backup-server/backuppc You will be prompted for the username and password that you set up above. After logging in and clicking on "Host Summary", you should be presented with a screen like the following: •• Now setup backuppc by adding host configurations. There is plenty of backuppc documentation on the internet. However, below is an example screenshot of the critical configuration, Xfer settings, that are done per host. Check out highlighted boxes in red.
  • SUNScholar/Disaster Recovery/Backups/Server Setup 46 Continue to setup backuppc as needed. That's it.
  • 47 Step 7 SUNScholar/Guidelines/Step 7 Back to Guidelines Step 7 - Repository Launch and Registration with Harvesters 1. Plan for an official launch, preferably during Open Access week [1] where your institution signs the Open Access Berlin Declaration [2] . 2.2. Register your repository with as many harvesters as you can, to improve your ranking and internet visibility. http://wiki.lib.sun.ac.za/index.php/SUNScholar/Web_Analytics http://wiki.lib.sun.ac.za/index.php/SUNScholar/Ranking http://www.openarchives.org/Register/ValidateSite Repository Registeries http://www.re3data.org http://registry.duraspace.org http://roar.eprints.org http://www.opendoar.org PREVIOUS NEXT References [1] http://oa.sun.ac.za [2] http://oa.sun.ac.za/?page_id=27
  • 48 Step 8 SUNScholar/Guidelines/Step 8 Back to Guidelines Step 8 - Capture Research Records Submit Research Items Now that your repository system management team have built and helped to launch the repository, it is up to the repository content management team to fill the repository with research outputs. •• Try to submit as many peer-reviewed articles as possible by asking researchers to supply a copy of published articles to submit to the repository. • Ask the campus research office to supply details of research output in an interoperable digital format such as CSV [1] and submit the core metadata to the repository. • Extract thesis and disseration records from your library catalogue in an interoperable digital format such as CSV [1] and submit the core metadata to the repository. This will greatly increase the web visibility of the repository and therefore the impact via the internet, of your campus researchers! http://wiki.lib.sun.ac.za/index.php/SUNScholar/Researcher_ID http://wiki.lib.sun.ac.za/index.php/SUNScholar/Copyright http://wiki.lib.sun.ac.za/index.php/SUNScholar/How_do_I_submit_items http://wiki.lib.sun.ac.za/index.php/SUNScholar/Asset_Submissions http://wiki.lib.sun.ac.za/index.php/SUNScholar/Populating http://wiki.lib.sun.ac.za/index.php/SUNScholar/Digitisation http://wiki.lib.sun.ac.za/index.php/SUNScholar/Metadata http://wiki.lib.sun.ac.za/index.php/OpenScholar http://scholar.sun.ac.za/handle/10019.1/265 With reference to: http:/ / www. cfses. com/ EI-ASPM/ SCLCM-V7/ dgm13281. htm and http:/ / www. sciencemodel.net
  • SUNScholar/Guidelines/Step 8 49 PREVIOUS NEXT References [1] http://en.wikipedia.org/wiki/Comma-separated_values SUNScholar/Populating Since SUNScholar is an institutional repository, it belongs to all at Stellenbosch University. It is at the same time an organizational commitment towards preserving our most valuable assets - our research output. Therefore we need everybody's help in populating our repository. Some strategies that can be followed: Research reports •• Submit full text articles by tracking them from the annual University research report. It is recommended that one works retrospectively according to a specific department. •• Download the full text from the database in which an article was published. Please contact your faculty librarian for help in this regard. •• Always first check whether the article hasn't already been submitted to SUNScholar. If it has been submitted, but belongs to more than one department, it can be mapped to various Collections. Please contact scholar@sun.ac.za for assistance. • The research reports are available from: http://www0.sun.ac.za/research/en/research-report
  • SUNScholar/Populating 50 Scopus •• Conduct an "Affiliation" search within Scopus. Use: "Stellenbosch University" •• The search can be narrowed down to a specific journal, author, etc. Please contact your faculty librarian for help in this regard. •• Download the full text files, and use the metadata to submit your item to SUNScholar. •• The metadata lists can also be exported in .csv format, and imported into SUNScholar. The full text will still need to be attached to each individual item. Please contact scholar@sun.ac.za for assistance. Publishers • Articles by BioMed Central are deposited in SUNScholar using the SWORD interface. See http://www. biomedcentral.com/info/libraries/sword.In future SUNScholar will be automatically updated once one of our researchers publishes an article with BioMed Central. Contact: Matt Brown E-mail: matt.brown@biomedcentral.com •• If you are a publisher and would like to batch deposit articles in our repository, please contact scholar@sun.ac.za. Individuals • If you have a copy (preprint, galley proof [1] copy, postprint) of an article you want to submit, please continue to do so. •• Please remember to always first check whether the article hasn't already been submitted to SUNScholar. Blog Posts • http://www.openaire.eu/en/component/content/article/76-highlights/ 467-sustainable-practices-for-populating-repositories Back to Scholar Help Back to Guidelines References [1] http://en.wikipedia.org/wiki/Galley_proof
  • 51 Step 9 SUNScholar/Guidelines/Step 9 Back to Guidelines Step 9 - Repository Self-Help and News •• Start a self-help guide using a wiki or add pages to your library guides for normal users of the repository. •• Start a news blog to keep all users informed about the latest happenings regarding your repository. News Blog [1] PREVIOUS NEXT References [1] http://blogs.sun.ac.za/sunscholar
  • 52 Step 10 SUNScholar/Guidelines/Step 10 Back to Guidelines Step 10 - Engage Research Partners Remote research institutions or divisions can deposit items, harvest items or receive alerts for new items on the institutional repository. This open interoperability can be achieved with DSpace. Click on one of the following links to find out how. Application Programming Interface (API) http://wiki.lib.sun.ac.za/index.php/SUNScholar/Researcher_ID PREVIOUS NEXT
  • 53 Step 11 SUNScholar/Guidelines/Step 11 Back to Guidelines Step 11 - Continuous System Improvement and Maintenance System Audit PREVIOUS NEXT SUNScholar/Optimisations Back to After Installation Tasks Introduction This wiki page details the major optimisations of the system performed at Stellenbosch University in order to create a truly production optimised version of DSpace. Java Click on the heading above. Tomcat Click on the heading above. Reduce system log sizes Click on the heading above. Email error logs Click on the heading above XMLUI •• Use XMLUI exclusively to reduce the memory load. http://wiki.lib.sun.ac.za/index.php/SUNScholar/Install_DSpace/S08 Database •• Fix "browse index" configuration to reduce the PostgreSQL database server query load.
  • SUNScholar/Optimisations 54 http://wiki.lib.sun.ac.za/index.php/SUNScholar/Browse_Indexes Vacumn the database regularly http://wiki.lib.sun.ac.za/index.php/SUNScholar/Daily_Admin Bitstream checker Modified bitstream checker settings as follows to reduce database size. #### Checksum Checker Settings #### # Default dispatcher in case none specified plugin.single.org.dspace.checker.BitstreamDispatcher=org.dspace.checker.SimpleDispatcher # check history retention checker.retention.default=1y checker.retention.CHECKSUM_MATCH=2w References • https://wiki.duraspace.org/display/DSDOC4x/Validating+CheckSums+of+Bitstreams Monit monitor service In case the Tomcat service halts or hangs due to whatever... , I installed monit to restart the service and then alert me. See an example of my config below, added to the bottom of the /etc/monit/monitrc file. dspace@ir1:/etc/monit$ sudo cat /etc/monit/monitrc set daemon 60 set logfile syslog facility log_daemon set mailserver localhost set mail-format { from: monit@ez.sun.ac.za } set alert root@localhost set httpd port 2812 allow %username%:%password% check process sshd with pidfile /var/run/sshd.pid start = "/usr/sbin/service ssh start" stop = "/usr/sbin/service ssh stop" if failed port 22 protocol ssh with timeout 5 seconds then restart alert hgibson@sun.ac.za check process tomcat6 with pidfile /var/run/tomcat6.pid start = "/usr/sbin/service tomcat6 restart" stop = "/usr/sbin/service tomcat6 stop" if failed port 80 protocol http with timeout 300 seconds then restart alert hgibson@sun.ac.za alert wklap@sun.ac.za All confidential information has been replaced with % signs or captial X's.
  • SUNScholar/Optimisations 55 References • https://wiki.duraspace.org/display/DSDOC18/Performance+Tuning+DSpace • http://www.turnkeylinux.org/tomcat • http://www.tecmint.com/how-to-install-and-setup-monit-linux-process-and-services-monitoring-program • http://www.tecmint.com/command-line-tools-to-monitor-linux-performance
  • 56 Step 12 SUNScholar/Repository Information Back to Guidelines Essential Reading (Only available online) •• 2014 - OXFORD - OPENING ACCESS TO RESEARCH •• 2014 - WRO - GROWTH OF OPEN ACCESS REPOSITORIES 2005 TO 2012 • 2014 - ARL - DEVELOPING DIGITAL SCHOLARSHIP SERVICES ON A SHOESTRING BUDGET [1] •• 2009 - NRGL - SURVEY OF IR SOFTWARE SYSTEMS •• 2008 - NAGPS - FEDERAL RESEARCH PUBLIC ACCESS ACT AND OPEN ACCESS •• 2008 - JISC - SIRUIS REPORT - INSTITUTIONAL REPOSITORIES •• 2003 - ARL - CLIFFORD LYNCH - INSTITUTIONAL REPOSITORIES: ESSENTIAL INFRASTRUCTURE FOR SCHOLARSHIP IN THE DIGITAL AGE • Open Society Guide to Repository Software [2] • Creating an Institutional Repository: LEADIRS Workbook [3] - Barton & Waters - 2004 • Institutional Repository Deployment in the United States as of Early 2005 [4] - CNI - Joan K. Lippincott - 2005 • Development and implementation of an institutional repository within a science, engineering and technology environment [5] - CSIR - van der Merwe, A - 2008 • Open Access and how it affects your citations [6] - University of Pretoria - Kuhn, Johanna - 2012 Repository Examples Below are links to repositories that have started to take a system approach to repository management by supplying a help wiki and a news blog. In addition they have short clean memorable URL's. Unfortunately policies have yet to be published. • http://scholar.sun.ac.za - Wiki and blog. Registered with harvesters. • http://uir.unisa.ac.za - Blog, no wiki and registered with harvesters. • http://cadmus.eui.eu - Fantastic XMLUI style etc... • http://repository.uneca.org - Wiki and blog. Not registered with harvesters. • http://hub.hku.hk - Unique researcher profiles Below are links to repositories used for digital collections. • http://digital.lib.sun.ac.za • http://digital.unam.na
  • SUNScholar/Repository Information 57 Repository Support African DSpace Support • http://lists.lib.sun.ac.za/mailman/listinfo/irtalk • http://lists.lib.sun.ac.za/pipermail/irtalk This is a discussion list to discuss, communicate, share information on all open access and institutional repositories related issues in Africa and South Africa. International DSpace Support Before posting a request, please see: https://wiki.duraspace.org/display/DSPACE/Mailing+List+Etiquette first. • DSpace General [7] • DSpace Technical [8] • DSpace Change Log [9] International Open Access Discussion http://mailman.ecs.soton.ac.uk/mailman/listinfo/goal''' The Global Open Access List (GOAL) is the successor of the American Scientist Open Access (AmSci) Forum, which was the first Open Access Forum, begun in 1998 and hosted for 13 years (1998-2011) by Sigma Xi. http:// amsci-forum.amsci.org/archives/American-Scientist-Open-Access-Forum.html Open Access is no longer just an American or a Scientific Matter. It is a global movement with the goal of making all 2.5 million articles published annually in the planet's 25,000 peer-reviewed journals -- in all scholarly and scientific fields, and in all languages -- freely accessible online to anyone on the Web. GOAL is accordingly dedicated to the discussion of Open Access practice and policy-making by the worldwide research community (in no order: researchers, universities, research institutions, research funding agencies, governmental research policy-makers and commercial entities) with the aim of enabling concrete, practical steps to be taken to achieve Open Access. Chief among these goals are techniques for increasing the amount of Open Access, as well as metrics of research usage and impact. Documentation • http://aoasg.org.au • http://repo.rsp.ac.uk • http://www.openaire.eu/en/support/faq • http://digitalcommons.bepress.com/repository-research • http://www.coar-repositories.org/working-groups/repository-and-repository-networks-support-and-training/ resources • http://www.coar-repositories.org/activities/support-and-training/resources/ • http://www.jiscinfonet.ac.uk/infokits/repositories • http://wikieducator.org/Institutional_Repository
  • SUNScholar/Repository Information 58 Consultants • http://www.dspace.org/service-providers • http://www.lyncode.com - Repository Styling • http://www.gstudio.co.za - Repository Styling • http://www.jumpingbean.co.za - Java webapps • http://atmire.com - Full range of repository DSpace software services Repository Policy • Dr Reggie Raju - University of Cape Town - reggie.raju@uct.ac.za [10] • Michelle Willmers - University of Cape Town - michelle.willmers@uct.ac.za [11] • Elsabe Olivier - University of Pretoria - elsabe.olivier@up.ac.za [12] Repository Management • Ina Smith - Stellenbosch University - ismith@sun.ac.za [7] • Hettie Groenewald - University of Pretoria - hettie.groenewald@up.ac.za [13] • Allison Fullard - University of the Western Cape - afullard@uwc.ac.za [14] • Denise Nicholson - University of the Witwatersrand - denise.nicholson@wits.ac.za [15] • Ansie van der Westhuizen - University of South Africa - Watkiapj@unisa.ac.za [16] • Lazarus Matizirofa - University of Johannesburg - lmatizirofa@uj.ac.za [17] Repository Librarians • Paulette Talliard - Stellenbosch University - plt@sun.ac.za [18] • Ricardo Davids - Stellenbosch University - rddavids@sun.ac.za [19] Repository Systems Administrators • Hilton Gibson - hilton.gibson@gmail.com [9] • Bravismore Mumanyi - bravismore@unam.na [20] • Lighton Phiri - lighton.phiri@gmail.com [21] • Lewatle Phaladi - Lewatle.Phaladi@wits.ac.za [22] • Barrie Swanepoel - barries@uj.ac.za [23] • Sean Carte - sean.carte@gmail.com [24] • Solomon Kapfunde - skapfunde@uwc.ac.za [25] • Thato Mahlatji - t.tmahlatji@gmail.com [26] • Sakhi Louw - selouw@uwc.ac.za [27] • Darryn Francesco - darryn.francesco@gmail.com [28] Stellenbosch University Library Systems The above guidelines were used to build the following systems: • http://scholar.sun.ac.za • http://www.journals.ac.za • http://conferences.sun.ac.za • http://digital.lib.sun.ac.za • http://ar1.sun.ac.za • http://aj1.sun.ac.za
  • SUNScholar/Repository Information 59 References [1] http://crln.acrl.org/content/75/4/187.full [2] http://www.budapestopenaccessinitiative.org/resources/guide-to-institutional-repository-software [3] http://hdl.handle.net/1721.1/26698 [4] http://www.dlib.org/dlib/september05/lynch/09lynch.html [5] http://hdl.handle.net/10204/2504 [6] http://hdl.handle.net/2263/19210 [7] http://lists.sourceforge.net/lists/listinfo/dspace-general [8] http://lists.sourceforge.net/lists/listinfo/dspace-tech [9] http://lists.sourceforge.net/lists/listinfo/dspace-changelog [10] mailto:rraju@sun.ac.za [11] mailto:michelle.willmers@uct.ac.za [12] mailto:elsabe.olivier@up.ac.za [13] mailto:hettie.groenewald@up.ac.za [14] mailto:afullard@uwc.ac.za [15] mailto:denise.nicholson@wits.ac.za [16] mailto:Watkiapj@unisa.ac.za [17] mailto:lmatizirofa@uj.ac.za [18] mailto:plt@sun.ac.za [19] mailto:rddavids@sun.ac.za [20] mailto:bravismore@unam.na [21] mailto:lighton.phiri@gmail.com [22] mailto:Lewatle.Phaladi@wits.ac.za [23] mailto:barries@uj.ac.za [24] mailto:sean.carte@gmail.com [25] mailto:skapfunde@uwc.ac.za [26] mailto:t.tmahlatji@gmail.com [27] mailto:selouw@uwc.ac.za [28] mailto:darryn.francesco@gmail.com
  • 60 XMLUI SUNScholar/XMLUI Theme Back to Theme This page describes the method for customising DSpace using the Manakin (XMLUI) interface with the supplied Mirage theme. This procedure is much easier to achieve if you build yourself an Ubuntu desktop computer [1] to use first. • Step 1 - Read the "Tutorial" • Step 2 - Create "MyTheme" • Step 3 - Modify "MyTheme" • Step 4 - Rebuild DSpace to compile and then activate the new theme as a "module" overlay •• Step 5 - View new look Type the following in the address bar and then press F5 on the keyboard to refresh your internet browser cache. http://%hostname% Replace %hostname% with the hostname of your server. SUNScholar/XMLUI Theme/Tutorial Back to XMLUI Theme Introduction The XMLUI is one of the web user interfaces available to DSpace, the other is the JSPUI. The XMLUI is based on Manakin using COCOON pipelines and the DRI schema to render the HTML web pages. This wiki page provides a brief overview of the technical properties of the XMLUI. Theme Definition 1.1. The Tomcat server is configured to use port 80 and 443. 2.2. The Tomcat server is configured to use the XMLUI interface as default. 3. The aspects (functionality) to be used are defined in the xmlui.xconf file. 4. The XMLUI theme to be used is defined in the xmlui.xconf file. 5. The XMLUI theme is rendered using a pipeline, expressed simply as: DRI => XML => XSL => XHTML => CSS.
  • SUNScholar/XMLUI Theme/Tutorial 61 Theme Transformation Pipeline Sequence A Java file per aspect is created to form the DRI in an XML format. ls -lR /home/dspace/source/dspace-xmlui/src/main/java/org/dspace/app/xmlui/aspect The DRI XML is transformed via XSL to XHTML, using global transformers. nano /home/dspace/source/dspace-xmlui/src/main/webapp/sitemap.xmap The XML is further transformed via XSL to XHTML, using localised transformers, assuming you selected to use the clean "template" theme. nano /home/dspace/source/dspace-xmlui/src/main/webapp/themes/template/sitemap.xmap The XHTML files are styled per theme using CSS files. ls -lR /home/dspace/source/dspace-xmlui/src/main/webapp/themes/template/lib/ Official Help View the following for official DSpace Manakin help. • https://wiki.duraspace.org/display/DSPACE/Manakin+theme+tutorial • https://wiki.duraspace.org/label/DSPACE/manakinhowto View the following for a better understanding of XMLUI Mirage theme design using the "modules" overlay method: • http://www.slideshare.net/tdonohue/making-dspace-xmlui-your-own
  • SUNScholar/XMLUI Theme/Tutorial 62 Development Tools DRI (Digital Repository Interface) Schema The DRI XML Document consists of the root element document and three top-level elements that contain two major types of elements. The three top-level containers are meta, body, and options. •• Detailed Information https://wiki.duraspace.org/display/DSDOC4x/DRI+Schema+Reference https://wiki.duraspace.org/display/DSDOC3x/DRI+Schema+Reference https://wiki.duraspace.org/display/DSDOC18/DRI+Schema+Reference https://wiki.duraspace.org/display/DSDOC17/DRI+Schema+Reference DRI2XHTML Transformers The DRI is transformed into XHTML using XSL templates. There are two main base templates you can use when creating an XMLUI Theme: •• dri2xhtml - used in the generation of default Reference, Classic and Kubrick themes •• dri2xhtml-alt - used in the generation of default Mirage theme You only should use one of these two templates, based on which seems easier to you.
  • SUNScholar/XMLUI Theme/Tutorial 63 Theme path A new feature in DSpace 1.5 is the ability to try out different themes on a particular page without having to mess with the xmlui.xconf file or needing to restart Tomcat. Two things need to be done in order to apply a theme to any page you are currently looking at. 1. The following setting in dspace.cfg must be set to true: xmlui.theme.allowoverrides=true 2.2. The "themepath" value should be appended to the end of the url. See examples below. http://scholar.sun.ac.za/?themepath=Classic/ http://scholar.sun.ac.za/?themepath=Reference/ http://scholar.sun.ac.za/?themepath=Mirage/ http://scholar.sun.ac.za/?themepath=Kubrick/ http://scholar.sun.ac.za/?themepath=mobile/ Now check all themes rendering the discovery search page. http://scholar.sun.ac.za/discover?themepath=Classic/ http://scholar.sun.ac.za/discover?themepath=Reference/ http://scholar.sun.ac.za/discover?themepath=Mirage/ http://scholar.sun.ac.za/discover?themepath=Kubrick/ http://scholar.sun.ac.za/discover?themepath=mobile/ DRI Expression You can view the DRI (Digital Repository Interface) elements as follows per page by prepending DRI/. http://scholar.sun.ac.za/DRI/discover http://scholar.sun.ac.za/DRI/statistics-home XML Expression You can view the XML elements as follows per page by appending ?XML. http://scholar.sun.ac.za/discover?XML http://scholar.sun.ac.za/statistics-home?XML Combined Expression Now lets combine expressions as follows. http://scholar.sun.ac.za/DRI/?themepath=Classic/ http://scholar.sun.ac.za/DRI/discover?themepath=Classic/ http://scholar.sun.ac.za/DRI/statistics-home?themepath=Classic/ Getting at the raw XHTML Moving further down the pipeline, once the XSL templates have been applied and DRI has been converted into XHTML, CSS rules can be applied to the result in order to impart a specific look and feel to the theme. This is the point where Tier 1 development usually begins. When editing the CSS, Manakin theme development is much like any Web development project. You start out with XHTML, a blank CSS and possibly a design in mind, and work with the CSS until the results are satisfactory. Getting at the raw XHTML output of the XSL processor is easy: all browsers allow the user to look at the page source and save a copy. While the underlying HTML varies for any given DSpace page, the top-level structures like body and header remain consistent. One technique is to go through DSpace page by page, look at the HTML, and
  • SUNScholar/XMLUI Theme/Tutorial 64 create CSS rules as necessary. Alternatively, you can extend the Reference theme that contains CSS selectors for nearly all elements encountered in the HTML structures of Manakin DSpace. CSS Tips and Tricks Firefox Download and install the latest version of Firefox from: http://www.mozilla.org/en-US/firefox/new/ Determining current style elements used Right-click on any part of the website to view the CSS element detail. You can change things in real time per item, in the right hand pane, to see what it will look like. See screenshots below.
  • SUNScholar/XMLUI Theme/Tutorial 65 Theme Repository Check out the following theme repositories. • http://web.lib.sun.ac.za/style/sunscholar/theme :- DS32 = DSpace 3.2, DS182 = DSpace 1.8.2, DS172 = DSpace 1.7.2 • https://wiki.duraspace.org/display/DSPACE/Repository+of+XMLUI+themes References • https://wiki.duraspace.org/display/DSDOC4x/XMLUI+Configuration+and+Customization • https://wiki.duraspace.org/display/DSPACE/Manakin+theme+tutorial Development • https://atmire.com/website/?q=content/fresh-look-and-feel-dspace-4 Tips • http://www.slideshare.net/bramluyten/dspace-3-xml • https://wiki.duraspace.org/display/DSPACE/XMLUI+How+To+Guides • https://wiki.duraspace.org/display/DSPACE/ TechnicalFaq#TechnicalFaq-HowdoIremovethesearchboxfromthefrontpageinXMLUI • https://wiki.duraspace.org/pages/viewpage.action?pageId=19006130 • http://design.ubuntu.com/assets/colour-palette • http://design.ubuntu.com/assets/ubuntu-font-family
  • SUNScholar/XMLUI Theme/Creation 66 SUNScholar/XMLUI Theme/Creation Back to XMLUI Theme Requirements Please see: http://wiki.lib.sun.ac.za/index.php/SUNScholar/Install_DSpace/S03 Make sure you have correctly "symlinked" to the source code, see step 3.2 above. The default folder is: /home/dspace/source/dspace/modules/xmlui/src/main/webapp/themes/[custom-theme-dir] Method We will be using the "modules" overlay method to create a custom theme. You can replace "Mytheme" with a theme name of your choice for all of the following instructions. Step 1 - Copy the "Mirage" reference theme to a custom "Mytheme" Type the following to create your own custom theme folder and files using the reference "Mirage" theme. mkdir /home/dspace/source/dspace/modules/xmlui/src/main/webapp/themes mkdir /home/dspace/source/dspace/modules/xmlui/src/main/webapp/themes/Mytheme cd /home/dspace/source/dspace-xmlui/dspace-xmlui-webapp/src/main/webapp/themes cp -R Mirage /home/dspace/source/dspace/modules/xmlui/src/main/webapp/themes/Mytheme Step 2 - Modify the "xmlui.xconf" file to use "Mytheme" Type the following to go to your DSpace config directory. cd /home/dspace/source/dspace/config Type the following to edit the DSpace XMLUI config file. nano xmlui.xconf Add the following to "xmlui.xconf" file in the themes section using copy and paste with firefox and nano. Make sure to comment out all other theme references !! <theme name="Mytheme" path="Mytheme/" regex=".*" /> NANO Editor Help
  • SUNScholar/XMLUI Theme/Creation 67 CTL+O = Save the file and then press Enter CTL+X = Exit "nano" CTL+K = Delete line CTL+U = Undelete line CTL+W = Search for $string$ CTL+ = Search for and replace $string$ ALT+C = Show line numbers More info = http://en.wikipedia.org/wiki/Nano_(text_editor) Step 3 - Modify the "sitemap.xmap" file to use "Mytheme" Type the following to change directory to the "Mytheme" folder. cd /home/dspace/source/dspace/modules/xmlui/src/main/webapp/themes/Mytheme Modify the sitemap.xmap config file for your new theme by typing the following. nano sitemap.xmap Change the "theme-path" and "theme-name" parameters in the sitemap.xmap file using the "nano" editor. <map:component-configurations> <global-variables> <theme-path>Mytheme</theme-path> <theme-name>Mytheme</theme-name> </global-variables> </map:component-configurations> NANO Editor Help CTL+O = Save the file and then press Enter CTL+X = Exit "nano" CTL+K = Delete line CTL+U = Undelete line CTL+W = Search for $string$ CTL+ = Search for and replace $string$ ALT+C = Show line numbers More info = http://en.wikipedia.org/wiki/Nano_(text_editor)
  • SUNScholar/XMLUI Theme/Creation 68 Step 4 - Rename the "Mirage.xsl" file to "Mytheme.xsl" Type the following. cd /home/dspace/source/dspace/modules/xmlui/src/main/webapp/themes/Mytheme Rename the "Mirage.xsl" file to "Mytheme.xsl" by typing the following. mv Mirage.xsl Mytheme.xsl SUNScholar/XMLUI Theme/Modify Back to XMLUI Theme Below are links to wiki help pages dealing with the major sections of custom styling your repository website. SUNScholar/XMLUI Theme/Page Content Back to XMLUI Theme Modification Upload your own header logo Upload your repositories logo to the following images folder. /home/dspace/source/dspace/modules/xmlui/src/main/webapp/themes/Mytheme/images Overwrite or create a file called logo.png and make sure that the CSS stylesheets refer to your custom logo header image file. Customise the front page introduction Type the following. nano /home/dspace/source/dspace/config/news-xmlui.xml Use the following tags for content markup: • <hi rend="bold">Bold text... </hi> • <hi rend="italic">Italic text... </hi> • <head>Title etc..</head> • <p>.....</p> for paragraphs. • <xref target="http://wiki.lib.sun.ac.za/index.php/BOAI/Section3">BOAI Section 3</xref> for hyperlinks to other online content. NANO Editor Help
  • SUNScholar/XMLUI Theme/Page Content 69 CTL+O = Save the file and then press Enter CTL+X = Exit "nano" CTL+K = Delete line CTL+U = Undelete line CTL+W = Search for $string$ CTL+ = Search for and replace $string$ ALT+C = Show line numbers More info = http://en.wikipedia.org/wiki/Nano_(text_editor) Customise the page footer Type the following. nano /home/dspace/source/dspace/modules/xmlui/src/main/webapp/themes/Mytheme/lib/xsl/core/page-structure.xsl Search for "footer" around line 557 approx by typing CTL+W and modify accordingly. See modified example below. <xsl:template name="buildFooter"> <div id="ds-footer-wrapper"> <div id="ds-footer"> <div id="ds-footer-left"> <a href="http://www.dspace.org">DSpace 1.8.2</a> | <a href="http://ubuntu.sun.ac.za">Ubuntu 10.04</a> | Copyright © <a href="http://www.sun.ac.za" target="_blank">Stellenbosch University</a></div> NANO Editor Help CTL+O = Save the file and then press Enter CTL+X = Exit "nano" CTL+K = Delete line CTL+U = Undelete line CTL+W = Search for $string$ CTL+ = Search for and replace $string$ ALT+C = Show line numbers More info = http://en.wikipedia.org/wiki/Nano_(text_editor)
  • SUNScholar/XMLUI Theme/Page Content 70 Enable public view of item counts Edit the DSpace config file as follows: nano /home/dspace/source/dspace/config/dspace.cfg Change the following to true: webui.strengths.show = true webui.strengths.cache = true Use unique icons for digital format types in item view Go to the folder containing the item view xsl file. cd /home/dspace/source/dspace/modules/xmlui/src/main/webapp/themes/Mytheme/lib/xsl/aspect/artifactbrowser Edit the following file. nano item-view.xsl Find the following section; <xsl:otherwise> <img alt="Icon" src="{concat($theme-path, '/images/mime.png')}" style="height: {$thumbnail.maxheight}px;"/> </xsl:otherwise> Copy and paste the following EXACTLY above the section mentioned above. Make sure to correctly indent items. <xsl:when test="current()/@MIMETYPE = 'application/css'"> <img alt="Icon" src="{concat($theme-path,'/images/icons/app-css.png')}" style="height:{$thumbnail.maxheight}px;"/> </xsl:when> <xsl:when test="current()/@MIMETYPE = 'application/docx'"> <img alt="Icon" src="{concat($theme-path,'/images/icons/app-docx.png')}" style="height:{$thumbnail.maxheight}px;"/> </xsl:when> <xsl:when test="current()/@MIMETYPE = 'application/html'"> <img alt="Icon" src="{concat($theme-path,'/images/icons/app-html.png')}" style="height:{$thumbnail.maxheight}px;"/> </xsl:when> <xsl:when test="current()/@MIMETYPE = 'application/pdf'"> <img alt="Icon" src="{concat($theme-path,'/images/icons/app-pdf.png')}" style="height:{$thumbnail.maxheight}px;"/> </xsl:when> <xsl:when test="current()/@MIMETYPE = 'application/pptx'"> <img alt="Icon" src="{concat($theme-path,'/images/icons/app-pptx.png')}" style="height:{$thumbnail.maxheight}px;"/> </xsl:when> <xsl:when test="current()/@MIMETYPE = 'application/text'"> <img alt="Icon" src="{concat($theme-path,'/images/icons/app-text.png')}" style="height:{$thumbnail.maxheight}px;"/> </xsl:when> <xsl:when test="current()/@MIMETYPE = 'application/xml'"> <img alt="Icon" src="{concat($theme-path,'/images/icons/app-xml.png')}" style="height:{$thumbnail.maxheight}px;"/> </xsl:when> <xsl:when test="current()/@MIMETYPE = 'audio/mp3'">
  • SUNScholar/XMLUI Theme/Page Content 71 <img alt="Icon" src="{concat($theme-path,'/images/icons/audio-mp3.png')}" style="height:{$thumbnail.maxheight}px;"/> </xsl:when> <xsl:when test="current()/@MIMETYPE = 'audio/x-wav'"> <img alt="Icon" src="{concat($theme-path,'/images/icons/audio-wav.png')}" style="height:{$thumbnail.maxheight}px;"/> </xsl:when> <xsl:when test="current()/@MIMETYPE = 'audio/x-ms-wma'"> <img alt="Icon" src="{concat($theme-path,'/images/icons/audio-wma.png')}" style="height:{$thumbnail.maxheight}px;"/> </xsl:when> <xsl:when test="current()/@MIMETYPE = 'file/rar'"> <img alt="Icon" src="{concat($theme-path,'/images/icons/file-rar.png')}" style="height:{$thumbnail.maxheight}px;"/> </xsl:when> <xsl:when test="current()/@MIMETYPE = 'file/sql'"> <img alt="Icon" src="{concat($theme-path,'/images/icons/file-sql.png')}" style="height:{$thumbnail.maxheight}px;"/> </xsl:when> <xsl:when test="current()/@MIMETYPE = 'file/tar'"> <img alt="Icon" src="{concat($theme-path,'/images/icons/file-tar.png')}" style="height:{$thumbnail.maxheight}px;"/> </xsl:when> <xsl:when test="current()/@MIMETYPE = 'file/tgz'"> <img alt="Icon" src="{concat($theme-path,'/images/icons/file-tgz.png')}" style="height:{$thumbnail.maxheight}px;"/> </xsl:when> <xsl:when test="current()/@MIMETYPE = 'file/zip'"> <img alt="Icon" src="{concat($theme-path,'/images/icons/file-zip.png')}" style="height:{$thumbnail.maxheight}px;"/> </xsl:when> <xsl:when test="current()/@MIMETYPE = 'image/bmp'"> <img alt="Icon" src="{concat($theme-path,'/images/icons/image-bmp.png')}" style="height:{$thumbnail.maxheight}px;"/> </xsl:when> <xsl:when test="current()/@MIMETYPE = 'image/gif'"> <img alt="Icon" src="{concat($theme-path,'/images/icons/image-gif.png')}" style="height:{$thumbnail.maxheight}px;"/> </xsl:when> <xsl:when test="current()/@MIMETYPE = 'image/jpeg'"> <img alt="Icon" src="{concat($theme-path,'/images/icons/image-jpeg.png')}" style="height:{$thumbnail.maxheight}px;"/> </xsl:when> <xsl:when test="current()/@MIMETYPE = 'image/png'"> <img alt="Icon" src="{concat($theme-path,'/images/icons/image-png.png')}" style="height:{$thumbnail.maxheight}px;"/> </xsl:when> <xsl:when test="current()/@MIMETYPE = 'image/tiff'"> <img alt="Icon" src="{concat($theme-path,'/images/icons/image-tiff.png')}" style="height:{$thumbnail.maxheight}px;"/> </xsl:when> <xsl:when test="current()/@MIMETYPE = 'video/avi'"> <img alt="Icon" src="{concat($theme-path,'/images/icons/video-avi.png')}" style="height:{$thumbnail.maxheight}px;"/> </xsl:when> <xsl:when test="current()/@MIMETYPE = 'video/flv'"> <img alt="Icon" src="{concat($theme-path,'/images/icons/video-flv.png')}" style="height:{$thumbnail.maxheight}px;"/> </xsl:when> <xsl:when test="current()/@MIMETYPE = 'video/mov'"> <img alt="Icon" src="{concat($theme-path,'/images/icons/video-mov.png')}" style="height:{$thumbnail.maxheight}px;"/> </xsl:when>
  • SUNScholar/XMLUI Theme/Page Content 72 <xsl:when test="current()/@MIMETYPE = 'video/mp4v-es'"> <img alt="Icon" src="{concat($theme-path,'/images/icons/video-mp4.png')}" style="height:{$thumbnail.maxheight}px;"/> </xsl:when> <xsl:when test="current()/@MIMETYPE = 'video/mpeg'"> <img alt="Icon" src="{concat($theme-path,'/images/icons/video-mpeg.png')}" style="height:{$thumbnail.maxheight}px;"/> </xsl:when> <xsl:when test="current()/@MIMETYPE = 'video/swf'"> <img alt="Icon" src="{concat($theme-path,'/images/icons/video-swf.png')}" style="height:{$thumbnail.maxheight}px;"/> </xsl:when> <xsl:when test="current()/@MIMETYPE = 'video/webm'"> <img alt="Icon" src="{concat($theme-path,'/images/icons/video-webm.png')}" style="height:{$thumbnail.maxheight}px;"/> </xsl:when> <xsl:when test="current()/@MIMETYPE = 'video/wmv'"> <img alt="Icon" src="{concat($theme-path,'/images/icons/video-wmv.png')}" style="height:{$thumbnail.maxheight}px;"/> </xsl:when> NANO Editor Help CTL+O = Save the file and then press Enter CTL+X = Exit "nano" CTL+K = Delete line CTL+U = Undelete line CTL+W = Search for $string$ CTL+ = Search for and replace $string$ ALT+C = Show line numbers More info = http://en.wikipedia.org/wiki/Nano_(text_editor) Icon design by: http://www.iconarchive.com/artist/treetog.html'' Download the icons compressed tarball (tar.gz) from the following web folder to your themes images folder as follows. cd /home/dspace/source/dspace/modules/xmlui/src/main/webapp/themes/Mytheme/images wget http://web.lib.sun.ac.za/style/icons/icons.tar.gz tar -xzvf icons.tar.gz rm icons.tar.gz cd icons chmod 0777 * You can browse the individual icons by going to: http://web.lib.sun.ac.za/style/icons Finally add the following common formats to DSpace.
  • SUNScholar/XMLUI Theme/Page Content 73 Tips • https://wiki.duraspace.org/pages/viewpage.action?pageId=19006388 - Modify item metadata display • https://wiki.duraspace.org/pages/viewpage.action?pageId=19006367 - Make author and subject links clickable SUNScholar/XMLUI Theme/Page Structure Back to XMLUI Theme Modification Remove the "Register" link from the right navigation box In the DSpace config file, set the following and rebuild. xmlui.user.registration=false Remove duplicate "Community" browse link from the right navigation box Go to the following folder: cd /home/dspace/source/dspace/modules/xmlui/src/main/webapp/themes/Mytheme/lib/xsl/core Open the following file: nano navigation.xsl Add the following to the top of the file: <!-- Remove the "Community" link - H Gibson - 2012 --> <xsl:template name="disable-1st-link-in-browse-menu" match="dri:list[not(@type) and @id='aspect.browseArtifacts.Navigation.list.global']/dri:item[1]" mode="nested"> </xsl:template>
  • SUNScholar/XMLUI Theme/Page Structure 74 NANO Editor Help CTL+O = Save the file and then press Enter CTL+X = Exit "nano" CTL+K = Delete line CTL+U = Undelete line CTL+W = Search for $string$ CTL+ = Search for and replace $string$ ALT+C = Show line numbers More info = http://en.wikipedia.org/wiki/Nano_(text_editor) Remove duplicate "Search" input from the right navigation box Go to the following folder: cd /home/dspace/source/dspace/modules/xmlui/src/main/webapp/themes/Mytheme/lib/xsl/core Open the following file: nano navigation.xsl Go to line 55 approx and comment out as follows or you can simply delete the text: <!-- <form id="ds-search-form" method="post"> <xsl:attribute name="action"> <xsl:value-of select="/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='search'][@qualifier='s </xsl:attribute> <fieldset> <input class="ds-text-field " type="text"> <xsl:attribute name="name"> <xsl:value-of select="/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='search'][@qualifier='q </xsl:attribute> </input> <input class="ds-button-field " name="submit" type="submit" i18n:attr="value" value="xmlui.general.go"> <xsl:attribute name="onclick"> <xsl:text> var radio = document.getElementById("ds-search-form-scope-container"); if (radio != undefined && radio.checked)
  • SUNScholar/XMLUI Theme/Page Structure 75 { var form = document.getElementById("ds-search-form"); form.action= </xsl:text> <xsl:text>"</xsl:text> <xsl:value-of select="/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='contextPath']"/> <xsl:text>/handle/" + radio.value + "</xsl:text> <xsl:value-of select="/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='search'][@qualifier='s <xsl:text>" ; </xsl:text> <xsl:text> } </xsl:text> </xsl:attribute> </input> <xsl:if test="/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='focus'][@qualifier='cont <label> <input id="ds-search-form-scope-all" type="radio" name="scope" value="" checked="checked"/> <i18n:text>xmlui.dri2xhtml.structural.search</i18n:text> </label> <br/> <label> <input id="ds-search-form-scope-container" type="radio" name="scope"> <xsl:attribute name="value"> <xsl:value-of select="substring-after(/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='focus' </xsl:attribute> </input> <xsl:choose> <xsl:when test="/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='focus'][@qualifier='cont = 'type:community'"> <i18n:text>xmlui.dri2xhtml.structural.search-in-community</i18n:text>
  • SUNScholar/XMLUI Theme/Page Structure 76 </xsl:when> <xsl:otherwise> <i18n:text>xmlui.dri2xhtml.structural.search-in-collection</i18n:text> </xsl:otherwise> </xsl:choose> </label> </xsl:if> </fieldset> </form> --> NANO Editor Help CTL+O = Save the file and then press Enter CTL+X = Exit "nano" CTL+K = Delete line CTL+U = Undelete line CTL+W = Search for $string$ CTL+ = Search for and replace $string$ ALT+C = Show line numbers More info = http://en.wikipedia.org/wiki/Nano_(text_editor) Remove duplicate "Login" link above the top banner logo Go to the following folder: cd /home/dspace/source/dspace/modules/xmlui/src/main/webapp/themes/Mytheme/lib/xsl/core Open the following file: nano page-structure.xsl Go to line 337 approx and comment out as follows or you can simply delete the text: <!-- <xsl:choose> <xsl:when test="/dri:document/dri:meta/dri:userMeta/@authenticated = 'yes'"> <div id="ds-user-box"> <p> <a> <xsl:attribute name="href"> <xsl:value-of select="/dri:document/dri:meta/dri:userMeta/ dri:metadata[@element='identifier' and @qualifier='url']"/> </xsl:attribute> <i18n:text>xmlui.dri2xhtml.structural.profile</i18n:text> <xsl:value-of select="/dri:document/dri:meta/dri:userMeta/ dri:metadata[@element='identifier' and @qualifier='firstName']"/>
  • SUNScholar/XMLUI Theme/Page Structure 77 <xsl:text> </xsl:text> <xsl:value-of select="/dri:document/dri:meta/dri:userMeta/ dri:metadata[@element='identifier' and @qualifier='lastName']"/> </a> <xsl:text> | </xsl:text> <a> <xsl:attribute name="href"> <xsl:value-of select="/dri:document/dri:meta/dri:userMeta/ dri:metadata[@element='identifier' and @qualifier='logoutURL']"/> </xsl:attribute> <i18n:text>xmlui.dri2xhtml.structural.logout</i18n:text> </a> </p> </div> </xsl:when> <xsl:otherwise> <div id="ds-user-box"> <p> <a> <xsl:attribute name="href"> <xsl:value-of select="/dri:document/dri:meta/dri:userMeta/ dri:metadata[@element='identifier' and @qualifier='loginURL']"/> </xsl:attribute> <i18n:text>xmlui.dri2xhtml.structural.login</i18n:text> </a> </p> </div> </xsl:otherwise> </xsl:choose> --> NANO Editor Help CTL+O = Save the file and then press Enter CTL+X = Exit "nano" CTL+K = Delete line CTL+U = Undelete line CTL+W = Search for $string$ CTL+ = Search for and replace $string$ ALT+C = Show line numbers More info = http://en.wikipedia.org/wiki/Nano_(text_editor)
  • SUNScholar/XMLUI Theme/Page Structure 78 Create custom navigation list Hi Charlene, In navigation.xsl, in the “dri:options” template, instead of: <xsl:apply-templates/> You should just be able to do: <xsl:apply-templates select="dri:list[@n='discover']"/> <xsl:apply-templates select="dri:list[@n='account']"/> <xsl:apply-templates select="dri:list[@n='administrative']"/> <xsl:apply-templates select="dri:list[@n='browse']"/> If you have any other custom lists, you’ll need to be sure to select for those as well. Jacob Brown SUNScholar/XMLUI Theme/Language Back to XMLUI Theme Modification Step 1 - Create custom "messages.xml" file A custom "messages.xml" is created using the modules overlay method with the XMLUI web user interface. mkdir /home/dspace/source/dspace/modules/xmlui/src/main/webapp/i18n cd /home/dspace/source/dspace/modules/xmlui/src/main/webapp/i18n cp /home/dspace/source/dspace-xmlui/dspace-xmlui-webapp/src/main/webapp/i18n/messages.xml . nano /home/dspace/source/dspace/modules/xmlui/src/main/webapp/i18n/messages.xml Modify the "messages.xml" file as desired using "nano". NANO Editor Help
  • SUNScholar/XMLUI Theme/Language 79 CTL+O = Save the file and then press Enter CTL+X = Exit "nano" CTL+K = Delete line CTL+U = Undelete line CTL+W = Search for $string$ CTL+ = Search for and replace $string$ ALT+C = Show line numbers More info = http://en.wikipedia.org/wiki/Nano_(text_editor) Step 2 - Apply own breadcrumb trail title Find the following section at the top of the file and modify using "nano". <!-- General keys --> <message key="xmlui.general.dspace_home">Home</message> <message key="xmlui.general.search">Search</message> <message key="xmlui.general.go">Go</message> <message key="xmlui.general.go_home">Go to home page</message> Step 3 - Apply own "DSpace" replacement Using "nano", replace all mention of "DSpace" with the name of your repository. See above, for help using the "nano" editor to do search and replace of content. Step 4 - Apply indexes modification Click on the heading above. Step 5 - Rebuild DSpace Click on the heading above. Further References http://wiki.lib.sun.ac.za/index.php/SUNScholar/Language
  • SUNScholar/XMLUI Theme/Styling 80 SUNScholar/XMLUI Theme/Styling Back to XMLUI Theme Modification Modify site CSS styles Find a good web 2.0 developer to help you with this, this is the core of the repository website styling !! Type the following to access the source folder. Modify the css files to suit yourself. cd /home/dspace/source/dspace/modules/xmlui/src/main/webapp/themes/Mytheme/lib/css To do quick temporary changes, you can modify the style by accessing files in the live folder. /home/dspace/webapps/xmlui/themes/Mytheme/lib/css Make sure to copy the files back to the source folder to make the changes permanent. CSS and HTML help links • http://learnlayout.com • http://www.csstutorial.net • http://www.echoecho.com/css.htm • http://htmldog.com • http://htmlhelp.com/reference/css • http://www.fontsquirrel.com • http://validator.w3.org • http://jigsaw.w3.org/css-validator
  • 81 Copyright SUNScholar/Copyright Back to Open Access Back to SUNScholar Help Who owns the copyright for my research article? Please refer to the following: •• Publishing articles, books, etc. • Prepare files for submission >> Copyright For enquiries regarding the above, please contact: Director: Intellectual Property • E-mail: General Inquiries [1] •• Tel: +27 (0)21 808 3910 SUNScholar default license When submitting an item to SUNScholar, you will be requested to grant the following license. NON-EXCLUSIVE DISTRIBUTION LICENSE In order for SUNScholar to reproduce, translate and distribute your submission worldwide your agreement to the following terms is necessary. By submitting this license, you (the owner of the rights), or on behalf of the owner of the rights, grants to the Stellenbosch University the non-exclusive right to reproduce, translate (as defined below), and/or distribute your submission (including the abstract) worldwide in print and electronic format and in any medium, including but not limited to audio or video. You agree that the Stellenbosch University may, without changing the content, translate the submission to any medium or format for the purpose of preservation. You also agree that the Stellenbosch University may keep more than one copy of this submission for purposes of security, back-up and preservation. You represent that the submission is your original work, and that you have the right to grant the rights contained in this license. You also represent that your submission does not, to the best of your knowledge, infringe upon anyone's copyright. If the submission contains material for which you do not hold copyright, you represent that you have obtained the unrestricted permission of the copyright owner to grant the Stellenbosch University the rights required by this license, and that such third-party owned material is clearly identified and acknowledged within the text or content of the submission. IF THE SUBMISSION IS BASED UPON WORK THAT HAS BEEN SPONSORED OR SUPPORTED BY AN AGENCY OR ORGANIZATION OTHER THAN THE STELLENBOSCH UNIVERSITY, YOU REPRESENT THAT YOU HAVE FULFILLED ANY RIGHT OF REVIEW OR OTHER OBLIGATIONS REQUIRED BY SUCH CONTRACT OR AGREEMENT.
  • SUNScholar/Copyright 82 The Stellenbosch University will clearly identify your name(s) as the submitter of the submission, and will not make any alteration, other than as allowed by this license, to your submission. All items in the SUNScholar collection are subject to copyright. Negotiating copyright 1. Don't just sign your copyright away. Licence your work by selecting a Creative Commons licence [2] , or publish in an Open Access Journal. See Directory of Open Access Journals [3] . 2. Include a clause in the letter of agreement with the publisher - e.g. add the SPARC Addendum [4] - that allows you to archive a copy of the item on SUNScholar [5] . Negotiate in advance, and obtain a digital copy of the final version from the publisher/ copyright owner. Submit this digital copy to SUNScholar [5] for long-term digital preservation and access. 3. Check the publisher's policy for self-archiving within an institutional repository on SHERPA/ RoMEO Publisher Copyright Policies & Self-Archiving [6] . Encourage publishers to post their policies at Suggest a Publisher [7] . 4. Visit the publisher's web page for policies on self-archiving within SUNScholar [5] . 5. Obtain permission for archiving the item on SUNScholar [5] from the copyright owner/ publisher by contacting them directly. A copy of each letter of consent will be archived on SUNScholar [5] . Example letters to obtain permission •• Post-print article •• Chapter from book •• Video/ Sound Clip •• Conference Paper References • http://www.copyright.com • http://poynder.blogspot.co.uk/2014/02/guest-post-charles-oppenheim-on-who.html • http://www.sparc.arl.org/theme/author-rights • Negotiate your copyright [8] • How to make your work open access [9] • Innovus [10] • Copyright for Librarians [11] • South African Copyright Act of 1978 [12] • Copyright and Plagiarism (with acknowledgement to the University of the Witwatersrand) [13] • DALRO Copyright [14] • DALRO Intellectual Property [15] • University of Stellenbosch Intellectual Property Policy [16]
  • SUNScholar/Copyright 83 References [1] mailto:innovus@sun.ac.za [2] http://creativecommons.org/choose/ [3] http://www.doaj.org/ [4] http://www.arl.org/sparc/author/addendum.shtml [5] https://scholar.sun.ac.za/ [6] http://www.sherpa.ac.uk/romeo/ [7] http://www.sherpa.ac.uk/romeoupdate.php [8] http://dr.archives.pdx.edu/xmlui/bitstream/handle/psu/9480/ford_keeping-rights.pdf?sequence=1 [9] http://cyber.law.harvard.edu/hoap/How_to_make_your_own_work_open_access [10] http://www.innovus.co.za/pages/english/home.php [11] http://cyber.law.harvard.edu/copyrightforlibrarians/Main_Page [12] http://wiki.lib.sun.ac.za/images/a/a4/Copyrightact.pdf [13] http://web.wits.ac.za/library/services/copyright.html [14] http://www.dalro.co.za/index.php?option=com_content&view=article&id=46&Itemid=56&nav=2 [15] http://www.dalro.co.za/index.php?option=com_content&view=article&id=52&Itemid=62 [16] http://library.sun.ac.za/etd/ip_policy.pdf SUNScholar/Embargo When is an embargo on SUNScholar allowed? SUNScholar aims to make research produced by members of the University research community as visible and accessible possible. We do acknowledge - however - that exceptional cases may arise in which the research results involved cannot be made known in the usual manner. Stellenbosch University takes this view on the clear understanding, however, that the number of such exceptional cases and also the period of classification to which they are subject are both to be restricted to a minimum. Therefore embargoes are allowed under certain conditions: •• If the quality of the content is not acceptable/up to standard. •• If - in the case of research articles - publishers' or copyright owners require that access to the full text be restricted, following an agreement with the University. •• Where the research is of confidential nature, and involves commercial confidentiality. •• Where research is of security interest. For further details, please view the University Calendar [1] . How to indicate that an embargo applies Complete the approriate field on the SUNScholar submission form. If no embargo applies, leave the field open. If an embargo applies, fill out the expiry date for the embargo. Use the following date convention: yyyy-mm-dd
  • SUNScholar/Embargo 84 Workflow for an embargoed item • Submitter submits item, and completes embargo expiry date on submission form. Attach any additional documentation as proof. • Reviewers (SUNScholar Office) reviews, and add date embargo expires in front of title. The embargo will be automatically lifted by the system once the embargo expires. • Metadata Editors (Cataloguers) edits, commit to archive, and confirm the item has been withdrawn from public view after being committed. Verify that correct date convention has been used. Add note to description.provenance field: Item is under embargo. Additional documentation supporting the embargo to be uploaded. Move the item to the Embargo Collection [2] on SUNScholar. • Full text file to be stored in secure Collection until embargo expires (responsibility of SUNScholar Office). Enquiries Please direct any inquiries related to research material on SUNScholar to the SUNScholar Office. Tel.: 00 27 21 808 9139 E-mail: scholar@sun.ac.za References • http://wiki.lib.sun.ac.za/index.php/SUNScholar/Asset_Embargo Back to SUNScholar Help References [1] http://www.sun.ac.za/english/Documents/Yearbooks/2013/2013%20Deel%201%20Algemeen%20%28Eng%29_web.pdf [2] https://scholar.sun.ac.za/handle/10019.1/19337
  • SUNScholar/Embargo Systems/3.2 85 SUNScholar/Embargo Systems/3.2 Back to Embargo Systems Please note: This feature was released with DSpace version 3.2 and therefore not fully tried and tested. You apply this feature at your own risk. Introduction There is a MAJOR change in the embargo function with DSpace 3.2 when using the XMLUI. Read carefully and prepare yourself during an upgrade. Urgent Notice The wording for the simple embargo form was confusing users, so the following were submitted to change the wording: • https://jira.duraspace.org/browse/DS-1709 • https://jira.duraspace.org/browse/DS-1764 With our repository we updated the messages.xml file with the changes incorporated for DSpace 4.0. See example below: <!-- org.dspace.app.xmlui.Submission.submit.AccessStep --> <message key="xmlui.Submission.submit.AccessStep.head">Access Settings</message> <message key="xmlui.Submission.submit.AccessStep.access_settings">Visible to a group of selected users (no selection needed for Anonymous)</message> <message key="xmlui.Submission.submit.AccessStep.open_access">Item will be visible once accepted into archive</message> <message key="xmlui.Submission.submit.AccessStep.embargo">Embargo Access until Specific Date</message> <message key="xmlui.Submission.submit.AccessStep.embargo_visible">Visible/Embargoed</message> <message key="xmlui.Submission.submit.AccessStep.name">Name</message> <message key="xmlui.Submission.submit.AccessStep.description">Description</message> <message key="xmlui.Submission.submit.AccessStep.reason">Reason</message> <message key="xmlui.Submission.submit.AccessStep.submit_add_policy">Confirm Policy & add another</message> <message key="xmlui.Submission.submit.AccessStep.list_assigned_groups">Groups</message> <message
  • SUNScholar/Embargo Systems/3.2 86 key="xmlui.Submission.submit.AccessStep.error_format_date">Error format date</message> <message key="xmlui.Submission.submit.AccessStep.error_missing_date">When Embargo selected, date is required</message> <message key="xmlui.Submission.submit.AccessStep.error_duplicated_policy">An identical policy for this group and this action is already in place.</message> <message key="xmlui.Submission.submit.AccessStep.table_policies">Policies List</message> <message key="xmlui.Submission.submit.AccessStep.private_settings">Private Item</message> <message key="xmlui.Submission.submit.AccessStep.private_settings_help">If selected, the item won't be searchable</message> <message key="xmlui.Submission.submit.AccessStep.column0">Name</message> <message key="xmlui.Submission.submit.AccessStep.column1">Action</message> <message key="xmlui.Submission.submit.AccessStep.column2">Group</message> <message key="xmlui.Submission.submit.AccessStep.column3">Start Date</message> <message key="xmlui.Submission.submit.AccessStep.column4">End Date</message> <message key="xmlui.Submission.submit.AccessStep.table_edit_button">Edit</message> <message key="xmlui.Submission.submit.AccessStep.table_delete_button">Remove</message> <message key="xmlui.administrative.authorization.AccessStep.label_date_help">Accepted format: yyyy, yyyy-mm, yyyy-mm-dd</message>
  • SUNScholar/Embargo Systems/3.2 87 Note for upgrade from 1.8.2 to 3.2 If you enabled embargoes in 1.8.2 then make sure to remove the embargo date option in your customsied input-forms.xml file. See: http:/ / wiki. lib. sun. ac. za/ index. php/ SUNScholar/ Embargo_Systems/ 1. 8. 2#Modified_input_form_for_inputing_a_lift_date Step 1 - Select simple or advanced embargo The user has an opportunity to choose between, simple or advanced embargo settings. To switch between the two, you need to set following variable in the dspace.cfg file. xmlui.submission.restrictstep.enableAdvancedForm=false At Stellenbosch University with SUNScholar we have chosen to stay with the "simple" embargo method. See example below: # Special Group for UI: all the groups nested inside this group # will be loaded in the multiple select list of the RestrictStep xmlui.submission.restrictstep.groups=Anonymous xmlui.submission.restrictstep.enableAdvancedForm=false Step 2 - Pre-3.0 Embargo Migration Routine A migration routine has been developed to migrate the current embargo to the new one. To execute it, run the following command: /home/dspace/bin/dspace migrate-embargo -a And then: /home/dspace/bin/dspace embargo-lifter -a -v And then: /home/dspace/bin/dspace embargo-lifter -c -v Step 3- Enable Embargoes To enable the new embargo changes are required to the item-submission.xml file, located in your config directory. This file determines which steps are executed in the submission of a new item. Two new submission steps have been introduced in the file. By default, they are not activated yet: • AccessStep: the step in which the user can set the embargo at item level, effectively restricting access to the item metadata. • UploadWithEmbargoStep: the step in which the user can set the embargo at bitstream level. If this step is enabled, the old UploadStep must be disabled, leaving both steps enabled will result in a system failure. To enable the new embargo, ensure that the new steps are uncommented, while the old UploadStep needs to be commented out. Type the following to edit the submission file: nano /home/dspace/source/dspace/config/item-submission.xml See example below.
  • SUNScholar/Embargo Systems/3.2 88 <!--Step 3 will be to Manage Item access.--> <step> <heading>submit.progressbar.access</heading> <processing-class>org.dspace.submit.step.AccessStep</processing-class> <xmlui-binding>org.dspace.app.xmlui.aspect.submission.submit.AccessStep</xmlui-binding> <workflow-editable>true</workflow-editable> </step> <!--Step 4 will be to Upload the item <step> <heading>submit.progressbar.upload</heading> <processing-class>org.dspace.submit.step.UploadStep</processing-class> <jspui-binding>org.dspace.app.webui.submit.step.JSPUploadStep</jspui-binding> <xmlui-binding>org.dspace.app.xmlui.aspect.submission.submit.UploadStep</xmlui-binding> <workflow-editable>true</workflow-editable> </step> --> <!-- Step 4 Upload Item with Embargo Features (not supported in JSPUI) to enable this step, please make sure to comment-out the previous step "UploadStep" --> <step> <heading>submit.progressbar.upload</heading> <processing-class>org.dspace.submit.step.UploadWithEmbargoStep</processing-class> <xmlui-binding>org.dspace.app.xmlui.aspect.submission.submit.UploadWithEmbargoStep</xmlui-binding> <workflow-editable>true</workflow-editable> </step> Step 4 - Rebuild webapps Go to: http://wiki.lib.sun.ac.za/index.php/SUNScholar/Rebuild_DSpace and rebuild the webapps. Step 5 - Update daily task Go to: http://wiki.lib.sun.ac.za/index.php/SUNScholar/Daily_Admin and update daily admin tasks. See below for daily options. usage: /home/dspace/bin/dspace embargo-lifter -a,--adjust Function: Adjust bitstreams policies -l,--lift Function: ONLY lift embargoes, do NOT check the state of any embargoed Items. -c,--check Function: ONLY check the state of embargoed Items, do NOT lift any embargoes. -v,--verbose Print a line describing action taken for each embargoed Item found. -i,--identifier Process ONLY this Handle identifier(s), which must be an Item. Can be repeated. -n,--dryrun Do not change anything in the data model, print message instead.
  • SUNScholar/Embargo Systems/3.2 89 -q,--quiet Do not print anything except for errors. -h,--help help References • https://wiki.duraspace.org/display/DSDOC3x/Embargo • https://wiki.duraspace.org/display/DSDOC3x/Managing+Embargoed+Content SUNScholar/Embargo Systems/1.8.2 Introduction There are two methods for setting an embargo with DSpace versions => 1.6.2 and <= 1.8.2, namely; •• By manually inputing a lift date upon submission of an item. •• By selecting an embargo term upon submission of an item, where term means "length of time". We tried both methods but the terms method did not work with DSpace versions => 1.6.2 and <= 1.8.2. Only one method may be setup. Also see: http://wiki.lib.sun.ac.za/index.php/SUNScholar/Embargo DSpace config settings The following are our DSpace config settings. #### Embargo Settings #### # DC metadata field to hold the user-supplied embargo terms embargo.field.terms = dc.embargo.terms # DC metadata field to hold computed "lift date" of embargo embargo.field.lift = dc.embargo.lift # string in terms field to indicate indefinite embargo embargo.terms.open = forever # implementation of embargo setter plugin - replace with local implementation if applicable plugin.single.org.dspace.embargo.EmbargoSetter = org.dspace.embargo.DefaultEmbargoSetter # DC metadata field to hold computed "lift date" of embargo #embargo.terms.days = None:0, 6 months:180, 1 year:365, 18 months:545, 2 years:730 # implementation of embargo lifter plugin - - replace with local implementation if applicable plugin.single.org.dspace.embargo.EmbargoLifter = org.dspace.embargo.DefaultEmbargoLifter
  • SUNScholar/Embargo Systems/1.8.2 90 Extra DSpace metadata fields We added the following dc fields in the dublin core metadata schema: dc.embargo.terms dc.embargo.lift Modified input form for inputing a lift date We modified the input.xml file in the source DSpace config folder so that an embargo can be specified upon submission of an item: <!-- The embargo terms input. Added by H Hgibson --> <field> <dc-schema>dc</dc-schema> <dc-element>embargo</dc-element> <dc-qualifier>terms</dc-qualifier> <repeatable>false</repeatable> <label>Embargo Terms</label> <input-type>onebox</input-type> <hint>If required, enter date in 'yyyy-mm-dd' format when the embargo expires or '2050/01/01' for indefinite.</hint> <required></required> </field> Modified input form for terms method If using the terms method, the lift date would be calculated by the embargo setter. Below is the input form modification required for the term method. <!-- Embargo terms for dropdown input. Added by H Gibson --> <value-pairs value-pairs-name="embargo_terms" dc-term="embargo.terms"> <pair> <displayed-value>None</displayed-value> <stored-value>None</stored-value> </pair> <pair> <displayed-value>6 months</displayed-value> <stored-value>6 months</stored-value> </pair> <pair> <displayed-value>1 year</displayed-value> <stored-value>1 year</stored-value> </pair> <pair> <displayed-value>18 months</displayed-value> <stored-value>18 months</stored-value> </pair> <pair> <displayed-value>2 years</displayed-value> <stored-value>2 years</stored-value>
  • SUNScholar/Embargo Systems/1.8.2 91 </pair> </value-pairs> <value-pairs value-pairs-name="absolute_valueUnit" dc-term="type"> <pair> <displayed-value>Percentage</displayed-value> <stored-value>Percentage</stored-value> </pair> </value-pairs> They match the terms in #embargo.terms.days = None:0, 6 months:180, 1 year:365, 18 months:545, 2 years:730 in the DSpace config file. Retroactive embargo setting We manually input the embargo lift and settings metadata per item. Then we manually remove the item read permissions. Daily cron job Click on the heading above. This will check for the lifting of embargoes daily. References • https://wiki.duraspace.org/display/DSDOC18/Embargo Back to Embargo Systems
  • 92 Customisation SUNScholar/Customisation Back to After Installation Tasks Introduction Now that you have a working repository, you will probably want to make it your own using a proper change management system. Below are links to help pages with detailed information on how to customise your repository to fit the purpose for which it was created. For more information consult the official DSpace documentation [1] and subscribe to the DSpace help mailing lists (see bottom of page below) so that you can ask the experts for help. Please note: If the customisation is to be preserved on the repository system for the long term, then adequate resources must be provided to ensure continuity of the customisation during system upgrades. Depending on the amount of customisation, this could turn out to be VERY EXPENSIVE for the institution on a yearly basis, if upgrades are done on a yearly basis. Therefore, the rule of thumb, for resource scarce institutions that do not have the system capacity, is to keep customisation to the ABSOLUTE MINIMUM. Advanced Customisation (Modules Overlay Method) Please read about advanced customisation before starting any customisation work, as it is the basis for most of the customisation tasks. The idea is to put all your customised code into the /home/dspace/source/dspace/modules folder by copying the source code from the /home/dspace/source folder and applying your modifications. This allows you to keep the source code intact and keep your modifications in one separate place. Using this method also helps greatly during upgrades. • https://wiki.duraspace.org/display/DSDOC4x/Advanced+Customisation • https://wiki.duraspace.org/display/DSDOC3x/Advanced+Customisation • https://wiki.duraspace.org/display/DSDOC18/Advanced+Customisation
  • SUNScholar/Customisation 93 Content Management Manager Repository 1.1. Language 2.2. Theme 3.3. Email Templates 4.4. Licences 5.5. Handle Server 6.6. Open Search 7.7. RSS Feeds 8.8. Web Analytics Interoperability 1.1. Allow Remote Deposits 2.2. Allow Remote Harvesting 3.3. Harvest Remote Collections Communities/Collections 1.1. Community Management 2.2. Item and Collection Permissions 3. Indexes AND Discovery Items 1. SOLR Statistics OR but not BOTH Elastic Statistics 2.2. Checksums 3.3. Digital Object Identifier's Librarians Users 1.1. Researcher Identification 2.2. Researcher Authorisation Items 1.1. Submission System 2.2. Authority Control 3.3. Controlled Vocabulary 4.4. Export and Import 5.5. Metadata 6.6. Moving 7.7. Mapping 8.8. Curation 9.9. Versioning 10.10. Embargo 11.11. Request a Copy
  • SUNScholar/Customisation 94 Developers 1.1. Application Programming Interface (API) 2. Developer Code Contribution Guidelines [2] 3. Developer Tools and Guidelines [3] 4. Developing with Git [4] 5. Release Procedure [5] Mailing Lists International DSpace Support Before posting a request, please see: https://wiki.duraspace.org/display/DSPACE/Mailing+List+Etiquette first. • DSpace General [7] • DSpace Technical [8] • DSpace Change Log [9] African Repository Support • http://lists.lib.sun.ac.za/mailman/listinfo/irtalk • http://lists.lib.sun.ac.za/mailman/listinfo/duraspace Further References • https://wiki.duraspace.org/display/DSDOC4x/DSpace+Item+State+Definitions References [1] https://wiki.duraspace.org/display/DSDOC/All+Documentation [2] https://wiki.duraspace.org/display/DSPACE/Code+Contribution+Guidelines [3] https://wiki.duraspace.org/display/DSPACE/Developer+Guidelines+and+Tools [4] https://wiki.duraspace.org/display/DSPACE/Development+with+Git [5] https://wiki.duraspace.org/display/DSPACE/Release+Procedure
  • SUNScholar/Theme 95 SUNScholar/Theme Back to Customisation History 1.1. In the beginning there was only the JSP interface. 2.2. Then the XML interface was introduced. 3.3. Mirage is a new XMLUI theme, added in DSpace 1.7 by @mire. The code was mainly developed by Art Lowel. 4.4. Then the Bootstrap theme for the JSPUI was introduced. 5.5. Then the Mobile theme for the XMLUI was introduced. We use the XMLUI because it allows much greater control over the theme, more so than the JSPUI. With the XMLUI it is possible to theme communities and collections individually. Design Considerations • In the absence of an official University website style guideline we decided to try to match the theme of the library website [1] . •• The focus of the theme was to ensure that the website was pleasant to the eye to view and that it had a somber research tone. •• We avoided too many pictures and animations as these take time to load on slow connections and they use up the scarce internet data allocation of users. • We applied the colors used on the other University websites as a color palette. •• We kept our banner logo as simple possible to clearly convey who is providing the repository service and what the repository does. •• We also tried to theme the website so that the eye is drawn quickly and easily to the elements that matter, which are the items in collections. •• To ensure that our help guides (that use screenshots extensively) are reliable we removed any duplicate elements on the website, such as two places to login or to search. •• We do not post current news etc and leave that to our blog. •• We also do not post detailed help guides, but rather built a wiki help guide. See: http://scholar.sun.ac.za References [1] http://library.sun.ac.za
  • SUNScholar/JSPUI Theme 96 SUNScholar/JSPUI Theme Back to Theme GitHub • https://github.com/DSpace/DSpace/tree/master/dspace-jspui/src/main/webapp/static/css/bootstrap • https://github.com/DSpace/DSpace/tree/master/dspace-jspui/src/main/webapp/layout • https://github.com/DSpace/DSpace/tree/master/dspace-jspui/src/main/webapp/components Help • http://www.slideshare.net/DuraSpace/2514-dspace-user-interface-innovation-presentation-slides Links • https://wiki.duraspace.org/display/DSDOC4x/JSPUI+Configuration+and+Customization • https://wiki.duraspace.org/display/DSDOC4x/Configuration+ Reference#ConfigurationReference-JSPWebInterface(JSPUI)Settings • https://wiki.duraspace.org/display/DSDOC3x/JSPUI+Configuration+and+Customization • https://wiki.duraspace.org/display/DSDOC3x/Configuration#Configuration-JSPWebInterface(JSPUI)Settings • https://wiki.duraspace.org/display/DSDOC18/JSPUI+Configuration+and+Customization • https://wiki.duraspace.org/display/DSDOC18/Configuration#Configuration-JSPWebInterface(JSPUI)Settings • https://wiki.duraspace.org/display/DSDOC17/JSPUI+Configuration+and+Customization • https://wiki.duraspace.org/display/DSDOC17/Configuration#Configuration-JSPWebInterface(JSPUI)Settings SUNScholar/Language Back to Customisation Site settings Open the the dspace.cfg file and configure the locale as follows; nano /home/dspace/source/dspace/config/dspace.cfg Look for the following and configure accordingly. default.locale webui.supported.locales •• Remember, check to see if an appropriate language file exists in one the following folders if using the XMLUI; /home/dspace/source/dspace-xmlui/src/main/webapp/i18n/ /home/dspace/source/dspace/modules/xmlui/src/main/webapp/i18n/ Customisation for the XMLUI Theme See: http://wiki.lib.sun.ac.za/index.php/SUNScholar/XMLUI_Theme/Language References • https://wiki.duraspace.org/display/DSDOC4x/Localization+L10n • https://wiki.duraspace.org/display/DSDOC3x/Application+Layer#ApplicationLayer-internationalization
  • SUNScholar/Language 97 • https://wiki.duraspace.org/display/DSDOC3x/XMLUI+Configuration+and+ Customization#XMLUIConfigurationandCustomization-MultilingualSupport • https://wiki.duraspace.org/display/DSDOC18/XMLUI+Configuration+and+ Customization#XMLUIConfigurationandCustomization-MultilingualSupport • http://cocoon.apache.org/2.1/userdocs/i18nTransformer.html • https://wiki.duraspace.org/pages/viewpage.action?pageId=19006024 • https://wiki.duraspace.org/display/DSPACE/i18n+Improvements+Proposal • https://github.com/DSpace/DSpace/blob/master/dspace-api/src/main/java/org/dspace/core/I18nUtil.java • https://github.com/DSpace/DSpace/blob/master/dspace-xmlui/src/main/webapp/i18n/messages.xml SUNScholar/Web Analytics Back to Customisation Essential Reading (Only available online) •• 2014 - STOA - MEASURING RESEARCH ARTICLE PERFORMANCE •• 2014 - LSE MEYERS - REWARD MECHANISMS FOR PUBLIC SCHOLARSHIP •• 2014 - OPENUCT - RESEARCHER ONLINE VISIBILITY •• 2013 - BBL - RESEARCHER PROFILE METRICS Repository Website Metrics The SUNScholar repository was born in 2009! The following was tweeted on 2013/10/25.
  • SUNScholar/Licences 98 SUNScholar/Licences Back to Customisation Default submission licence • http://wiki.lib.sun.ac.za/index.php/SUNScholar/Copyright Creative Commons • https://wiki.duraspace.org/display/DSDOC4x/Configuration+ Reference#ConfigurationReference-ConfiguringCreativeCommonsLicense • https://wiki.duraspace.org/display/DSDOC3x/ Configuration#Configuration-ConfiguringCreativeCommonsLicense • https://wiki.duraspace.org/display/DSDOC18/ Configuration#Configuration-ConfiguringCreativeCommonsLicense Creative Commons Discussion • http://poeticeconomics.blogspot.ca/2012/10/critique-of-cc-by-series.html SUNScholar/Browse Indexes Back to Customisation Requirements Before attempting setup please make sure the following are correct: 1.1. Tomcat is listening on TCP port 80. 2.2. The SOLR webapp is correctly published. SOLR Help General • https://wiki.duraspace.org/display/DSPACE/Solr • http://lucene.apache.org/solr • http://wiki.apache.org/solr DSpace settings • https://github.com/DSpace/DSpace/blob/master/dspace-api/src/main/java/org/dspace/core/Constants. java#L20 • https://wiki.duraspace.org/display/DSDOC4x/DSpace+ Statistics#DSpaceStatistics-CustomReporting-QueryingSOLRDirectly • https://wiki.duraspace.org/display/DSDOC3x/DSpace+ Statistics#DSpaceStatistics-CustomReporting-QueryingSOLRDirectly
  • SUNScholar/Browse Indexes 99 Tips • http://kim-shepherd.blogspot.com/2010/11/discovering-discovery-dspace-solr-tips.html • http://www.scottphillips.com/2011/10/merging-two-dspace-solr-based-data-sets-together Check SOLR webapp operation If you have problems with the SOLR webapp, then complete the following to check its operation. Install the "lynx" application. sudo apt-get install lynx Then type the following in the console: lynx http://localhost/solr OR lynx http://localhost:8080/solr You should get the following: If not debug the solr webapp until you can. Remember to restart the Tomcat server for each change you make to a webapp configuration.
  • SUNScholar/Email Templates 100 SUNScholar/Email Templates Back to Customisation The templates used for email messages can be found in the following folder: /home/dspace/source/dspace/config/emails Modify the templates to suit your purpose and rebuild DSpace. References • https://wiki.duraspace.org/display/DSDOC4x/Configuration+ Reference#ConfigurationReference-SubscriptionEmails • https://wiki.duraspace.org/display/DSDOC4x/Configuration+ Reference#ConfigurationReference-WordingofE-mailMessages SUNScholar/Item and Collection Permissions Back to Customisation Introduction Since version 1.7.2 , DSpace has very fine-gained control for permissions on communities, collections and items. One can control access to whole communities or collections or one can control access to an individual bitstream only. The level of access you grant is up to you as the administrator. The control of permissions is called policy management in DSpace terminology. Using the XMLUI interface, policies are managed by clicking on "Click here to add a new policy" when logged in as an Administrator and have selected to edit a community, collection or item. See screenshot below. Default config ##### Authorization system configuration - Delegate ADMIN ##### # COMMUNITY ADMIN configuration # subcommunities and collections #core.authorization.community-admin.create-subelement = true #core.authorization.community-admin.delete-subelement = true
  • SUNScholar/Item and Collection Permissions 101 # his community #core.authorization.community-admin.policies = true #core.authorization.community-admin.admin-group = true # collections in his community #core.authorization.community-admin.collection.policies = true #core.authorization.community-admin.collection.template-item = true #core.authorization.community-admin.collection.submitters = true #core.authorization.community-admin.collection.workflows = true #core.authorization.community-admin.collection.admin-group = true # item owned by collections in his community #core.authorization.community-admin.item.delete = true #core.authorization.community-admin.item.withdraw = true #core.authorization.community-admin.item.reinstatiate = true #core.authorization.community-admin.item.policies = true # also bundle... #core.authorization.community-admin.item.create-bitstream = true #core.authorization.community-admin.item.delete-bitstream = true #core.authorization.community-admin.item-admin.cc-license = true # COLLECTION ADMIN #core.authorization.collection-admin.policies = true #core.authorization.collection-admin.template-item = true #core.authorization.collection-admin.submitters = true #core.authorization.collection-admin.workflows = true #core.authorization.collection-admin.admin-group = true # item owned by his collection #core.authorization.collection-admin.item.delete = true #core.authorization.collection-admin.item.withdraw = true #core.authorization.collection-admin.item.reinstatiate = true #core.authorization.collection-admin.item.policies = true # also bundle... #core.authorization.collection-admin.item.create-bitstream = true #core.authorization.collection-admin.item.delete-bitstream = true #core.authorization.collection-admin.item-admin.cc-license = true # ITEM ADMIN #core.authorization.item-admin.policies = true # also bundle... #core.authorization.item-admin.create-bitstream = true #core.authorization.item-admin.delete-bitstream = true #core.authorization.item-admin.cc-license = true References • https://wiki.duraspace.org/display/DSDOC4x/Functional+Overview#FunctionalOverview-Authorization • https://wiki.duraspace.org/display/DSDOC4x/Configuration+ Reference#ConfigurationReference-DelegationAdministration:AuthorizationSystemConfiguration
  • SUNScholar/Item and Collection Permissions 102 • https://wiki.duraspace.org/display/DSDOC3x/ Configuration#Configuration-DelegationAdministration:AuthorizationSystemConfiguration • https://wiki.duraspace.org/display/DSDOC18/ Configuration#Configuration-DelegationAdministration:AuthorizationSystemConfiguration • https://wiki.duraspace.org/display/DSDOC17/ Configuration#Configuration-DelegationAdministration:AuthorizationSystemConfiguration • http://dspace.org/sites/dspace.org/files/archive/1_6_2Documentation/ch02.html#N102CE • http://dspace.org/sites/dspace.org/files/archive/1_5_2Documentation/ch02.html#N10291 SUNScholar/Community Management Back to Customisation References • https://wiki.duraspace.org/display/DSDOC3x/Managing+Community+Hierarchy • https://wiki.duraspace.org/display/DSDOC18/Managing+Community+Hierarchy • http://www.dspace.org/1_6_0Documentation/ch08.html#N15F54 • http://www.dspace.org/1_5_2Documentation/ch09.html#N13B4A SUNScholar/Harvesting Back to Customisation Introduction Harvesting with DSpace is performed using the OAI-PMH standard. The OAI-PMH allows DSpace to collect metadata from other compliant repositories and provides metadata for other repositories to collect. This enables the contents of the repository to be mirrored to other compliant systems very easily. This metadata interoperability greatly enhances the visibility of the repository contents on the interent.
  • SUNScholar/Harvesting 103 SOLR Help General • https://wiki.duraspace.org/display/DSPACE/Solr • http://lucene.apache.org/solr • http://wiki.apache.org/solr DSpace settings • https://github.com/DSpace/DSpace/blob/master/dspace-api/src/main/java/org/dspace/core/Constants. java#L20 • https://wiki.duraspace.org/display/DSDOC4x/DSpace+ Statistics#DSpaceStatistics-CustomReporting-QueryingSOLRDirectly • https://wiki.duraspace.org/display/DSDOC3x/DSpace+ Statistics#DSpaceStatistics-CustomReporting-QueryingSOLRDirectly Tips • http://kim-shepherd.blogspot.com/2010/11/discovering-discovery-dspace-solr-tips.html • http://www.scottphillips.com/2011/10/merging-two-dspace-solr-based-data-sets-together Check SOLR webapp operation If you have problems with the SOLR webapp, then complete the following to check its operation. Install the "lynx" application. sudo apt-get install lynx Then type the following in the console: lynx http://localhost/solr OR lynx http://localhost:8080/solr You should get the following:
  • SUNScholar/Harvesting 104 If not debug the solr webapp until you can. Remember to restart the Tomcat server for each change you make to a webapp configuration. SUNScholar/SOLR Statistics Back to Customisation Requirements Before attempting setup please make sure the following are correct: 1.1. Tomcat is listening on TCP port 80. 2.2. The SOLR webapp is correctly published. Standards • http://www.projectcounter.org
  • SUNScholar/SOLR Statistics 105 SOLR Help General • https://wiki.duraspace.org/display/DSPACE/Solr • http://lucene.apache.org/solr • http://wiki.apache.org/solr DSpace settings • https://github.com/DSpace/DSpace/blob/master/dspace-api/src/main/java/org/dspace/core/Constants. java#L20 • https://wiki.duraspace.org/display/DSDOC4x/DSpace+ Statistics#DSpaceStatistics-CustomReporting-QueryingSOLRDirectly • https://wiki.duraspace.org/display/DSDOC3x/DSpace+ Statistics#DSpaceStatistics-CustomReporting-QueryingSOLRDirectly Tips • http://kim-shepherd.blogspot.com/2010/11/discovering-discovery-dspace-solr-tips.html • http://www.scottphillips.com/2011/10/merging-two-dspace-solr-based-data-sets-together Check SOLR webapp operation If you have problems with the SOLR webapp, then complete the following to check its operation. Install the "lynx" application. sudo apt-get install lynx Then type the following in the console: lynx http://localhost/solr OR lynx http://localhost:8080/solr You should get the following:
  • SUNScholar/SOLR Statistics 106 If not debug the solr webapp until you can. Remember to restart the Tomcat server for each change you make to a webapp configuration. SUNScholar/Export and Import Artifacts Back to Customisation Introduction The functionality to export and import communities, whole collections and items using the XMLUI, only became available with DSpace versions => 1.7.0.
  • SUNScholar/Submission System 107 SUNScholar/Submission System Back to Customisation Introduction Items are submitted to collections using forms. Each collection can have its own customised submission forms and these forms can also have customised pages. Below is information about form pages and collection submissions. Activation of modified workflows Rebuild the DSpace webapps using the custom rebuild script. References • http://www.slideshare.net/bramluyten/secrets-of-the-dspace-submission-form • https://wiki.duraspace.org/display/DSPACE/Alter+submission+input+forms • https://wiki.duraspace.org/display/DSPACE/Change+a+form+value • https://wiki.duraspace.org/display/DSDOC3x/Submission+User+Interface • https://wiki.duraspace.org/display/DSDOC18/Submission+User+Interface • http://web.lib.sun.ac.za/dspace/docs/1.7.2/Submission%20User%20Interface.html • http://www.dspace.org/1_6_2Documentation/ch14.html • http://wiki.dspace.org/index.php/Alter_submission_input_forms
  • 108 System Admin SUNScholar/Upgrading Back to System Admin WE CANNOT ACCEPT RESPONSIBILITY FOR ANY DATA LOSS. DO EXTENSIVE TESTING ON SPARE INFRASTRUCTURE BEFORE PROCEEDING. YOU PROCEED AT YOUR OWN RISK. These guidelines are very brief and require someone with Linux experience to execute correctly. Change Management Upgrading involves three systems. 1.1. The repository software each year. 2.2. The server software every 3 years. 3.3. The hardware every 4 years, if not virtualised or in the cloud. Below are instructions for each system. SUNScholar/Change Management Back to Upgrading WE CANNOT ACCEPT RESPONSIBILITY FOR ANY DATA LOSS. DO EXTENSIVE TESTING ON SPARE INFRASTRUCTURE BEFORE PROCEEDING. YOU PROCEED AT YOUR OWN RISK. These guidelines are very brief and require someone with Linux experience to execute correctly. Introduction Soon after installing DSpace you want to change things. How do you manage the changes so that they do not affect the uptimes of the production system too much and are controlled by all interested parties. The following are recommended procedures to follow. Recommendations 1. Build a test/development system on another server. At Stellenbosch University library we built: http:// repository.sun.ac.za (Only available on-campus). This is the machine which you use to test changes and upgrades of software before you implement it on the production server. 2. Try not to make major changes to the system during peak usage times of the year. Pick a time when there are very few users on the system.
  • SUNScholar/Change Management 109 3. When you want to implement a change or upgrade you will need to inform submitters, reviewers and metadata editors. For this, setup a mailing list and ensure all submitters, reviewers and metadata editors join the list. For normal users, send a notification to the campus communications manager and then when the time arrives for the change, put the system into maintenance mode. 4. Before changing anything on the production server ensure your backups are working. It is a good idea to keep incremental backups for a period of seven days. 5. If you have service level agreements with the IT department, then inform them of changes that affect them at least two weeks ahead of the time. References 1. http://admin.sun.ac.za/cm/ 2. http://en.wikipedia.org/wiki/ITSM 3. http://en.wikipedia.org/wiki/ITIL 4. http://en.wikipedia.org/wiki/Change_Management_(ITSM) 5. http://en.wikipedia.org/wiki/Release_management 6. http://en.wikipedia.org/wiki/Configuration_management SUNScholar/Upgrading/DSpace/Release Notes/3.2 Back to Release Notes WE CANNOT ACCEPT RESPONSIBILITY FOR ANY DATA LOSS. DO EXTENSIVE TESTING ON SPARE INFRASTRUCTURE BEFORE PROCEEDING. YOU PROCEED AT YOUR OWN RISK. These guidelines are very brief and require someone with Linux experience to execute correctly. Official DSpace Notes https://wiki.duraspace.org/display/DSDOC3x/Upgrading+From+1.8.x+to+3.x https://wiki.duraspace.org/display/DSPACE/DSpace+Release+3.2+Notes During our upgrade from 1.8.2 to 3.2, the following errors were discovered after applying the upgrade to our production server Major 1. Fixed - https://jira.duraspace.org/browse/DS-1903, Refer to: Indexes - Manual fix applied, patch pending. 2. Fixed - https://jira.duraspace.org/browse/DS-1536.Refer to: Handle Suffix - Patch applied. 3. Fixed - https://jira.duraspace.org/browse/DS-1904.Refer to: Http Headers - Manual fix applied. 4. Fixed - https://jira.duraspace.org/browse/DS-1902.Refer to: OAI-PMH Provider - Manual fix applied. 5. Fixed - https://jira.duraspace.org/browse/DS-1781.Refer to: "eperson" null email suffix. - Patch applied and manual config hack applied. 6. Untested - https://jira.duraspace.org/browse/DS-1764.Refer to: New embargo system form
  • SUNScholar/Upgrading/DSpace/Release Notes/3.2 110 Minor 1. No fix yet - https://jira.duraspace.org/browse/DS-1619 and https://jira.duraspace.org/browse/DS-1920 - Unable to permanently delete items. 2. Fixed - https://jira.duraspace.org/browse/DS-1445.Refer to: OAI-PMH Provider 3. Untested - https://jira.duraspace.org/browse/DS-1531.Refer to: Old stats log importer Build Issues Please see screenshot of email posted on the dspace-tech mailing list 2014/04/04 regarding the maven build of DSpace. SUNScholar/Upgrading/Server Software Back to Upgrading WE CANNOT ACCEPT RESPONSIBILITY FOR ANY DATA LOSS. DO EXTENSIVE TESTING ON SPARE INFRASTRUCTURE BEFORE PROCEEDING. YOU PROCEED AT YOUR OWN RISK. These guidelines are very brief and require someone with Linux experience to execute correctly. Introduction Since we choose to use the Ubuntu server as our server operating system, we follow the LTS release [1] upgrade path. The major server software that is upgraded is as follows: •• Tomcat Java webapp server •• Java runtime software •• PostgreSQL Database
  • SUNScholar/Upgrading/Server Software 111 Procedure A test system is built using the same software versions as the present production system. Then on the test system a server operating system upgrade is done. A check is done to see what changed and what needs special upgrade attention. When everything is working well on the test system then the upgrade is done on the production system with the changes that the test system identified. Requirements The postfix email server must be installed and setup, see: http://wiki.lib.sun.ac.za/index.php/SUNScholar/ Prepare_Ubuntu/S07 STEP 1 - Ubuntu server software upgrade ** This only works if you have an open connection to the internet for the server *** Login using SSH to the server. Then run: sudo apt-get install update-manager-core Edit the file /etc/update-manager/release-upgrades and add set: Prompt=lts Start the upgrade process: sudo do-release-upgrade -m server Go find a coffee… STEP 2 - PostgreSQL upgrade The official Ubuntu/Debian upgrade methods listed below are risky and not well tested. It is better to backup the DB before the upgrade and restore the DB after the upgrade. A good utility for this is "pgadmin", see link below. http://www.pgadmin.org Or alternatively, read the following link: http://www.thegeekstuff.com/2009/01/how-to-backup-and-restore-postgres-database-using-pg_dump-and-psql And finally, try the following: http://www.pgbarman.org
  • SUNScholar/Upgrading/Server Software 112 Check list • https://help.ubuntu.com/community/PostgreSQL • From the folder /usr/share/doc/postgresql-common, the "README.Debian.gz" file and slightly modified. •• Also check for PostgreSQL credentials file. 8.04 LTS to 10.04 LTS When installing a postgresql-X.Y package from scratch, a default cluster 'main' will automatically be created. This operation is equivalent to doing 'pg_createcluster X.Y main --start'. Due to this default cluster, an immediate attempt to upgrade an earlier 'main' cluster to a new version will fail and you need to remove the newer default cluster first. E. g., if you have postgresql-8.3 installed and want to upgrade to 8.4, you first install postgresql-8.4: apt-get install postgresql-8.4 (This will be done automatically with a system upgrade) Then drop the default 8.4 cluster: pg_dropcluster 8.4 main --stop And then upgrade the 8.3 cluster to 8.4: pg_upgradecluster 8.3 main 10.04 LTS to 12.04 LTS When installing a postgresql-X.Y package from scratch, a default cluster 'main' will automatically be created. This operation is equivalent to doing 'pg_createcluster X.Y main --start'. Due to this default cluster, an immediate attempt to upgrade an earlier 'main' cluster to a new version will fail and you need to remove the newer default cluster first. E. g., if you have postgresql-8.4 installed and want to upgrade to 9.1, you first install postgresql-9.1: apt-get install postgresql-9.1 (This will be done automatically with a system upgrade) Then drop the default 9.1 cluster: pg_dropcluster 9.1 main --stop And then upgrade the 8.4 cluster to 9.1: pg_upgradecluster 8.4 main STEP 3 - Check automation "apticron" setup To setup emails alerts for required software security upgrades, type the following in a terminal after logging into the server: sudo -i apt-get install apticron Edit the apticron config to specify the alert recipient: nano /etc/apticron/apticron.conf
  • SUNScholar/Upgrading/Server Software 113 Modify the file to send email to the "root" account. See example below. # apticron.conf # # set EMAIL to a space separated list of addresses which will be notified of # impending updates # EMAIL="root" NANO Editor Help CTL+O = Save the file and then press Enter CTL+X = Exit "nano" CTL+K = Delete line CTL+U = Undelete line CTL+W = Search for $string$ CTL+ = Search for and replace $string$ ALT+C = Show line numbers More info = http://en.wikipedia.org/wiki/Nano_(text_editor) Email setup Ensure that there is a "root" email alias in the "/etc/aliases" file. nano /etc/aliases See example below. # See man 5 aliases for format postmaster: root root: hgibson@sun.ac.za clamav: root dspace: hgibson@sun.ac.za NANO Editor Help CTL+O = Save the file and then press Enter CTL+X = Exit "nano" CTL+K = Delete line CTL+U = Undelete line CTL+W = Search for $string$ CTL+ = Search for and replace $string$ ALT+C = Show line numbers More info = http://en.wikipedia.org/wiki/Nano_(text_editor)
  • SUNScholar/Upgrading/Server Software 114 To activate the new alias, type the following: newaliases Automatic software updates You can setup automatic updates, however you do this at your own risk. • https://help.ubuntu.com/10.04/serverguide/automatic-updates.html • https://help.ubuntu.com/12.04/serverguide/automatic-updates.html References [1] https://wiki.ubuntu.com/LTS SUNScholar/Upgrading/Hardware/New Server Back to Upgrading Hardware WE CANNOT ACCEPT RESPONSIBILITY FOR ANY DATA LOSS. DO EXTENSIVE TESTING ON SPARE INFRASTRUCTURE BEFORE PROCEEDING. YOU PROCEED AT YOUR OWN RISK. These guidelines are very brief and require someone with Linux experience to execute correctly. Introduction This is the very tricky one, if you are running your server on a bare metal machine. If your server is virtualised then this procedure is not needed. To avoid bare metal upgrades in the future, it is highly advised that you virtualise your server. Ask central campus IT to help you with this. If you are presently running bare metal and are going to upgrade to another bare metal server, then read the guidelines below. Bare metal to bare metal Prep new machine 1.1. Install Ubuntu 2.2. Prepare Ubuntu 3. The new machine hostname should be temporary. For example: http://irx.sun.ac.za Export and import contents 1. Put the old machine into maintenance mode. 2. Export the PostrgeSQL DB from the old machine and import it to the new machine using "pgAdmin". See: http:/ /www.pgadmin.org 3. Copy the entire /home/dspace folder from the old machine to the new machines /home/dspace folder using "rsync". See: http://en.wikipedia.org/wiki/Rsync
  • SUNScholar/Upgrading/Hardware/New Server 115 Enable Tomcat webapps on new machine 1. Follow this procedure to enable the java webapps on the new machine: http://wiki.lib.sun.ac.za/index.php/ SUNScholar/Install_DSpace/S08 2.2. Check for correct operation of DSpace on the new machine. Enable "handle server" on new machine 1. Follow this step to enable the handle server: http://wiki.lib.sun.ac.za/index.php/SUNScholar/ Handle_Server#Step_9_-_Start_handle_server Swap hostnames 1. Rename the old machine. For example: http://irz.sun.ac.za.Then reboot. 2.2. Rename the new machine so that it has the same hostname as the old machine. Then reboot. 3.3. Check for correct operation of DSpace and handle server on the new machine. Precautionary Principle Keep the old machine running for a while until the new machine is stabilised. This way you have a live backup in case of big problems. Considerations There is always a performance price when you virtualise. In addition, since DSpace is a java webapp, you should realise, java is itself a virtual machine (JVM [1] ), so if you virtualise the hardware, then you are virtualising, an already, virtual machine! For this reason, bare metal machines always have the best performance for java webapps. However, performance is not an issue if you have a small repository and very few people connected at one time as collection submitters/managers. If you anticipate having a big repository then you should consider going bare metal. What is big and small? If your repository is very slow to work on, when connected and logged in as a collection manager, then you are moving to the big side, and you should look at optimising, or if you are using a virtual server, converting to bare metal. See: http://en.wikipedia.org/wiki/Java_performance References [1] http://en.wikipedia.org/wiki/Java_virtual_machine
  • SUNScholar/Upgrading/Hardware/Add a New Disk 116 SUNScholar/Upgrading/Hardware/Add a New Disk Back to Upgrading Hardware WE CANNOT ACCEPT RESPONSIBILITY FOR ANY DATA LOSS. DO EXTENSIVE TESTING ON SPARE INFRASTRUCTURE BEFORE PROCEEDING. YOU PROCEED AT YOUR OWN RISK. These guidelines are very brief and require someone with Linux experience to execute correctly. Introduction After installing and running DSpace for some time you realise your disk is getting full, so you arrange to buy a new bigger disk. But how do you use it in Dspace as a new asseststore. Read below for brief how-to. Manual Terminal Method Step 1 Determine the kernel hardware label for the new disk. After connecting the new disk to the server and rebooting, login to the server using a console and type; sudo fdisk -l This command will list all the disks attached and the kernel label used. Step 2 Create a linux partition on the new disk. Assuming that you identified the new disk as /dev/sdb, from step 1 above, then type the following to create a single linux ext4 partition on the new disk; sudo -i parted /dev/sdb mklabel gpt parted /dev/sdb mkpart primary ext4 parted /dev/sdb print exit
  • SUNScholar/Upgrading/Hardware/Add a New Disk 117 Step 3 Make a linux filesystem on the new disk. Step 2 above should have created a single primary linux partition on the disk. Type the following to create an ext4 file system on the disk; sudo mkfs.ext4 /dev/sdb1 Step 4 Make a mount point on the linux file system for the new disk. Since the new disk will be used for an added asset store, we create the mount folder where DSpace was installed. sudo mkdir /home/dspace/assetstore/two Step 5 Mount the new disk to the mount point on the linux file system. The quick way is to type the following; sudo mount /dev/sdb1 /home/dspace/assetstore/two A better way is to add the disk to the file /etc/fstab. This way the disk will be mounted as a permanent part of the file system, even during server reboots. •• First we determine the UUID of the new disk. sudo blkid /dev/sdb1 •• The result may be something like; /dev/sdb1: UUID="8b6ec31c-1f41-49f3-82da-d2ab0f0fa312" TYPE="ext4" • We open the /etc/fstab file for editing; sudo nano /etc/fstab • Add the following to the bottom of the file, using the disk UUID identified above; (You can use copy-and-paste as usual for quick editing) UUID="8b6ec31c-1f41-49f3-82da-d2ab0f0fa312 /home/dspace/assetstore/two ext4 defaults,user 0 2 NANO Editor Help CTL+O = Save the file and then press Enter CTL+X = Exit "nano" CTL+K = Delete line CTL+U = Undelete line CTL+W = Search for $string$ CTL+ = Search for and replace $string$ ALT+C = Show line numbers More info = http://en.wikipedia.org/wiki/Nano_(text_editor)
  • SUNScholar/Upgrading/Hardware/Add a New Disk 118 •• Now to mount it type; sudo mount -a Step 6 Now add assetstore/two to your DSpace config file and restart Tomcat. Definitions • http://en.wikipedia.org/wiki/Disk_partitioning • http://en.wikipedia.org/wiki/List_of_disk_partitioning_software • http://en.wikipedia.org/wiki/Fdisk • http://en.wikipedia.org/wiki/Parted • http://en.wikipedia.org/wiki/Mkfs • http://en.wikipedia.org/wiki/Fstab • https://wiki.archlinux.org/index.php/ext4 • https://ext4.wiki.kernel.org/index.php/Ext4_Howto Alternative Web Based Methods Webmin • http://www.webmin.com/deb.html Please note: The root login credentials can be replaced by any authorised sudo admin user on your Ubuntu server. Help 1. Adding partitions to a disk [1] 2. Formatting partitions on a disk [2] 3. Mounting disk partitions to a file system [3] Zentyal • http://en.wikipedia.org/wiki/Zentyal References • https://help.ubuntu.com/community/InstallingANewHardDrive • http://www.ghacks.net/2009/09/10/add-a-second-drive-to-your-ubuntu-server • http://www.howtogeek.com/106873/how-to-use-fdisk-to-manage-partitions-on-linux References [1] http://doxfer.webmin.com/Webmin/PartitionsOnLocalDisks?sortcol=table;up=#Adding_and_formatting_a_new_part [2] http://doxfer.webmin.com/Webmin/PartitionsOnLocalDisks?sortcol=table;up=#Creating_a_new_filesystem [3] http://doxfer.webmin.com/Webmin/DiskAndNetworkFilesystems?sortcol=table;up=#Mounting_a_local_ext2_or_ext3_ha
  • SUNScholar/User Management 119 SUNScholar/User Management Back to Customisation Urgent Notice During the upgrade from DSpace 1.8.2 to 3.2, the ldap config changed and it seems a bug was introduced: https:// jira.duraspace.org/browse/DS-1781. Take special note of the "netid_email_domain = @example.com" parameter at the bottom of the file. If you do not specify an @example.com email suffix, then you will get null suffix errors for eperson email addreses. Introduction Digital assets must only be managed by users authorised to do so. DSpace can authenticate using ePerson accounts or using LDAP server accounts. This wiki page describes the method of setting up DSpace to use an institutional LDAP server for user provisioning. After that is done, it is then up to the repository manager to define privileges for individuals on the repository. See: http://en.wikipedia.org/wiki/Ldap for more info. Requirements Secure network connections Setup secure internet/network connections before doing LDAP connections. •• Step 1. Server Firewall •• Step 2. Secure Connections Campus LDAP server Please note: For LDAP to work correctly then ALL the user credentials MUST be in ONE LDAP server or replicated using ONE directory tree structure. If for example, you have seperate servers for staff and students, then LDAP authentication setup is extremely difficult and very risky to maintain in the long term. Ask the campus IT LDAP system administrators to give you the following details of the campus LDAP servers. •• hostnames •• canonical context •• object context •• search context List of open source LDAP server products. If you do not have an LDAP server on campus, then check the links below and consider starting one. • http://www.openldap.org • https://help.ubuntu.com/10.04/serverguide/openldap-server.html • https://help.ubuntu.com/12.04/serverguide/openldap-server.html • http://www.turnkeylinux.org/openldap • http://freeipa.org/page/Main_Page • http://directory.fedoraproject.org/wiki/Main_Page • https://fedorahosted.org/sssd/
  • SUNScholar/User Management 120 How to sync with a Microsoft Active Directory If you want to sync with an existing Microsoft AD server, then check the links below. • http://en.wikipedia.org/wiki/Active_Directory • http://technet.microsoft.com/en-us/library/cc772726(v=ws.10).aspx • http://www.windowsitpro.com/article/ldap/integrate-active-directory-and-openldap • http://lsc-project.org/wiki • https://access.redhat.com/knowledge/docs/en-US/Red_Hat_Directory_Server/8.2/html/ Administration_Guide/Windows_Sync.html • http://directory.fedoraproject.org/wiki/Howto:WindowsSync • http://www.papercut.com/products/ng/manual/ch-sys-mgmt-user-group-sync.html Step 1. Check local LDAP on local server Login to the server: http://wiki.lib.sun.ac.za/index.php/SUNScholar/Prepare_Ubuntu/S01 To check LDAP works, first install the following: sudo apt-get install ldap-utils ldap-auth-config Fill in all the details requested during installation Go to the following folder: sudo cd /etc/ldap Copy the original ldap.conf: sudo cp ldap.conf ldap.conf-orig Delete the original: sudo rm ldap.conf Create a link to the master ldap.conf sudo ln -s ../ldap.conf Examples Example listing of ldap files. root@ir1:/etc/ldap# ls -l total 8 lrwxrwxrwx 1 root root 12 2010-09-17 20:13 ldap.conf -> ../ldap.conf -rw-r--r-- 1 root root 245 2011-12-19 18:19 ldap.conf.dpkg-new -rw-r--r-- 1 root root 245 2010-09-17 20:12 ldap.conf-orig Example ldap.conf file. ###DEBCONF### ## ## Configuration of this file will be managed by debconf as long as the ## first line of the file says '###DEBCONF###' ##
  • SUNScholar/User Management 121 ## You should use dpkg-reconfigure to configure this file via debconf ## # # @(#)$Id: ldap.conf,v 1.38 2006/05/15 08:13:31 lukeh Exp $ # # This is the configuration file for the LDAP nameservice # switch library and the LDAP PAM module. # # PADL Software # http://www.padl.com # # Your LDAP server. Must be resolvable without using LDAP. # Multiple hosts may be specified, each separated by a # space. How long nss_ldap takes to failover depends on # whether your LDAP client library supports configurable # network or connect timeouts (see bind_timelimit). host stbldap01.sun.ac.za stbldap02.sun.ac.za # The distinguished name of the search base. base ou=USERS,o=SU # Another way to specify your LDAP server is to provide an # uri with the server name. This allows to use # Unix Domain Sockets to connect to a local LDAP Server. #uri ldap://127.0.0.1/ #uri ldaps://127.0.0.1/ #uri ldapi://%2fvar%2frun%2fldapi_sock/ # Note: %2f encodes the '/' used as directory separator # The LDAP version to use (defaults to 3 # if supported by client library) ldap_version 3 # The distinguished name to bind to the server with. # Optional: default is to bind anonymously. #binddn cn=proxyuser,dc=padl,dc=com # The credentials to bind with. # Optional: default is no credential. #bindpw secret # The distinguished name to bind to the server with # if the effective user ID is root. Password is # stored in /etc/ldap.secret (mode 600) #rootbinddn cn=manager,dc=padl,dc=com
  • SUNScholar/User Management 122 # The port. # Optional: default is 389. port 636 Conduct LDAP search Now run a search on the LDAP server: sudo ldapsearch -x cn=hgibson Use whatever filters and attributes that are needed for your campus LDAP server. If the search is successful then you may continue to setup DSpace below. Step 2. Setup the DSpace configuration to use LDAP The settings are in the /home/dspace/source/dspace/config/modules/authentication.cfg file. Open the config files as follows: nano /home/dspace/source/dspace/config/modules/authentication.cfg Add the following to the bottom of the file. plugin.sequence.org.dspace.authenticate.AuthenticationMethod = org.dspace.authenticate.LDAPAuthentication, org.dspace.authenticate.PasswordAuthentication NANO Editor Help CTL+O = Save the file and then press Enter CTL+X = Exit "nano" CTL+K = Delete line CTL+U = Undelete line CTL+W = Search for $string$ CTL+ = Search for and replace $string$ ALT+C = Show line numbers More info = http://en.wikipedia.org/wiki/Nano_(text_editor) Now modify the ldap config file as follows. nano /home/dspace/source/dspace/config/modules/authentication-ldap.cfg Example DSpace LDAP config See example config below. #---------------------------------------------------------------# #------------LDAP AUTHENTICATION CONFIGURATIONS-----------------# #---------------------------------------------------------------# # Configuration properties used by the LDAP Authentication # # plugin, when it is enabled. # #---------------------------------------------------------------#
  • SUNScholar/User Management 123 # # In order to enable LDAP Authentication, you must first ensure the # 'org.dspace.authenticate.LDAPAuthentication' # class is added to the list of enabled AuthenticationMethods in 'authenticate.cfg'. # See 'authenticate.cfg' for more info. # # If LDAP is enabled, then new users will be able to register # by entering their username and password without being sent the # registration token. If users do not have a username and password, # then they can still register and login with just their email address # the same way they do now. # # For providing any special privileges to LDAP users, # you will still need to extend the SiteAuthenticator class to # automatically put people who have a netid into a special # group. You might also want to give certain email addresses # special privileges. Refer to the DSpace documentation for more # information about how to do this. # # It may be necessary to obtain the values of these settings from the # LDAP server administrators as LDAP configuration will vary from server # to server. # This setting will enable or disable LDAP authentication in DSpace. # With the setting off, users will be required to register and login with # their email address. With this setting on, users will be able to login # and register with their LDAP user ids and passwords. # This setting is only used by the JSPUI. enable = true ##### LDAP AutoRegister Settings ##### # This will turn LDAP autoregistration on or off. With this # on, a new EPerson object will be created for any user who # successfully authenticates against the LDAP server when they # first login. With this setting off, the user # must first register to get an EPerson object by # entering their ldap username and password and filling out # the forms. autoregister = false # This is the url to the institution's ldap server. The /o=myu.edu # may or may not be required depending on the LDAP server setup. # A server may also require the ldaps:// protocol. #provider_url = ldap://ldap.myu.edu/o=myu.edu
  • SUNScholar/User Management 124 provider_url = ldap://stbldap01.sun.ac.za:389 provider_url = ldap://stbldap02.sun.ac.za:389 # This is the unique identifier field in the LDAP directory # where the username is stored. #id_field = uid id_field = cn # This is the object context used when authenticating the # user. It is appended to the id_field and username. # For example uid=username,ou=people,o=myu.edu. This must match # the LDAP server configuration. #object_context = ou=people,o=myu.edu object_context = ou=USERS,o=SU # This is the search context used when looking up a user's # LDAP object to retrieve their data for autoregistering. # With autoregister turned on, when a user authenticates # without an EPerson object, a search on the LDAP directory to # get their name and email address is initiated so that DSpace # can create a EPerson object for them. So after we have authenticated against # uid=username,ou=people,o=byu.edu we now search in ou=people # for filtering on [uid=username]. Often the # search_context is the same as the object_context # parameter. But again this depends on each individual LDAP server # configuration. #search_context = ou=people search_context = ou=USERS,o=SU # This is the LDAP object field where the user's email address # is stored. "mail" is the default and the most common for # LDAP servers. If the mail field is not found the username # will be used as the email address when creating the eperson # object. email_field = mail # This is the LDAP object field where the user's last name is # stored. "sn" is the default and is the most common for LDAP # servers. If the field is not found the field will be left # blank in the new eperson object. surname_field = sn # This is the LDAP object field where the user's given names # are stored. This may not be used or set in all LDAP instances. # If the field is not found the field will be left blank in the # new eperson object. givenname_field = givenName
  • SUNScholar/User Management 125 # This is the field where the user's phone number is stored in # the LDAP directory. If the field is not found the field # will be left blank in the new eperson object. phone_field = telephoneNumber ##### LDAP users group ##### # If required, a group name can be given here, and all users who log in # to LDAP will automatically become members of this group. This is useful # if you want a group made up of all internal authenticated users. login.specialgroup = Maties ##### Hierarchical LDAP Settings ##### # If your users are spread out across a hierarchical tree on your # LDAP server, you will need to search the tree to find the full DN of # the user who is logging in. # # * If anonymous search is allowed on your LDAP server, you will need to set # search.anonymous = true # * If not, you will need to specify the full DN and password of a # user that is allowed to bind in order to search for the users. # * If neither search.anonymous is true, nor search.user is specified, # LDAP will not do the hierarchical search for a DN and will assume # a flat directory structure. # This is the optional search scope value for the LDAP search during # autoregistering. This will depend on your LDAP server setup. # This value must be one of the following integers corresponding # to the following values: # object scope : 0 # one level scope : 1 # subtree scope : 2 #search_scope = 2 # If true, the initial bind will be performed anonymously. search.anonymous = false # The full DN and password of a user allowed to connect to the LDAP server # and search for the DN of the user trying to log in. #search.user = cn=admin,ou=people,o=myu.edu #search.password = password # If your LDAP server does not hold an email address for a user, you can use
  • SUNScholar/User Management 126 # the following field to specify your email domain. This value is appended # to the netid in order to make an email address. E.g. a netid of 'user' and # netid_email_domain as '@example.com' would set the email of the user # to be 'user@example.com netid_email_domain = @sun.ac.za NANO Editor Help CTL+O = Save the file and then press Enter CTL+X = Exit "nano" CTL+K = Delete line CTL+U = Undelete line CTL+W = Search for $string$ CTL+ = Search for and replace $string$ ALT+C = Show line numbers More info = http://en.wikipedia.org/wiki/Nano_(text_editor) Please note: The above configuration uses the insecure LDAP port 389, you may want to test using the insecure port of 389 and then move to the secure port of 636. Step 3. Rebuild DSpace Rebuild the DSpace webapps using the custom rebuild script. References • https://wiki.duraspace.org/display/DSDOC4x/Functional+Overview#FunctionalOverview-UserManagement • https://wiki.duraspace.org/display/DSDOC3x/Authentication+ Plugins#AuthenticationPlugins-LDAPAuthentication • https://wiki.duraspace.org/display/DSDOC18/Authentication+Plugins • https://wiki.duraspace.org/display/DSPACE/LDAP+Hierarchical+Authentication+with+Active+Directory • http://phpldapadmin.sourceforge.net/wiki/index.php/Main_Page • http://en.wikipedia.org/wiki/OpenLDAP • http://en.wikipedia.org/wiki/List_of_LDAP_software
  • SUNScholar/Rebuild DSpace 127 SUNScholar/Rebuild DSpace Back to After Installation Tasks Rationale To apply customisations, DSpace needs to rebuild the Java WAR's for re-deployment by the Tomcat webapp server. For this to work, all permanent changes must be made in the [dspace-source] folder. This is required because we chose to use the source code for our DSpace installation and then build the run-time WAR's from the customised source code. Changes can be made in the run-time folder /home/dspace/webapp but these will be overwritten with the next rebuild. If you want changes in the run-time to be permanent, then copy them to source folder so that they are applied after the next rebuild. Requirements Click here to setup the "source" folder first. Procedure Login to your server: http://wiki.lib.sun.ac.za/index.php/SUNScholar/Prepare_Ubuntu/S01 Type the following: mkdir /home/dspace/scripts nano /home/dspace/scripts/build-webapps Tip: It is always a good idea to maximise the open nano window so that the copy and paste of long lines does not wrap around. Copy and paste the following into the open nano editor. Note For the version of Dspace used, replace all instances of XXX with the version number. #!/bin/bash sudo /etc/init.d/tomcat6 stop sleep 3 echo "Clean out old xmlui cache files" sudo rm /var/lib/tomcat6/work/Catalina/localhost/_/cache-dir/cocoon-ehcache.data sudo rm /var/lib/tomcat6/work/Catalina/localhost/_/cache-dir/cocoon-ehcache.index echo "Clean out old webapps" sudo rm -rf /home/dspace/webapps/* ## Optional. Remove the hash sign to completely remove the config folder. #echo "Clean out old configs" #sudo rm -rf /home/dspace/config/* echo "Start MAVEN packaging" cd /home/dspace/source mvn clean package echo "Start ANT build"
  • SUNScholar/Rebuild DSpace 128 cd /home/dspace/source/dspace/target/dspace-XXX-build ant update ant clean_backups ## Optional. Remove the hash sign to overwrite configs. #ant -Doverwrite=true update_configs ## Optional. Remove the hash sign to activate geolite database updates. ## Your server should be open on the internet before you do this. #sudo ant update_geolite echo "Remove old catalina log file" sudo rm /var/log/tomcat6/catalina.out sleep 3 sudo /etc/init.d/tomcat6 restart echo "Rebuild complete." NANO Editor Help CTL+O = Save the file and then press Enter CTL+X = Exit "nano" CTL+K = Delete line CTL+U = Undelete line CTL+W = Search for $string$ CTL+ = Search for and replace $string$ ALT+C = Show line numbers More info = http://en.wikipedia.org/wiki/Nano_(text_editor) Type the following: chmod 0755 /home/dspace/scripts/build-webapps Now you can rebuild DSpace WHEN NEEDED by simply typing the following; /home/dspace/scripts/build-webapps After the rebuild check that the config files have been copied over from the source folder correctly. "ant" Targets Notes from the upgrade of 1.8 to 3.0 about "ant" builds. Please note that there are in fact two options available, choose whichever you prefer :- "ant update_configs" ==> Moves existing configs in [dspace]/config/ to *.old files and replaces them with what is in [dspace-source]/dspace/config/ "ant -Doverwrite=false update_configs" ==> Leaves existing configs in [dspace]/config/ intact. Just copies new configs from [dspace-source]/dspace/config/ over to *.new files. References • https://wiki.duraspace.org/display/DSDOC4x/Ant+targets+and+options
  • SUNScholar/Rebuild DSpace 129 References • https://github.com/DSpace/demo.dspace.org/blob/master/scripts/linux/reset-dspace-content • https://wiki.duraspace.org/display/DSDOC3x/Rebuild+DSpace • https://wiki.duraspace.org/display/DSPACE/Rebuild+DSpace • https://wiki.duraspace.org/display/DSDOC4x/Advanced+ Customisation#AdvancedCustomisation-DSpaceSourceRelease • https://wiki.duraspace.org/display/DSDOC3x/Advanced+Customisation • https://wiki.duraspace.org/display/DSDOC3x/Advanced+ Customisation#AdvancedCustomisation-DSpaceSourceRelease • https://wiki.duraspace.org/display/DSDOC18/Advanced+Customisation • https://wiki.duraspace.org/display/DSDOC18/Advanced+ Customisation#AdvancedCustomisation-DSpaceSourceRelease SUNScholar/Daily Admin Back to After Installation Tasks For DSpace 3.2 Click on the heading above. For DSpace 1.8.2 Click on the heading above. PostgreSQL PostgreSQL also benefits from regular maintenance such as vacumn, which optimizes the indexes and clears out any deleted data. Type as follows in a terminal: sudo -i Enter the "dspace" user password. Then type: su - postgres crontab -e Copy and paste the following: 20 4 * * * vacuumdb --analyze dspace > /dev/null 2>&1 NANO Editor Help
  • SUNScholar/Daily Admin 130 CTL+O = Save the file and then press Enter CTL+X = Exit "nano" CTL+K = Delete line CTL+U = Undelete line CTL+W = Search for $string$ CTL+ = Search for and replace $string$ ALT+C = Show line numbers More info = http://en.wikipedia.org/wiki/Nano_(text_editor) References • https://github.com/DSpace/demo.dspace.org/blob/master/scripts/linux/crontab • https://wiki.duraspace.org/display/DSDOC4x/Scheduled+Tasks+via+Cron • https://wiki.duraspace.org/display/DSDOC3x/Installation#Installation-'cron'Jobs • https://wiki.duraspace.org/display/DSDOC18/Installation#Installation-'cron'Jobs • https://wiki.duraspace.org/display/DSDOC17/Installation#Installation-'cron'Jobs • http://en.wikipedia.org/wiki/Cron • http://adminschoice.com/crontab-quick-reference • http://www.yourownlinux.com/2014/04/schedule-your-jobs-in-linux-with-cron-examples-and-tutorial.html SUNScholar/Handle Server Back to After Installation Tasks Urgent Notice After an upgrade from DSpace 1.8.2 to 3.2, the following software bug appeared. https://jira.duraspace.org/browse/DS-1536 Step 1 - Register as handle server Visit: http://www.handle.net and http://www.handle.net/service_agreement.html to register to become a handle server. Step 2 - Prepare an initial handle request Login to the server: http://wiki.lib.sun.ac.za/index.php/SUNScholar/Prepare_Ubuntu/S01 Type the following in a terminal on your server: sudo -i /home/dspace/bin/make-handle-config
  • SUNScholar/Handle Server 131 Step 3 - Send handle request email Mail the file: /home/dspace/handle-server/sitebndl.zip to hdladmin@cnri.reston.va.us They will quickly create your global identifier and email you with the appropriate information. Tip: Save the file to your USB stick and mail it from your default workstation. Step 4 - Update handle server config file After payment to CNRI and confirmation of the server registration by CNRI, then complete the following. Step 1 Once you receive the email, print a copy on your default workstation then login to your DSpace server with Ubuntu as the "dspace" user. Step 2 Open the handle config file. sudo nano /home/dspace/handle-server/config.dct Step 3 Replace all mention of 300:0.NA/123456789 with the handle of your server. For example 300:0.NA/123456789 Became 300:0.NA/11105 For our http://ar1.sun.ac.za server. Step 4 Copy and paste the following to the file to create a regular log per week if not already specified during setup above. "log_save_config" = { "log_save_weekday" = "Sunday" "log_save_time" = "00:00:00" "log_save_directory" = "/home/dspace/handle-server" "log_save_interval" = "Weekly" }
  • SUNScholar/Handle Server 132 NANO Editor Help CTL+O = Save the file and then press Enter CTL+X = Exit "nano" CTL+K = Delete line CTL+U = Undelete line CTL+W = Search for $string$ CTL+ = Search for and replace $string$ ALT+C = Show line numbers More info = http://en.wikipedia.org/wiki/Nano_(text_editor) Sample "config.dct" root@ar1:~# cat /home/dspace/handle-server/config.dct { "hdl_http_config" = { "bind_address" = "146.232.21.83" "num_threads" = "15" "bind_port" = "8000" "backlog" = "5" "log_accesses" = "no" } "server_type" = "server" "hdl_udp_config" = { "bind_address" = "146.232.21.83" "num_threads" = "15" "bind_port" = "2641" "log_accesses" = "no" } "hdl_tcp_config" = { "bind_address" = "146.232.21.83" "num_threads" = "15" "bind_port" = "2641" "backlog" = "5" "log_accesses" = "no" } "log_save_config" = { "log_save_weekday" = "Sunday" "log_save_time" = "00:00:00" "log_save_directory" = "/home/dspace/handle-server" "log_save_interval" = "Weekly" }
  • SUNScholar/Handle Server 133 "no_udp_resolution" = "n" "interfaces" = ( "hdl_udp" "hdl_tcp" "hdl_http" ) "server_config" = { "storage_type" = "CUSTOM" "storage_class" = "org.dspace.handle.HandlePlugin" "server_admins" = ( "300:0.NA/11105" ) "replication_admins" = ( "300:0.NA/11105" ) "max_session_time" = "86400000" "this_server_id" = "1" "max_auth_time" = "60000" "backup_admins" = ( "300:0.NA/11105" ) "case_sensitive" = "no" } } Step 5 - Update DSpace config file Step 1 Open the DSpace config file as follows: nano /home/dspace/source/dspace/config/dspace.cfg Update the handle prefix parameter with the handle number assigned to you as follows: handle.prefix = XXXXXX Replace the XXXXXX with your handle number. For example in our case, the line reads handle.prefix = 10019.1
  • SUNScholar/Handle Server 134 Step 2 Update the handle server location folder parameter: handle.dir = /home/dspace/handle-server NANO Editor Help CTL+O = Save the file and then press Enter CTL+X = Exit "nano" CTL+K = Delete line CTL+U = Undelete line CTL+W = Search for $string$ CTL+ = Search for and replace $string$ ALT+C = Show line numbers More info = http://en.wikipedia.org/wiki/Nano_(text_editor) Step 6 - Rebuild DSpace Rebuild the DSpace webapps using the custom rebuild script. Step 7 - Update handle prefixes If you need to update the handle prefix on items created before the registration process you can run the /home/dspace/bin/dspace update-handle-prefix script. You may need to do this if you loaded items prior to CNRI registration (e.g. setting up a demonstration system prior to migrating it to production). The script takes the current and new prefix as parameters. For example: /home/dspace/bin/dspace update-handle-prefix 123456789 46664 will change any handles currently assigned prefix 123456789 to prefix 46664, so for example handle 123456789/23 will be updated to 46664/23 in the database. Step 8 - Firewall Ports Open ports 8000 and 2641 for internet access by the handle server on your local server and on the campus firewall. Check the firewall page. Please note: Port 2641 is opened to listen via UDP and TCP. Make sure your campus firewall administrator is aware of this. Step 9 - Java environment • http://wiki.lib.sun.ac.za/index.php/SUNScholar/Prepare_Ubuntu/S08
  • SUNScholar/Handle Server 135 Step 10 - Start handle server The handle server is only started during a boot up of the server. This is to prevent too many instances of the server running at the same time. On a test server, this service is not needed since handles can only be resolved when the server is properly registered. See above. Type the following to start your handle server when the server boots up: sudo nano /etc/rc.local Copy and paste the following into a blank space in the file before the "exit" statement: /home/dspace/bin/start-handle-server NANO Editor Help CTL+O = Save the file and then press Enter CTL+X = Exit "nano" CTL+K = Delete line CTL+U = Undelete line CTL+W = Search for $string$ CTL+ = Search for and replace $string$ ALT+C = Show line numbers More info = http://en.wikipedia.org/wiki/Nano_(text_editor) Step 11 - Check for correct operation Reboot your DSpace server to check that the handle server will start-up when the server is rebooted. Then check operation as follows after logging into the remote server as the "dspace" user: Handle service Type the following as the root user, to see if the handle service is running: (Only one instance must be running - check the log file) sudo ps ax | grep handle See sample output below. dspace@ar1:~/handle-server$ sudo ps ax | grep handle 4953 ? Sl 0:04 java -Djava.awt.headless=true >>> etc.. Notice that there is a process id assigned (PID). There should only be one PID.
  • SUNScholar/Handle Server 136 Handle config After the reboot and after the handle server has registered itself, there should be the following file. ls -l /root/.handle/root_info Handle log If not, check the error logs. nano /home/dspace/handle-server/error.log Rebuild config Rebuild the config by typing. sudo /home/dspace/bin/make-handle-config Start service manually Type the following to start the server manually. sudo /home/dspace/bin/start-handle-server Example listing of files in "/home/dspace/handle-server" folder See below. dspace@ar1:~/handle-server$ ls -l total 60 -rw-r--r-- 1 root root 335 Oct 18 12:28 admpriv.bin -rw-r--r-- 1 root root 440 Oct 18 12:28 admpub.bin -rw-r--r-- 1 root root 16402 Oct 31 14:40 cache.jdb -rw-r--r-- 1 root root 1000 Oct 31 14:39 config.dct -rw-r--r-- 1 root root 182 Oct 31 14:36 contactdata.dct -rw-r--r-- 1 root root 339 Oct 31 14:40 error.log-20121028 -rw-r--r-- 1 root root 335 Oct 18 12:28 privkey.bin -rw-r--r-- 1 root root 441 Oct 18 12:28 pubkey.bin -rw-r--r-- 1 root root 1578 Oct 31 14:36 sitebndl.zip -rw-r--r-- 1 root root 519 Oct 31 14:36 siteinfo.bin drwxr-xr-x 2 root root 4096 Oct 31 14:40 txns References • http://www.handle.net/hs_manual/server_manual_6.html#SEC47 • https://wiki.duraspace.org/display/DSDOC3x/Installation#Installation-TheHandleServer • https://wiki.duraspace.org/display/DSDOC18/Installation#Installation-TheHandleServer • https://wiki.duraspace.org/display/DSDOC17/Installation#Installation-TheHandleServer • http://www.dspace.org/1_6_2Documentation/ch03.html#N10C23 • http://wiki.datadryad.org/Handle_Server_Technology
  • SUNScholar/Internet Security 137 SUNScholar/Internet Security Back to After Installation Tasks Introduction Originally the internet was not designed to be secure. It was principally designed to be robust (no single point of failure) and be able to reliably transport data between disparate local networks. Securing the internet is done on an individual basis, therefore it is the companies/institutions responsibility to secure internet communications. Open unsecured communications creates the potential for intrusion therefore it is recommended that ALL internet traffic to your repository be encrypted [1] . Server Security Client Security Please encourage your managers, submitters, reviewers, collection managers and metadata editors to use a safe browser such as one of the following: 1. Firefox [2] 2. Google Chrome [3] References • https://wiki.duraspace.org/display/DSPACE/SecuringDSpace References [1] http://en.wikipedia.org/wiki/Https [2] http://www.getfirefox.com [3] http://www.google.com/chrome
  • SUNScholar/Secure Internet Connections 138 SUNScholar/Secure Internet Connections Back to Internet Security Requirements The Tomcat server MUST be listening on ports 80 and 443. See link below. • http://wiki.lib.sun.ac.za/index.php/SUNScholar/Prepare_Ubuntu/S05 On a test server behind your institutions firewall, this is not needed to do an evaluation of the software. Monopoly Please note: A quiet monopoly has been created in the SSL cert business. Verisign buys Thawte, Verisign buys Geotrust, Symantec buys Verisign. • http://en.wikipedia.org/wiki/Thawte • http://en.wikipedia.org/wiki/Geotrust • http://en.wikipedia.org/wiki/Verisign • http://en.wikipedia.org/wiki/Symantec Update - 2013/10/09. Now we know why a monopoly, so that the NSA can spy on everyone even with SSL certs. What a joke these certs are. SSL Defaults • The default location for certificates is: /etc/ssl/certs. This is where we will put the certificates. Other services should point to this folder for the certificates. •• Secure internet connections are created using the secure port (443) which must be opened on the campus firewall. Step 1. Create the SSL certificates Login to the server: http://wiki.lib.sun.ac.za/index.php/SUNScholar/Prepare_Ubuntu/S01 Become root as follows: sudo -i Make the scripts folder: mkdir /root/scripts Open the script file: nano /root/scripts/make-new-certs Then copy and paste the following into the nano editor. Please read the notes appended to this box below carefully. #! /bin/bash # Check for SSL binaries test -x /usr/bin/openssl || apt-get install openssl
  • SUNScholar/Secure Internet Connections 139 # Setup certificate variables HOST="bib.sun.ac.za" EMAIL="wklap@sun.ac.za" # Set certs path CERTS="/etc/ssl/certs/" # Define the config file to be used to create certs # Fill in your own values for "ST", "L", "O" and "OU" CONF="n [ req ] n default_bits = 2048 n encrypt_key = yes n distinguished_name = req_dn n x509_extensions = cert_type n prompt = no n [ req_dn ] n C=ZA n ST=WP n L=Stellenbosch n O=Universiteit Stellenbosch n OU=JS Gericke Library n CN=$HOST n emailAddress=$EMAIL n [ cert_type ] n nsCertType = server n " echo -e $CONF > $HOST.cnf sleep 3 # Build path for certificate creation CPATH="$CERTS$HOST" # Create a large random seed for the new key dd if=/dev/urandom of=$CPATH.rand count=1 2>/dev/null # Generate the new key and certificate openssl req -new -x509 -days 365 -nodes -config $HOST.cnf -out $CPATH.crt -keyout $CPATH.key || cleanup # Create a large random seed for the signing openssl gendh -rand $CPATH.rand 2048 > $CPATH.gendh || cleanup # Create a new certficate request openssl req -new -key $CPATH.key -config $HOST.cnf > $CPATH.csr # Create a "pem" file suitable for Apache2
  • SUNScholar/Secure Internet Connections 140 cat $CPATH.key $CPATH.crt > $CPATH.pem # Clean up rm -f $HOST.rand Change the following to suit your organisation •• $HOST - This is the registered hostname of the computer for which you are creating the SSL certificate. •• $EMAIL - This is the system admin email address of the computer. • C = This is the country, ZA for South Africa • ST = This is the state/province, WP for Western Province • L = This is the locality/town/city, Stellenbosch for us • O = This is the organisation, Stellenbosch University for us • OU = This is the organisational unit, JSG Library for us NANO Editor Help CTL+O = Save the file and then press Enter CTL+X = Exit "nano" CTL+K = Delete line CTL+U = Undelete line CTL+W = Search for $string$ CTL+ = Search for and replace $string$ ALT+C = Show line numbers More info = http://en.wikipedia.org/wiki/Nano_(text_editor) Now we make the script executeable as follows: chmod 0755 /root/scripts/make-new-certs Then we execute the script as follows: /root/scripts/make-new-certs Step 2. Apply for a signed certificate Application Send the file, %hostname%.csr in the /etc/ssl/certs folder to a recognised certificate authority for signing. Try to shop around for the best prices. See: http://www.sslshopper.com
  • SUNScholar/Secure Internet Connections 141 Activation Assuming that the supplied signed certificate is called verisign.cer and is stored in the /root folder, follow the procedure below as the root user to activate the signed certificate. cd /root cp verisign.cer /etc/ssl/cert/%hostname%.crt Replace %hostname% with the hostname of your server. To extract details of the signed certificate, type the following. openssl x509 -text -in /etc/ssl/certs/%hostname%.crt Replace %hostname% with the hostname of your server. See example extraction below. root@ar1:/etc/ssl/certs# openssl x509 -text -in /etc/ssl/certs/ar1.sun.ac.za.crt Certificate: Data: Version: 3 (0x2) Serial Number: 29:48:0a:37:5a:d7:bc:89:c8:87:61:a3:e3:74:75:c5 Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=Terms of use at https://www.verisign.com/rpa (c)10, CN=VeriSign Class 3 Secure Server CA - G3 Validity Not Before: Oct 23 00:00:00 2012 GMT Not After : Oct 24 23:59:59 2013 GMT Subject: C=ZA, ST=Western Cape, L=Stellenbosch, O=Universiteit Stellenbosch, OU=JS Gericke Library, CN=ar1.sun.ac.za Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:ba:2a:22:98:c8:62:31:4b:6a:75:fd:7c:db:29: 0c:c4:5a:c4:93:bb:34:2a:72:2f:2a:cb:95:e8:60: 43:6d:72:f8:0b:e8:12:4c:8c:f3:47:13:69:2e:f8: 7b:cc:23:33:4d:06:fb:4d:a4:2f:34:2c:c4:0b:bc: 4a:73:bb:a2:ab:a1:88:59:a7:81:b8:85:b4:9b:c0: 92:2a:86:03:68:38:30:f7:ef:31:1b:8f:79:a7:12: 0d:fc:4a:3a:ab:62:03:07:e5:c0:c9:3a:c4:af:94: 6f:dd:87:d5:80:5e:41:b6:92:25:5b:7d:bc:f7:a4: f9:82:ef:36:74:8d:a6:fa:39:7b:aa:23:ea:1d:97: b1:c7:e3:a4:82:3f:19:88:33:56:34:1f:20:02:a0: f7:fd:2e:2a:ec:a9:87:e7:26:1f:93:41:b0:65:f0: 1f:da:12:66:96:97:93:5f:42:bf:b6:bc:9b:7c:74: 6f:9c:09:6c:51:f6:fb:e2:78:4b:97:96:12:77:d2: 4a:ed:75:aa:e3:db:05:e5:8a:e5:3c:ea:a5:dd:34:
  • SUNScholar/Secure Internet Connections 142 20:8f:27:e4:30:2e:58:17:30:dd:1c:06:ae:30:de: 89:08:7e:a5:a1:48:24:0a:be:5e:4e:fb:9f:1f:dc: 52:d0:51:df:99:c4:ab:fb:5c:b0:1d:72:cf:be:26: d6:f1 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Alternative Name: DNS:ar1.sun.ac.za X509v3 Basic Constraints: CA:FALSE X509v3 Key Usage: critical Digital Signature, Key Encipherment X509v3 CRL Distribution Points: Full Name: URI:http://SVRSecure-G3-crl.verisign.com/SVRSecureG3.crl X509v3 Certificate Policies: Policy: 2.16.840.1.113733.1.7.54 CPS: https://www.verisign.com/cps X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 Authority Key Identifier: keyid:0D:44:5C:16:53:44:C1:82:7E:1D:20:AB:25:F4:01:63:D8:BE:79:A5 Authority Information Access: OCSP - URI:http://ocsp.verisign.com CA Issuers - URI:http://SVRSecure-G3-aia.verisign.com/SVRSecureG3.cer Signature Algorithm: sha1WithRSAEncryption 02:14:7a:e5:21:81:4d:e9:6f:3a:45:38:cf:f5:0c:7c:88:0b: 73:58:aa:d7:f9:c3:9e:32:2a:fa:76:15:a5:1d:15:4e:4c:44: 11:d5:7c:25:c9:5f:f9:45:f9:a4:11:90:40:42:68:d4:28:7d: ed:08:67:6d:6c:3b:6e:d5:e0:cd:28:c7:54:7d:e5:61:cc:9d: 5e:ab:0b:30:30:37:8e:55:ec:51:e6:f7:ff:d5:b4:fb:05:79: 6e:46:44:1b:c8:4f:4d:6f:d5:53:d9:42:d7:00:93:38:0b:a0: 48:99:ef:0c:15:29:16:e3:36:ca:e7:4c:61:72:23:36:69:89: cb:34:a0:7e:82:65:6f:35:d8:78:1a:d6:fd:34:60:c6:12:64: 8d:76:85:a4:c0:88:17:7a:44:6e:95:3d:59:0d:96:1f:90:37: cd:02:b7:d2:77:d7:45:a0:57:03:b8:67:24:81:07:3d:f2:7f: 07:6a:68:71:1f:72:df:77:2e:22:bf:ad:72:e0:bb:0b:4d:0a: 0c:63:0e:9d:60:85:2f:eb:7a:c7:65:50:bb:59:06:4b:4a:5f:
  • SUNScholar/Secure Internet Connections 143 1f:2a:e2:75:2c:e9:f9:18:fc:f0:6d:e7:22:38:71:53:ea:f1: 4b:66:dc:7b:8c:3a:45:b2:a6:e3:4d:2c:be:f9:2c:c2:3a:66: 30:58:66:5f -----BEGIN CERTIFICATE----- MIIFVDCCBDygAwIBAgIQKUgKN1rXvInIh2Gj43R1xTANBgkqhkiG9w0BAQUFADCB tTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2Ug YXQgaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykxMDEvMC0GA1UEAxMm VmVyaVNpZ24gQ2xhc3MgMyBTZWN1cmUgU2VydmVyIENBIC0gRzMwHhcNMTIxMDIz MDAwMDAwWhcNMTMxMDI0MjM1OTU5WjCBlDELMAkGA1UEBhMCWkExFTATBgNVBAgT DFdlc3Rlcm4gQ2FwZTEVMBMGA1UEBxQMU3RlbGxlbmJvc2NoMSIwIAYDVQQKFBlV bml2ZXJzaXRlaXQgU3RlbGxlbmJvc2NoMRswGQYDVQQLFBJKUyBHZXJpY2tlIExp YnJhcnkxFjAUBgNVBAMUDWFyMS5zdW4uYWMuemEwggEiMA0GCSqGSIb3DQEBAQUA A4IBDwAwggEKAoIBAQC6KiKYyGIxS2p1/XzbKQzEWsSTuzQqci8qy5XoYENtcvgL 6BJMjPNHE2ku+HvMIzNNBvtNpC80LMQLvEpzu6KroYhZp4G4hbSbwJIqhgNoODD3 7zEbj3mnEg38SjqrYgMH5cDJOsSvlG/dh9WAXkG2kiVbfbz3pPmC7zZ0jab6OXuq I+odl7HH46SCPxmIM1Y0HyACoPf9LirsqYfnJh+TQbBl8B/aEmaWl5NfQr+2vJt8 dG+cCWxR9vvieEuXlhJ30krtdarj2wXliuU86qXdNCCPJ+QwLlgXMN0cBq4w3okI fqWhSCQKvl5O+58f3FLQUd+ZxKv7XLAdcs++JtbxAgMBAAGjggF9MIIBeTAYBgNV HREEETAPgg1hcjEuc3VuLmFjLnphMAkGA1UdEwQCMAAwDgYDVR0PAQH/BAQDAgWg MEUGA1UdHwQ+MDwwOqA4oDaGNGh0dHA6Ly9TVlJTZWN1cmUtRzMtY3JsLnZlcmlz aWduLmNvbS9TVlJTZWN1cmVHMy5jcmwwQwYDVR0gBDwwOjA4BgpghkgBhvhFAQc2 MCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9jcHMwHQYD VR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFA1EXBZTRMGC fh0gqyX0AWPYvnmlMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDov L29jc3AudmVyaXNpZ24uY29tMEAGCCsGAQUFBzAChjRodHRwOi8vU1ZSU2VjdXJl LUczLWFpYS52ZXJpc2lnbi5jb20vU1ZSU2VjdXJlRzMuY2VyMA0GCSqGSIb3DQEB BQUAA4IBAQACFHrlIYFN6W86RTjP9Qx8iAtzWKrX+cOeMir6dhWlHRVOTEQR1Xwl yV/5RfmkEZBAQmjUKH3tCGdtbDtu1eDNKMdUfeVhzJ1eqwswMDeOVexR5vf/1bT7 BXluRkQbyE9Nb9VT2ULXAJM4C6BIme8MFSkW4zbK50xhciM2aYnLNKB+gmVvNdh4 Gtb9NGDGEmSNdoWkwIgXekRulT1ZDZYfkDfNArfSd9dFoFcDuGckgQc98n8Hamhx H3Lfdy4iv61y4LsLTQoMYw6dYIUv63rHZVC7WQZLSl8fKuJ1LOn5GPzwbeciOHFT 6vFLZtx7jDpFsqbjTSy++SzCOmYwWGZf -----END CERTIFICATE----- See example listing below. root@ir1:/etc/ssl/certs# ls -l scholar.sun.ac.za.* -rw-r--r-- 1 root root 1864 2010-09-21 13:42 scholar.sun.ac.za.crt -rw-r--r-- 1 root root 749 2010-09-15 09:31 scholar.sun.ac.za.csr -rw-r--r-- 1 root root 245 2010-09-15 09:31 scholar.sun.ac.za.gendh -rw-r--r-- 1 root root 887 2010-09-15 09:31 scholar.sun.ac.za.key -rw-r--r-- 1 root root 1969 2010-09-15 09:31 scholar.sun.ac.za.pem -rw-r--r-- 1 root root 3957 2012-10-01 09:35 scholar.sun.ac.za.pkcs12 -rw-r--r-- 1 root root 512 2010-09-15 09:31 scholar.sun.ac.za.rand
  • SUNScholar/Secure Internet Connections 144 Step 3. Intermediate CA certs If you choose Versign/Symantec as your cert provider, then follow this procedure to setup the intermediate CA certs. If not, then consult your cert provider on how to create the required intermediate CA certs. Download the certs from the following links by typing as follows: cd /etc/ssl/certs Get the primary intermediate Symantec CA cert: wget http://web.lib.sun.ac.za/style/sunscholar/certs/PCA-3G3.pem OR wget http://web.lib.sun.ac.za/style/sunscholar/certs/PCA-3G5.pem Get the secondary intermediate Symantec CA cert: wget http://web.lib.sun.ac.za/style/sunscholar/certs/ICA-3G3.pem wget http://web.lib.sun.ac.za/style/sunscholar/certs/ICA-3G5.pem Intermediate CA certs links For more intermediate CA cert info see the following links: • https://www.verisign.com/support/verisign-intermediate-ca/secure-site-intermediate/index.html • http://www.verisign.com/support/roots.html • https://knowledge.verisign.com/support/ssl-certificates-support/index?page=content&actp=CROSSLINK& id=AR657 • https://knowledge.verisign.com/support/ssl-certificates-support/index?page=content&id=AR1732 • https://knowledge.verisign.com/support/ssl-certificates-support/index?page=content&actp=CROSSLINK& id=AR234 • http://en.wikipedia.org/wiki/Intermediate_certificate_authorities Do not continue until you have all the required certs from a trusted authority. Step 4. Setup Tomcat to use the SSL certs Convert SSL cert to PKCS12 We convert the SSL signed certs, to a PKCS#12 compatible cert. See: http://www.brandonchecketts.com/archives/convert-and-openssl-apache-ssl-certificate-to-a-pkcs12-tomcat See: http://en.wikipedia.org/wiki/PKCS_12 for more info about the PKCS12 file. To do this as the root user, change to the cert folder as follows: cd /etc/ssl/certs Type the following to create the PKCS12 security cert that is chained with the Symantec/Verisign intermediate CA certs mentioned above. openssl pkcs12 -export -certfile PCA-3G5.pem -certfile ICA-3G5.pem -in %hostname%.crt -inkey %hostname%.key -out %hostname%.pkcs12
  • SUNScholar/Secure Internet Connections 145 1. Replace %hostname% with the hostname of the server. 2.2. You will be asked for a keystore password. 3.3. Enter it and keep a careful record of it somewhere. You can check the details of the PKCS12 cert by typing the following: keytool -list -v -storetype pkcs12 -keystore %hostname%.pkcs12 See example below: root@ir1:~# keytool -list -v -storetype pkcs12 -keystore /etc/ssl/certs/scholar.sun.ac.za.pkcs12 Enter keystore password: Keystore type: PKCS12 Keystore provider: SunJSSE Your keystore contains 1 entry Alias name: 2 Creation date: 09 Oct 2013 Entry type: PrivateKeyEntry Certificate chain length: 2 Certificate[1]: Owner: CN=scholar.sun.ac.za, OU=JS Gericke Library, O=Universiteit Stellenbosch, L=Stellenbosch, ST=WP, C=ZA Issuer: CN=VeriSign Class 3 Secure Server CA - G2, OU=Terms of use at https://www.verisign.com/rpa (c)09, OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US Serial number: 6c6fa1e8a7629802a9ac207d1ece5d03 Valid from: Fri Sep 17 02:00:00 SAST 2010 until: Mon Nov 17 01:59:59 SAST 2014 Certificate fingerprints: MD5: 43:1A:DB:8A:73:60:C2:3A:BB:8B:0B:99:86:C8:AB:9F SHA1: A0:FD:54:76:4C:55:91:DC:1D:3A:FB:81:AB:95:BC:C3:97:CB:24:56 Signature algorithm name: SHA1withRSA Version: 3 Extensions: #1: ObjectId: 2.5.29.15 Criticality=false KeyUsage [ DigitalSignature Key_Encipherment ] #2: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false AuthorityInfoAccess [
  • SUNScholar/Secure Internet Connections 146 [ accessMethod: 1.3.6.1.5.5.7.48.1 accessLocation: URIName: http://ocsp.verisign.com, accessMethod: 1.3.6.1.5.5.7.48.2 accessLocation: URIName: http://SVRSecure-G2-aia.verisign.com/SVRSecureG2.cer] ] #3: ObjectId: 1.3.6.1.5.5.7.1.12 Criticality=false #4: ObjectId: 2.5.29.31 Criticality=false CRLDistributionPoints [ [DistributionPoint: [URIName: http://SVRSecure-G2-crl.verisign.com/SVRSecureG2.crl] ]] #5: ObjectId: 2.5.29.32 Criticality=false CertificatePolicies [ [CertificatePolicyId: [2.16.840.1.113733.1.7.23.3] [PolicyQualifierInfo: [ qualifierID: 1.3.6.1.5.5.7.2.1 qualifier: 0000: 16 1C 68 74 74 70 73 3A 2F 2F 77 77 77 2E 76 65 ..https://www.ve 0010: 72 69 73 69 67 6E 2E 63 6F 6D 2F 72 70 61 risign.com/rpa ]] ] ] #6: ObjectId: 2.5.29.37 Criticality=false ExtendedKeyUsages [ serverAuth clientAuth ] #7: ObjectId: 2.5.29.19 Criticality=false BasicConstraints:[ CA:false PathLen: undefined ] #8: ObjectId: 2.5.29.35 Criticality=false AuthorityKeyIdentifier [ KeyIdentifier [ 0000: A5 EF 0B 11 CE C0 41 03 A3 4A 65 90 48 B2 1C E0 ......A..Je.H... 0010: 57 2D 7D 47 W-.G ]
  • SUNScholar/Secure Internet Connections 147 ] Certificate[2]: Owner: CN=VeriSign Class 3 Secure Server CA - G2, OU=Terms of use at https://www.verisign.com/rpa (c)09, OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US Issuer: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 3 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US Serial number: 6e4ffab3c5e669c4d167c992abe858c4 Valid from: Wed Mar 25 02:00:00 SAST 2009 until: Mon Mar 25 01:59:59 SAST 2019 Certificate fingerprints: MD5: AE:0F:D7:09:45:EA:3C:10:60:B6:17:BC:8E:09:07:69 SHA1: 62:F3:C8:97:71:DA:4C:E0:1A:91:FC:13:E0:2B:60:57:B4:54:7A:1D Signature algorithm name: SHA1withRSA Version: 3 Extensions: #1: ObjectId: 2.5.29.15 Criticality=true KeyUsage [ Key_CertSign Crl_Sign ] #2: ObjectId: 2.5.29.19 Criticality=true BasicConstraints:[ CA:true PathLen:0 ] #3: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: A5 EF 0B 11 CE C0 41 03 A3 4A 65 90 48 B2 1C E0 ......A..Je.H... 0010: 57 2D 7D 47 W-.G ] ] #4: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false AuthorityInfoAccess [ [ accessMethod: 1.3.6.1.5.5.7.48.1
  • SUNScholar/Secure Internet Connections 148 accessLocation: URIName: http://ocsp.verisign.com] ] #5: ObjectId: 1.3.6.1.5.5.7.1.12 Criticality=false #6: ObjectId: 2.5.29.31 Criticality=false CRLDistributionPoints [ [DistributionPoint: [URIName: http://crl.verisign.com/pca3-g2.crl] ]] #7: ObjectId: 2.5.29.32 Criticality=false CertificatePolicies [ [CertificatePolicyId: [2.16.840.1.113733.1.7.23.3] [PolicyQualifierInfo: [ qualifierID: 1.3.6.1.5.5.7.2.1 qualifier: 0000: 16 1C 68 74 74 70 73 3A 2F 2F 77 77 77 2E 76 65 ..https://www.ve 0010: 72 69 73 69 67 6E 2E 63 6F 6D 2F 63 70 73 risign.com/cps ], PolicyQualifierInfo: [ qualifierID: 1.3.6.1.5.5.7.2.2 qualifier: 0000: 30 1E 1A 1C 68 74 74 70 73 3A 2F 2F 77 77 77 2E 0...https://www. 0010: 76 65 72 69 73 69 67 6E 2E 63 6F 6D 2F 72 70 61 verisign.com/rpa ]] ] ] #8: ObjectId: 2.5.29.35 Criticality=false AuthorityKeyIdentifier [ [OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 3 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US] SerialNumber: [ 7dd9fe07 cfa81eb7 107967fb a78934c6] ] #9: ObjectId: 2.5.29.17 Criticality=false SubjectAlternativeName [ CN=Class3CA2048-1-52 ] ******************************************* *******************************************
  • SUNScholar/Secure Internet Connections 149 Setup Tomcat "server.xml" to use the converted certificate Now the Tomcat server has to be told where to find this security key file. Edit the /etc/tomcat6/server.xml file as follows: nano /etc/tomcat6/server.xml Find the port 8443 connector section. 1.1. Remove the comments surrounding the section. 2.2. Change the listening port to 443. 3.3. Add the following keystore settings. keystoreFile="/etc/ssl/certs/%hostname%.pkcs12" keystoreType="PKCS12" keystorePass="%SecretPassword%" /> 1. Replace %SecretPassword% with the password you used when creating the keystore above. 2. And add the %hostname% used when creating the keystore above. See full example below using a local PKCS12 keystore cert file with password embedded. <Connector port="443" protocol="HTTP/1.1" enableLookups="false" maxThreads="150" URIEncoding="UTF-8" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="/etc/ssl/certs/scholar.sun.ac.za.pkcs12" keystoreType="PKCS12" keystorePass="%SecretPassword%" /> NANO Editor Help CTL+O = Save the file and then press Enter CTL+X = Exit "nano" CTL+K = Delete line CTL+U = Undelete line CTL+W = Search for $string$ CTL+ = Search for and replace $string$ ALT+C = Show line numbers More info = http://en.wikipedia.org/wiki/Nano_(text_editor)
  • SUNScholar/Secure Internet Connections 150 Step 5. Enable secure XMLUI logins Become the dspace user su dspace Open the DSpace config file for editing as follows: nano /home/dspace/source/dspace/config/dspace.cfg Go to the following section of the DSpace config file: # Force all authenticated connections to use SSL, only non-authenticated # connections are allowed over plain http. If set to true, then you need to # ensure that the 'dspace.hostname' parameter is set to the correctly. xmlui.force.ssl = true Enable logins by changing "xmlui.force.ssl" to true. NANO Editor Help CTL+O = Save the file and then press Enter CTL+X = Exit "nano" CTL+K = Delete line CTL+U = Undelete line CTL+W = Search for $string$ CTL+ = Search for and replace $string$ ALT+C = Show line numbers More info = http://en.wikipedia.org/wiki/Nano_(text_editor)
  • SUNScholar/Secure Internet Connections 151 Step 6. Rebuild DSpace Rebuild the DSpace webapps using the custom rebuild script. Step 7. Check the secure connection • http://www.sslshopper.com/ssl-checker.html • http://www.digicert.com/help Below is an example screenshot of testing a secure connection using the sslshopper website SSL checker. References • http://www.openssl.org/docs/apps/pkcs12.html • http://www.madboa.com/geek/openssl/ • http://news.netcraft.com/ssl-survey • http://en.wikipedia.org/wiki/Secure_Sockets_Layer • http://www.mulesoft.com/tomcat-ssl • http://www.sslshopper.com • http://www.sslshopper.com/ssl-faq.html • http://www.sslshopper.com/article-most-common-openssl-commands.html • http://www.brandonchecketts.com/archives/convert-and-openssl-apache-ssl-certificate-to-a-pkcs12-tomcat • http://code.google.com/p/jianwikis/wiki/TomcatSSLWithAPR • http://johnjianfang.blogspot.com/2009/06/ssl-configuration-for-tomcat.html • http://mircwiki.rsna.org/index.php?title=Configuring_Tomcat_to_Support_SSL • http://blog.lesc.se/2009/09/how-to-makejava-ssl-trust-certificate.html • http://www.clintharris.net/2009/self-signed-certificates
  • SUNScholar/Firewall 152 SUNScholar/Firewall Back to Internet Security Introduction Ubuntu Help • https://help.ubuntu.com/14.04/serverguide/installation.html • https://help.ubuntu.com/12.04/serverguide/installation.html Ubuntu uses "iptables" to setup internet firewalls, however "iptables" is very complex and hard to setup. To solve this problem the "Uncomplicated FireWall" (UFW) was created by the Ubuntu community. Below are instructions to setup the "Uncomplicated FireWall". Install UFW (Uncomplicated FireWall) Login to the server: http://wiki.lib.sun.ac.za/index.php/SUNScholar/Prepare_Ubuntu/S01 From a terminal type the following: sudo apt-get install ufw UFW Config First check the status: sudo ufw status The config folder for UFW is here: /etc/ufw To read more about UFW, type the following: man ufw or ufw -h The "user.rules" file is in the following folder: /var/lib/ufw
  • SUNScholar/Firewall 153 Setup UFW For Internet Access Ask your campus firewall administrator to open up the following ports on the firewall for internet access to your DSpace server. Make sure TCP and UDP protocols are also opened on the campus firewall. SSH - For remote admin sudo ufw allow 22 HTTP - For web access sudo ufw allow 80 HTTPS - For secure web access sudo ufw allow 443 HANDLE SERVER - For the handle server sudo ufw allow 2641 VIRUS SCANNER - For the clamav server sudo ufw allow 3310 HANDLE SERVER - For the handle server sudo ufw allow 8000 Enable the firewall sudo ufw enable For Internal Access Open up the following ports to allow other campus hosts and servers to access your DSpace server SMTP sudo ufw allow 25 LDAP sudo ufw allow 389 LDAPS sudo ufw allow 636 RSYNC sudo ufw allow from backup-server-ip-address to any port 873 ORACLE (Only if you used the Oracle DB) sudo ufw allow 1521 PROXY SERVER
  • SUNScholar/Firewall 154 sudo ufw allow 3128 NAGIOS sudo ufw allow from 146.232.128.186 to any port 4426 MUNIN sudo ufw allow 4949 POSTGRESQL (Only if you used the PostgreSQL DB) sudo ufw allow 5432 TOMCAT sudo ufw allow 8443 References • https://help.ubuntu.com/community/StricterDefaults • https://help.ubuntu.com/community/UFW
  • Article Sources and Contributors 155 Article Sources and Contributors SUNScholar/Practical guidelines for starting an institutional repository (IR)  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26789  Contributors: Hgibson SUNScholar/Checklist  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26213  Contributors: Hgibson SUNScholar/Reference Architecture  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26470  Contributors: Hgibson SUNScholar/DSpace/Why Ubuntu Server  Source: http://wiki.lib.sun.ac.za/index.php?oldid=25648  Contributors: Hgibson SUNScholar/Guidelines/Step 1  Source: http://wiki.lib.sun.ac.za/index.php?oldid=25930  Contributors: Hgibson SUNScholar/Open Access  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26724  Contributors: Bibboek, Hgibson, Ismith, Plt, 4 anonymous edits SUNScholar/Repository Preservation  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26610  Contributors: Bibboek, Hgibson, Ismith, 1 anonymous edits SUNScholar/Guidelines/Step 2  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26294  Contributors: Hgibson SUNScholar/Guidelines/Step 3  Source: http://wiki.lib.sun.ac.za/index.php?oldid=25880  Contributors: Hgibson SUNScholar/Capacity Building/Digital Repository Systems Management  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26639  Contributors: Hgibson SUNScholar/Capacity Building/Digital Repository Content Management  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26764  Contributors: Hgibson SUNScholar/Guidelines/Step 4  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26783  Contributors: Hgibson SUNScholar/Guidelines/Step 5  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26779  Contributors: Hgibson SUNScholar/Install Ubuntu  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26658  Contributors: Bibboek, Hgibson SUNScholar/Prepare Ubuntu  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26375  Contributors: Bibboek, Hgibson SUNScholar/Install DSpace  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26376  Contributors: Bibboek, Hgibson Install DSpace/S04/3.2  Source: http://wiki.lib.sun.ac.za/index.php?oldid=25289  Contributors: Hgibson Install DSpace/S04/1.8.2  Source: http://wiki.lib.sun.ac.za/index.php?oldid=25290  Contributors: Hgibson SUNScholar/Guidelines/Step 6  Source: http://wiki.lib.sun.ac.za/index.php?oldid=23939  Contributors: Hgibson SUNScholar/Disaster Recovery/Backups/Client Setup  Source: http://wiki.lib.sun.ac.za/index.php?oldid=25842  Contributors: Hgibson SUNScholar/Disaster Recovery/Backups/Server Setup  Source: http://wiki.lib.sun.ac.za/index.php?oldid=25838  Contributors: Hgibson SUNScholar/Guidelines/Step 7  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26264  Contributors: Hgibson SUNScholar/Guidelines/Step 8  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26601  Contributors: Hgibson SUNScholar/Populating  Source: http://wiki.lib.sun.ac.za/index.php?oldid=20959  Contributors: Hgibson, Ismith SUNScholar/Guidelines/Step 9  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26503  Contributors: Hgibson SUNScholar/Guidelines/Step 10  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26602  Contributors: Hgibson SUNScholar/Guidelines/Step 11  Source: http://wiki.lib.sun.ac.za/index.php?oldid=22906  Contributors: Hgibson SUNScholar/Optimisations  Source: http://wiki.lib.sun.ac.za/index.php?oldid=25859  Contributors: Hgibson SUNScholar/Repository Information  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26686  Contributors: Hgibson SUNScholar/XMLUI Theme  Source: http://wiki.lib.sun.ac.za/index.php?oldid=25765  Contributors: Bibboek, Hgibson SUNScholar/XMLUI Theme/Tutorial  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26093  Contributors: Hgibson SUNScholar/XMLUI Theme/Creation  Source: http://wiki.lib.sun.ac.za/index.php?oldid=24389  Contributors: Hgibson SUNScholar/XMLUI Theme/Modify  Source: http://wiki.lib.sun.ac.za/index.php?oldid=25581  Contributors: Hgibson SUNScholar/XMLUI Theme/Page Content  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26096  Contributors: Hgibson SUNScholar/XMLUI Theme/Page Structure  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26498  Contributors: Hgibson SUNScholar/XMLUI Theme/Language  Source: http://wiki.lib.sun.ac.za/index.php?oldid=24621  Contributors: Hgibson SUNScholar/XMLUI Theme/Styling  Source: http://wiki.lib.sun.ac.za/index.php?oldid=25579  Contributors: Hgibson SUNScholar/Copyright  Source: http://wiki.lib.sun.ac.za/index.php?oldid=25908  Contributors: Bibboek, Hgibson, Ismith, 8 anonymous edits SUNScholar/Embargo  Source: http://wiki.lib.sun.ac.za/index.php?oldid=19676  Contributors: Hgibson, Ismith, 13 anonymous edits SUNScholar/Embargo Systems/3.2  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26083  Contributors: Hgibson SUNScholar/Embargo Systems/1.8.2  Source: http://wiki.lib.sun.ac.za/index.php?oldid=24213  Contributors: Hgibson SUNScholar/Customisation  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26569  Contributors: Hgibson SUNScholar/Theme  Source: http://wiki.lib.sun.ac.za/index.php?oldid=25632  Contributors: Hgibson SUNScholar/JSPUI Theme  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26518  Contributors: Hgibson SUNScholar/Language  Source: http://wiki.lib.sun.ac.za/index.php?oldid=25713  Contributors: Hgibson SUNScholar/Web Analytics  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26683  Contributors: Hgibson, 11 anonymous edits SUNScholar/Licences  Source: http://wiki.lib.sun.ac.za/index.php?oldid=25860  Contributors: Hgibson SUNScholar/Browse Indexes  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26488  Contributors: Bibboek, Hgibson SUNScholar/Email Templates  Source: http://wiki.lib.sun.ac.za/index.php?oldid=25973  Contributors: Hgibson
  • Article Sources and Contributors 156 SUNScholar/Item and Collection Permissions  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26134  Contributors: Hgibson SUNScholar/Community Management  Source: http://wiki.lib.sun.ac.za/index.php?oldid=24189  Contributors: Hgibson SUNScholar/Harvesting  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26290  Contributors: Hgibson SUNScholar/SOLR Statistics  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26292  Contributors: Bibboek, Hgibson SUNScholar/Export and Import Artifacts  Source: http://wiki.lib.sun.ac.za/index.php?oldid=24193  Contributors: Bibboek, Hgibson, 173 anonymous edits SUNScholar/Submission System  Source: http://wiki.lib.sun.ac.za/index.php?oldid=25944  Contributors: Bibboek, Hgibson, 1 anonymous edits SUNScholar/Upgrading  Source: http://wiki.lib.sun.ac.za/index.php?oldid=25277  Contributors: Hgibson SUNScholar/Change Management  Source: http://wiki.lib.sun.ac.za/index.php?oldid=25271  Contributors: Bibboek, Hgibson SUNScholar/Upgrading/DSpace/Release Notes/3.2  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26514  Contributors: Hgibson SUNScholar/Upgrading/Server Software  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26463  Contributors: Hgibson SUNScholar/Upgrading/Hardware/New Server  Source: http://wiki.lib.sun.ac.za/index.php?oldid=25264  Contributors: Hgibson SUNScholar/Upgrading/Hardware/Add a New Disk  Source: http://wiki.lib.sun.ac.za/index.php?oldid=25281  Contributors: Hgibson SUNScholar/User Management  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26135  Contributors: Bibboek, Hgibson SUNScholar/Rebuild DSpace  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26348  Contributors: Bibboek, Hgibson SUNScholar/Daily Admin  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26556  Contributors: Bibboek, Hgibson SUNScholar/Handle Server  Source: http://wiki.lib.sun.ac.za/index.php?oldid=25391  Contributors: Bibboek, Hgibson, 1 anonymous edits SUNScholar/Internet Security  Source: http://wiki.lib.sun.ac.za/index.php?oldid=24338  Contributors: Bibboek, Hgibson SUNScholar/Secure Internet Connections  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26464  Contributors: Hgibson SUNScholar/Firewall  Source: http://wiki.lib.sun.ac.za/index.php?oldid=26566  Contributors: Hgibson
  • Image Sources, Licenses and Contributors 157 Image Sources, Licenses and Contributors File:Foss.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Foss.png  License: unknown  Contributors: Hgibson File:Ubuntu-vs-rhel.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Ubuntu-vs-rhel.png  License: unknown  Contributors: Hgibson File:Ubuntu-vs-rhel-1.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Ubuntu-vs-rhel-1.png  License: unknown  Contributors: Hgibson File:Ubuntu-vs-rhel-2.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Ubuntu-vs-rhel-2.png  License: unknown  Contributors: Hgibson File:Ubuntu-vs-rhel-3.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Ubuntu-vs-rhel-3.png  License: unknown  Contributors: Hgibson File:Repository-lifecycle.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Repository-lifecycle.png  License: unknown  Contributors: Hgibson File:Oa-green.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Oa-green.png  License: unknown  Contributors: Hgibson File:Oa-gold.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Oa-gold.png  License: unknown  Contributors: Hgibson File:Open-access-logo.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Open-access-logo.png  License: unknown  Contributors: Bibboek File:Access-denied.jpeg  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Access-denied.jpeg  License: unknown  Contributors: Hgibson File:Ap-money.jpg  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Ap-money.jpg  License: unknown  Contributors: Hgibson File:Scholary-lifecycle-open-access.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Scholary-lifecycle-open-access.png  License: unknown  Contributors: Bibboek File:Closed research.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Closed_research.png  License: unknown  Contributors: Hgibson File:Optimised research.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Optimised_research.png  License: unknown  Contributors: Hgibson File:Goede-hoope.jpg  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Goede-hoope.jpg  License: unknown  Contributors: Hgibson File:Dp-funny.jpg  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Dp-funny.jpg  License: unknown  Contributors: Hgibson File:Errror-404.jpg  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Errror-404.jpg  License: unknown  Contributors: Hgibson File:Open-formats.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Open-formats.png  License: unknown  Contributors: Hgibson File:Rr-organogram.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Rr-organogram.png  License: unknown  Contributors: Hgibson File:Geeks-and-repetitive-tasks.jpg  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Geeks-and-repetitive-tasks.jpg  License: unknown  Contributors: Hgibson File:Geek.jpg  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Geek.jpg  License: unknown  Contributors: Hgibson File:Cio-perform.jpg  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Cio-perform.jpg  License: unknown  Contributors: Hgibson File:Linux-jobs.jpg  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Linux-jobs.jpg  License: unknown  Contributors: Hgibson File:WebLiteracyMap-v1.1.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:WebLiteracyMap-v1.1.png  License: unknown  Contributors: Hgibson File:Technology_Acceptance_Model.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Technology_Acceptance_Model.png  License: unknown  Contributors: Hgibson File:Simple-answers.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Simple-answers.png  License: unknown  Contributors: Hgibson File:Dgm12539.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Dgm12539.png  License: unknown  Contributors: Bibboek File:Opensource.jpg  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Opensource.jpg  License: unknown  Contributors: Hgibson File:Sunscholar-config.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Sunscholar-config.png  License: unknown  Contributors: Hgibson File:Dgm12539-m.jpeg  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Dgm12539-m.jpeg  License: unknown  Contributors: Hgibson File:Backuppc.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Backuppc.png  License: unknown  Contributors: Hgibson File:Backuppc-2.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Backuppc-2.png  License: unknown  Contributors: Bibboek, Hgibson File:Tweet.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Tweet.png  License: unknown  Contributors: Hgibson File:Dgm13281.jpeg  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Dgm13281.jpeg  License: unknown  Contributors: Hgibson File:Xmlui-overview.jpg  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Xmlui-overview.jpg  License: unknown  Contributors: Hgibson File:DRISchema.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:DRISchema.png  License: unknown  Contributors: Hgibson File:Css-element.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Css-element.png  License: unknown  Contributors: Hgibson File:Css-element-1.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Css-element-1.png  License: unknown  Contributors: Hgibson File:Sunscholar-formats.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Sunscholar-formats.png  License: unknown  Contributors: Hgibson File:Embargo.jpg  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Embargo.jpg  License: unknown  Contributors: Ismith File:Lynx-solr.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Lynx-solr.png  License: unknown  Contributors: Hgibson File:Collection-policy-management.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Collection-policy-management.png  License: unknown  Contributors: Hgibson File:OAI-idea.gif  Source: http://wiki.lib.sun.ac.za/index.php?title=File:OAI-idea.gif  License: unknown  Contributors: Hgibson File:Dspace-3.2-build.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Dspace-3.2-build.png  License: unknown  Contributors: Hgibson File:Sunscholar-ssl.png  Source: http://wiki.lib.sun.ac.za/index.php?title=File:Sunscholar-ssl.png  License: unknown  Contributors: Hgibson
  • License 158 License Attribution 3.0 Unported http://creativecommons.org/licenses/by/3.0/