What is DSpace?
DSpace is an open source repository software package typically used for creating open access repositories for scholarly and/or published digital content. While DSpace shares some feature overlap with content management systems and document management systems, the DSpace repository software serves a specific need as a digital archives system, focused on the long-term storage, access and preservation of digital content.
DSpace use PostgreSQL as database.
We might use an external database or create a PostgreSQL container linked to the DSpace container.
Postgres as a container
First, we have to create the PostgreSQL container:
docker run -d --name dspace_db -p 5432:5432 postgres
then run DSpace linking the PostgreSQL container:
docker run -d --link dspace_db:postgres -p 8080:8080 1science/dspace
By default the database schema is created with the name
dspace for a user
dspace and password
dspace, but it's possible to override this default settings :
docker run -d --link dspace_db:postgres \ -e POSTGRES_SCHEMA=my_dspace \ -e POSTGRES_USER=my_user \ -e POSTGRES_PASSWORD=my_password \ -p 8080:8080 1science/dspace
We might also used the Docker compose project in the
When you use an external Postgres, you have to set some environment variables :
POSTGRES_DB_HOST(required): The server host name or ip.
POSTGRES_DB_PORT(optional): The server port (
POSTGRES_SCHEMA(optional): The database schema (
POSTGRES_USER(optional): The user used by DSpace (
POSTGRES_PASSWORD(optional): The password of the user used by DSpace (
POSTGRES_ADMIN_USER(optional): The admin user creating the Database and the user (
POSTGRES_ADMIN_PASSWORD(optional): The password of the admin user
docker run -d \ -e POSTGRES_DB_HOST=my_host \ -e POSTGRES_ADMIN_USER=my_admin \ -e POSTGRES_ADMIN_PASSWORD=my_admin_password \ -e POSTGRES_SCHEMA=my_dspace \ -e POSTGRES_USER=my_user \ -e POSTGRES_PASSWORD=my_password \ -p 8080:8080 1science/dspace
After few seconds DSpace should be accessible from:
- JSP User Interface: http://localhost:8080/jspui
- XML User Interface: http://localhost:8080/xmlui
- OAI-PMH Interface: http://localhost:8080/oai/request?verb=Identify
- REST: http://localhost:8080/rest
Note: The security constraint to tunnel request with SSL on the
/rest endpoint has been removed, but it's very important to securize this endpoint in production through Nginx for example.
Configure webapps installed
DSpace consumed a lot of memory, and sometimes we don't really need all the DSpace webapps. So iy's possible to set an environment variables to control the webapps installed :
docker run -d --link dspace_db:postgres \ -e DSPACE_WEBAPPS="jspui xmlui rest" \ -p 8080:8080 1science/dspace
The command above only installed the webapps
This project is configured as an automated build in Dockerhub.
Each branch give the related image tag.
All the code contained in this repository, unless explicitly stated, is
licensed under ISC license.
A copy of the license can be found inside the LICENSE file.
Should I create an user to access the administration area on JSPUI ?
How do I use this image to run a container with my own DSpace source code and database?