Page History
Info | ||
---|---|---|
| ||
See the Release Notes for the latest available version of 7.x, and the original DSpace 7.0 Press Release for more information. |
Table of Contents |
---|
Overview
DSpace 7 brings to DSpace a single, modern user interface and REST API and integrates current technological standards and best practices. This new UI combines with the existing core backend of DSpace 6, resulting in a lean,
Note |
---|
Please keep in mind that, as DSpace 7 is under active development, this release does not include all DSpace features. It is NOT PRODUCTION READY. Where a feature is not yet available, we've greyed out / disabled the link in the user interface. All missing features will be implemented prior to the Beta and final release of 7.0. See DSpace Release 7.0 Status or the DSpace 7 Release Notes for more details on estimated timelines, etc. |
Table of Contents |
---|
Overview
DSpace 7 brings to DSpace a single, modern user interface and REST API and integrates current technological standards and best practices. This new UI combines with the existing core backend of DSpace 6, resulting in a lean, responsive, next-generation repository.
...
- New Angular UI that is modern, responsive, and built using a Bootstrap theme for easy customization. See demo site at https://dspace7-demo.atmiredspace.comorg/
- A completely redesigned REST API that is self-documenting and human browsable. See demo site at https://dspace7demo.4sciencedspace.cloudorg/server/
- Redesigned submissions and workflows featuring a one page submission process with a drag-and-drop interface , and automatic metadata extraction from common formats like PDFsand newly redesigned MyDSpace.
- Configurable entities, an optional new item type inspired by the DSpace-CRIS project that allows for complex linked relationships between items. DSpace 7 will include the option to implement this feature for two use cases popular with the DSpace community:
- Journal Hierarchy: create and link objects for a Journal, Volume, Issue, Article, and Author
- Faculty & Organizational Units: a lightweight, CRIS-like option to represent Projects, Faculty, Department/Unit, Publication, etc.
- A deep-dive into Configurable Entities can be found in the DSpace 7 Configurable Entities early documentation (Google Doc)
- Configurable entities help to better align DSpace with Next Generation Repository recommendations related to Identifiers as well as alignment with OpenAIRE v4.
...
If you want to quickly test out the latest DSpace 7 Preview Releasecode, you may do so using our demo site.
- DSpace 7 User Interface Demo: https://dspace7-demo.atmiredspace.comorg/ (Login: dspacedemo+admin@gmail.com , Password: dspace)
- DSpace 7 REST API Demo: https://dspace7demo.4sciencedspace.cloudorg/server/ (Login: dspacedemo+admin@gmail.com , Password: dspace)
- REST Contract / Documentation is available at: https://github.com/DSpace/Rest7Contract/blob/master/README.mdRestContract/#readme
Keep in mind, our User Interface Demo uses the REST API Demo as the backend. So, any content created (by anyone) will immediately appear in both locations.
...
- Install via Docker (Recommended if you just want to try it out quickly for dev/test environments) - This is the easiest/quickest way to get everything running locally (no matter your technical skills). We even have a script to automatically load some test data and test accounts into your Docker instance.
- Install the User Interface only, while using the demo REST API backend - This is the easiest way to try out just the User Interface locally. Keep in mind, by default, the User Interface will be installed to use our DSpace 7 REST API Demo as a backend. Therefore, you will be interacting with the content on that demo site and will need to use the login information for the demo site (see above)
- Install both the User Interface and REST API locally (bring your own test contentRequired for Production). This is a fully manual local installation. Keep in mind this installation process is may still change slightly before the final 7.0 releaseThe UI and REST API need not be installed on the same server.
Install via Docker
Info | ||
---|---|---|
| ||
The below instructions provide a quick way to start up both the User Interface and REST API in a Docker environment. However, if you are already familiar with Docker or plan to use it more heavily, you may wish to also review our detailed Docker Compose instructions for both the frontend (User Interface) and backend (REST API). |
Running DSpace 7 via Docker allows you to quickly & easily install and start up all the "parts" of DSpace (database, Solr index, REST API, user interface) without having to install them all Running DSpace 7 via Docker allows you to quickly & easily install and start up all the "parts" of DSpace (database, Solr index, REST API, user interface) without having to install them all yourself. This will work on any operating system (Windows 10, Mac OS, or Linux).
Info | ||
---|---|---|
| ||
WARNING: While the below videos are useful to understand Docker concepts, the exact steps are now outdated. The correct, updated steps are listed in the instructions below. Once the videos are re-recorded, we will remove this warning. If you are a visual person, a walkthrough of these Docker installation steps are also available at: https://dspace-labs.github.io/DSpace-Docker-Images/documentation/tutorialSetup.html Additionally, if you would like a more detailed overview of Docker and how to run other versions of DSpace via Docker, please see the recording of the DuraSpace Webinar "DSpace Docker for Repository Managers". (Keep in mind, that webinar recording does not cover the steps to run the DSpace 7 Release specifically, so you will still need to follow all the steps below, starting with step #2). |
Keep in mind, this setup will REQUIRE at least 6GB of memory allocated for Docker. However, 8GB is recommended, if you have it available.
- First, install the necessary prerequisites: Docker and Git
- On Windows 10:
- Install Docker Desktop for Windows
- Install Git Bash & verify the installation by running "
git version
" from Command Prompt or Powershell
- On Mac OS:
- Install Docker Desktop for Mac
- Git may already be installed. Run "
git version
" from your terminal to see if it's available. If Git is not yet installed, you will be prompted to install developer tools. If that approach doesn't work, Git may also be downloaded.
- On Linux:
- Install Docker Engine for your Linux OS
- Git may already be installed. Run "
git version
" to check for it. If it is not installed, install Git using your package manager (e.g.sudo apt-get install git
)
- On Windows 10:
- Next, using Git,
- First, install the necessary prerequisites. You will just need to install three things: Docker Desktop (to run Docker), Git (to access our shared Docker compose files) and finally download those shared Docker compose files.
- Next, using Git, download (clone) the DSpace Angular UI codebase & move into that codebase directory
Code Block # Download the UI codebase git clone git@github clone https://github.com:/DSpace/dspace-angular.git # Move into the created codebase directory cd dspace-angular # Switch to the 7.x maintenance branch (latest 7.x code) git checkout dspace-7_x
- Using the Docker instructions in that codebase, start up both the DSpace 7 REST API and Angular UI via Using the Docker instructions in that codebase, start up both the DSpace 7 REST API and Angular UI via Docker
First, pull down the latest version of the Docker images (both frontend and backend):
Code Block docker compose -f docker/docker-compose.yml -f docker/docker-compose-rest.yml pull
Optionally, you can choose to locally rebuild the Angular UI (This is only needed, if you want to try out local changes/customizations to that Angular UI. Otherwise, if you just want to run the default Angular UI, you can skip this step entirely.):
Code Block docker- compose -f docker/docker-compose.yml build
Finally, start up both the Angular UI and REST API via Docker:
Code Block docker- compose -p d7 -f docker/docker-compose.yml -f docker/docker-compose-rest.yml up -d
If you'd like to monitor the startup process, you can "tail" the logs
as follows: docker-compose -p d7 logsusing "logs -f":
Code Block docker compose -p d7 -f docker/docker-compose.yml -f docker/docker-compose-rest.yml logs -f
- If anything goes wrong, occasionally a simple restart of the images will resolve it. Just do a "down" followed by an "up -d" again.:
Code Block # Shut down everything docker compose -p d7 -f docker/docker-compose.yml -f docker/docker-compose-rest.yml down # Restart everything docker compose -p d7 -f docker/docker-compose.yml -f docker/docker-compose-rest.yml up -d
- At this point, you should be able to see a completely empty DSpace 7 site. You may now choose to either add test/demo content (see step #5 below) and/or add an initial Administrator account (see step #6 below).
- User Interface: http://localhost:4000/
- REST API: http://localhost:8080/server/
- Next, optionally, you can add test data to your Docker instance. We have two sets of test data available depending on what you want to test out. CHOOSE ONE.
[Option #1: Use AIP test data] We have a set of AIP (Archival Information Package) data which was exported from a DSpace 6.x instance. This test data is good to get a quick feel for the changes in DSpace 7 compared to DSpace 6. It's also the easiest to quickly import as we have an ingest script written for Docker using the "dspace-cli" container. Just run:
Code Block # If you don't have an Admin created with the email "test@test.edu", create it. The AIP ingest runs as that user by default. docker compose -p d7 -f docker/cli.yml run --rm dspace-cli create-administrator -e test@test.edu -f admin -l user -p admin -c en # This second command will import a batch of test/sample AIPs (see "cli.ingest.yml" for more info) docker compose -p d7 -f docker/cli.yml -f ./docker/cli.ingest.yml run --rm dspace-cli
- [Option #2: Use a database dump of Entities test data] Alternatively, if you'd like to instead test the new Configurable Entities features, we have a separate database dump which provides Entity test data. (This test data is not yet available in AIP format). Here's how you'd switch your Docker instance to using the Configurable Entities test data
First, you unfortunately need to completely shut down any running volumes and remove them. We will be replacing them with a database dump of Entity test data.
Code Block # Shut down the running containers docker compose -p d7 -f docker/docker-compose.yml -f docker/docker-compose-rest.yml down # Remove ALL existing volumes docker volume rm $(docker volume ls -q) # NOTE: If you don't want to remove all volumes, you can also remove the volumes in two steps # First, list all volumes, and look for any that have a name starting with "d7". There likely will be 4. docker volume ls # Then, delete each volume (by name) one by one. docker volume rm [volume-name]
Now, let's recreate those containers with the Configurable Entities test data included:
Code Block # NOTE: the `db.entities.yml` here will startup a database image with Entities test data included (from a database dump) docker
[Option #1: Use AIP test data] We have a set of AIP (Archival Information Package) data which was exported from a DSpace 6.x instance. This test data is good to get a quick feel for the changes in DSpace 7 compared to DSpace 6. It's also the easiest to quickly import as we have an ingest script written for Docker using the "dspace-cli" container. Just run:
[Option #2: Use a database dump of Entities test data] Alternatively, if you'd like to instead test the new Configurable Entities features, we have a separate database dump which provides Entity test data. (This test data is not yet available in AIP format). Here's how you'd switch your Docker instance to using the Configurable Entities test dataCode Block docker-compose -p d7 -f docker/cli.yml -f ./docker/cli.ingest.yml run --rm dspace-cli
First, you unfortunately need to completely shut down any running volumes and remove them. We will be replacing them with a database dump of Entity test data.
Code Block # Shut down the running containers docker-compose -p d7 -f docker/docker-compose.yml -f docker/docker-compose-rest.yml down # Remove any existing volumes docker volume rm $(docker volume ls -q)
Now, let's recreate those containers with the Configurable Entities test data included:
Code Block # NOTE: the `db.entities.yml` here will startup a database image with Entities test data included (from a database dump) docker-yml -f docker/docker-compose-rest.yml -f docker/db.entities.yml up -d # Optionally watch the logs of that command to make sure everything starts back up properly docker compose -p d7 -f docker/docker-compose.yml -f docker/docker-compose-rest.yml -f docker/db.entities.yml uplogs -df # OnceFinally, once started, also load up the Entities test "assetstore" (files) & trigger a reindex docker- compose -p d7 -f docker/cli.yml -f docker/cli.assetstore.yml run --rm dspace-cli
Finally, in order to have an initial login, let's create an initial Administrator account using the "dspace-cli" container:
Code Block # This example creates an Admin user with email "test@test.edu" and password "admin" docker- an Admin user with email "test@test.edu" and password "admin". # (You may have already created this user above, before loading AIP test data. If so, you can skip this) docker compose -p d7 -f docker/cli.yml run --rm dspace-cli create-administrator -e test@test.edu -f admin -l user -p admin -c en
- After a few minutes, you should have a full local installation of DSpace 7 Preview (with test data).
- User Interface: http://localhost:30004000/
- REST API: http://localhost:8080/server/
- Admin Login: (whatever login you setup via the "dspace-cli" command above)
- Objects/Pages of interest (within the test data):
- Journal Example represents a journal with journal volumes, issues and articles, as detailed in the Configurable Entities Design.
- Publications Example contains publications which contain a combination of plain-text authors and related author entities. It also contains relations to Research Projects and Organizational Units, as detailed in the Configurable Entities design. Navigating to e.g. a Person will reveal their relations to Publications, Research Projects and Organizational Units.
- Submission/Workflow functionality can be tested using one of the collections in this community where the workflow is enabled. You can use the accounts mentioned above to perform the submission and workflow steps. The admin account can perform the submission and all workflow steps as well.
- Once logged in, MyDSpace functionality is found in the user menu (upper right). Submissions can be started from that page, or via the "New → Item" admin menu (if logged in as an Admin).
Once you are done testing, you can stop Docker and clean up the data (deleting the volumes).
Code Block # Shut down the running containers docker- compose -p d7 -f docker/docker-compose.yml -f docker/docker-compose-rest.yml down # Remove all volumes, images, etc (This removes all the existing data and images) docker system prune --volumes
...
Info |
---|
The instructions below are meant as a quick guide for how to install the User Interface quickly & use the REST API demo as a backend. Please keep in mind the official installation instructions are at Installing DSpace. These "user interface only" instructions are only useful for trying out the UI for demo/sandboxing purposes. |
Running only the DSpace 7 user interface can be done quickly & easily on any operating system (Windows, Mac OS, or Linux). By default, the installed user interface will use the DSpace 7 REST API Demo (https://dspace7demo.4sciencedspace.cloudorg/server/) as its backend. This means that you will immediately see test data (from that demo site) and be able to interact with it. However, you will need to authenticate using the REST API Demo account. Any changes you make will also obviously appear on that shared REST API Demo site.
- First, you will need to install the necessary prerequisites.
- Git is required. If you do not already have it installed (try running
git version
at your command line), you can install it via https://git-scm.com/downloads (or via your local package manager tools for Linux or Mac OS) - Node.js (v10.js (v12.x , v14.x or v12v16.x) is required. Installing the latest LTS (Long Term Support) version, currently 10.x, is perfectly fine.
- NPM (v5.x or above) is required. Don't worry, this gets installed with Node.js though, so you don't need to do anything extra here.
- Yarn (v1.x or above) package manage. Just install the latest stable version (currently of 1.16.x).
- Git is required. If you do not already have it installed (try running
Then, download our "dspace-angular" application (which is the DSpace 7 user interface) and run it. All you should need to do is the steps in the "Quick Start" at: https://github.com/DSpace/dspace-angular/#quick-start
Code Block # clone the repo git clone https://github.com/DSpace/dspace-angular.git # change directory to our repo cd dspace-angulardirectory to our repo cd dspace-angular # Switch to the 7.x maintenance branch (latest 7.x code) git checkout dspace-7_x # install the local dependencies yarn install # start the server yarn start
- After a few minutes, the user interface will be running on your local machine. Again, it will be accessing the REST API Demo site, so a stable internet connection is required.
- User Interface: http://localhost:30004000/
- REST API (remote demo site): https://dspace7demo.4sciencedspace.cloudorg/server/
- Admin Login: dspacedemo+admin@gmail.com, Password: dspace
- Submitter Login: dspacedemo+submit@gmail.com, Password: dspace
- Objects/Pages of interest (within the test data):
- Journal Example represents a journal with journal volumes, issues and articles, as detailed in the Configurable Entities Design.
- Publications Example contains publications which contain a combination of plain-text authors and related author entities. It also contains relations to Research Projects and Organizational Units, as detailed in the Configurable Entities design. Navigating to e.g. a Person will reveal their relations to Publications, Research Projects and Organizational Units.
- Submission/Workflow functionality can be tested using one of the collections in this community where the workflow is enabled. You can use the accounts mentioned above to perform the submission and workflow steps. The admin account can perform the submission and all workflow steps as well.
- Once logged in, MyDSpace functionality is found in the user menu (upper right). Submissions can be started from that page, or via the "New → Item" admin menu (if logged in as an Admin)
- One you are done testing, you can stop the locally running DSpace 7 user interface via
Ctrl+C
...
The DSpace 7 installation process describes manually installing both the frontend (User Interface) and backend (REST API) of DSpace 7 on a local machine. The frontend and backend need not be installed on the same machine.
Keep in mind the installation process here may change prior to DSpace 7.0 final. This should be considered an early version of the installation process, and we welcome feedback or improvements to this documentationbe installed on the same machine.
Reporting Issues
As you try out If you discover an issue in DSpace 7, you may run across a bug, issue or oddity (afterall, it's still under active development). Here's how to report those so they get resolved before the final 7.0 releasehere's how to report it:
- First, if you aren't sure whether it's a bug or want advice, feel free to ask on Slack. The Slack or use one of our other available Support options.
- On Slack, the DSpace 7 development team uses the #angular-ui channel (for UI discussions) and #rest-api channel (for REST API discussions). Though even reporting it on #dev (general developer channel) is perfectly fine.
- If you are sure it's an issue, create a an issue ticket
- Frontend / User Interface issues (including accessibility issues) can be reported via GitHub Issues at https://github.com/DSpace/dspace-angular/issues
- Backend / REST API issues should be reported via JIRA: GitHub issues at https://jiragithub.lyrasis.orgcom/projectsDSpace/DSDSpace/issues
- (If you aren't sure where to report the issue, don't worry. Just report it via either route, and we'll move it to the proper place as needed.)
- Once it is reported, we'll analyze it and schedule it to be completed (based on priority). Please make sure to note how you found this issue and/or any steps to reproduce it.
...
- Translate DSpace 7. If you know another language (or two or three) and want to help us with our translations, see DSpace 7 Translation - Internationalization (i18n) - Localization (l10n)
- Help us improve the DSpace 7 Documentation. While we do our best to get our development team to write some basic Documentation for every new feature, we know that documentation is sometimes a bit technical or not as user friendly as it could be. (No offense to our developers, they are doing what they do best, help us build great new features!) If you are interested in helping us improve our Documentation, see DSpace 7 Documentation. We especially could use help writing new end user documentation (e.g. how to do ___ in the DSpace 7 user interface), as we have a brand new user interface!
- Help us fix bugs or review new features as they are built. If you are a bit more technical, we could use more developers willing to chip in on small bugs and/or do some quick testing (or review) of new GitHub Pull Requests. The more testers & bug fixers we have, the quicker we can move (as all Pull Requests require testing/review from at least 2 others). So, this sort of contribution can quite literally help us get DSpace 7 out the door more quickly! No prior Angular or Java experience is necessary (in fact, it's a great way to learn the code or gain such experience), but you should be OK with testing PRs and providing your feedback. Contact Tim Donohue or join a future DSpace 7 Working Group meeting.they are built. If you are a bit more technical, we could use more developers willing to chip in on small bugs and/or do some quick testing (or review) of new GitHub Pull Requests. See Testing DSpace 7 Pull Requests