Application to transfer data from heterogeneous research data repositories into Open OnDemand. With the possibility of syncing the data back.
Creating the perfect loop for research data
The first remote repository integration is Dataverse. Dataverse will be used as the reference implementation for all features related to this application.
OnDemand Loop has been designed from the ground up to be a companion to the Open OnDemand application. It is deployed into the Open OnDemand environment as another passenger app. It has been configured to be deployed under the folder: /var/www/ood/apps/sys/loop
The OnDemand environment will launch the application in the same way as the Dashboard app. The URL will be https:///pun/sys/loop
This project is licensed under the MIT License.
The application has been designed to be installed as a OnDemand passenger app.
Ruby
NodeJS
The application has been built to work with the same Ruby and NodeJS requirements as Open OnDemand.
Select a version to deploy, we recommend to install the latest version To install the application as a system application, checkout the release into the OnDemand server sys folder and build the application:
cd /var/www/ood/apps/sys
git clone --branch v1.0.0#2025-06-06 --depth 1 https://github.com/IQSS/ondemand-loop.git loop
cd loop
./loop_build.sh
The build process simply install the dependencies into the vendor/bundle
application folder and compile the CSS and Javascript files.
Now launch the application: https://<your-server>/pun/sys/loop
To try the application locally or to update or create new features, we have created a Docker based local environment to build and run the application.
The required Docker images to build and run has been created and uploaded into the official DockerHub:
The versions used are referenced in the Makefile file
Ensure you have the following installed:
- Docker
- Docker Compose
make
(usually pre-installed on Linux/macOS, Windows users may need to install it via WSL or Git Bash)
The local environment uses Docker compose to start the following containers:
- Open OnDemand v3.1.7
- SMTP server
Docker compose will mount the local application
directory into the OOD /var/www/ood/apps/sys/loop
folder.
To run the application locally, build the application and start Docker compose. These commands have been abstracted into Make targets:
make loop_build
make loop_up
The local environment has configured a test user with the following credentials:
- username: ood
- password: ood
Launch the application: https://localhost:33000/pun/sys/loop
Launch OOD: https://localhost:33000/pun/sys/dashboard
Supported Open OnDemand versions:
- v3.1.7
- v3.1.14
- v4.0.0
- v4.0.6
# How to build and run for OODv3.1.14
make clean
make loop_build OOD_VERSION=3.1.14
make loop_up OOD_VERSION=3.1.14
β οΈ Self-Signed Certificate WarningWhen running the app locally, you will encounter a browser warning about the connection not being secure. This is because the development environment uses a self-signed SSL certificate. You can proceed safely by accepting the exception in your browser.
The following make
commands are available to manage the application locally:
Command | Description |
---|---|
make loop_docker_builder |
π³ Build the Docker image used for compiling the app. |
make loop_build |
ποΈ Install dependencies and build the application. |
make loop_up |
π Start the app and its dependencies in Docker containers. |
make loop_down |
β Stop and remove the Docker containers and networks. |
make clean |
π§Ή Remove build artifacts and logs. |
make logs |
π Tail the application logs. |
make bash |
π Open a shell inside the running container. |
make test |
π§ͺ Run the full test suite. |
make test_bash |
π¬ Open a shell in the test container. |
make remote_dev_build |
π οΈ Build the app for a remote development environment. |
make release_build |
π¦ Build the app for production release. |
make version |
π Bump the version file for releases. |
make release_notes |
π Generate release notes from Git history. |
make coverage |
π Update the coverage badges. |
make guide |
π Build this documentation with MkDocs. |
make guide_dev |
π Serve the documentation locally at http://localhost:8000 . |