/DMPOPIDoR

DMP OPIDoR code base. Forked from DMPRoadmap

Primary LanguageRubyMIT LicenseMIT

DMP OPIDoR

Actions Status Actions Status Actions Status Actions Status Actions Status

DMP Roadmap is a Data Management Planning tool. Management and development of DMP Roadmap is jointly provided by the Digital Curation Centre (DCC), http://www.dcc.ac.uk/, and the University of California Curation Center (UC3), http://www.cdlib.org/services/uc3/.

Requirements

  • Ruby 3.2.x
  • Rails 7.1.x
  • NodeJS LTS
  • PostgreSQL 12.x

Click here for the latest releases.

Pre-requisites

Roadmap is a Ruby on Rails application and you will need to have:

  • Ruby >= 3.1
  • Rails = 7.0
  • MySQL >= 5.0 OR PostgreSQL

Further detail on how to install Ruby on Rails applications are available from the Ruby on Rails site: http://rubyonrails.org.

L'application se lance par défaut en mode développement.

Developpment

Installation

See the Installation Guide on the Wiki.

Docker

Requirements

Installation

# init submodule
git submodule init && git submodule update
Directus

Default credentials: admin@example.com / changeme

# Create directus database
docker compose exec -it postgres sh -c "psql -U ${DB_USERNAME:-postgres} -c 'create database ${DIRECTUS_DATABASE:-directus};'"

# Copy database dump file in postgres container
docker compose cp ./directus/dump.sql postgres:/directus.sql

# Apply dump in database
docker compose exec -it postgres sh -c "psql -U ${DB_USERNAME:-postgres} ${DIRECTUS_DATABASE:-directus} < directus.sql"
Backup
# Dump directus database
docker compose exec -it postgres sh -c "pg_dump -U ${DB_USERNAME:-postgres} ${DIRECTUS_DATABASE:-directus}" > directus/dump.sql
Development mode
# build image
docker compose -f docker-compose.yml -f docker-compose-dev.yml --profile dev build dmpopidor

# Configure database connection for postgres (change postgres by mysql)
docker compose -f docker-compose.yml -f docker-compose-dev.yml --profile dev run --rm dmpopidor sh -c 'ruby bin/docker postgres'

# Setup database
docker compose -f docker-compose.yml -f docker-compose-dev.yml --profile dev run --rm dmpopidor sh -c 'bin/rails db:environment:set RAILS_ENV=development; ruby bin/docker db:setup'

# Run all services
docker compose -f docker-compose.yml -f docker-compose-dev.yml --profile dev up -d

Production mode

# build image
docker compose --profile prod build dmpopidor

# Configure database connection for postgres (change postgres by mysql)
docker compose --profile prod run --rm dmpopidor sh -c 'ruby bin/docker postgres'

# Setup database
docker compose --profile prod run --rm dmpopidor sh -c 'ruby bin/docker db:setup'

# Run all services
docker compose --profile prod up -d

The rails server is launched via puma behind a niginx, it is accessible at the url http://localhost:8080

Tests & Swagger/OpenAPI

The tests are run by rswag, which generates OpenAPI documentation based on these tests.

An rswag command is defined in the Procfile.dev file to generate the OpenAPI file.

You can generate the OpenAPI file and run the tests with the following command:

docker compose -f docker-compose.yml -f docker-compose-dev.yml --profile dev exec dmpopidor sh -c "RAILS_ENV=test rails rswag"

Troubleshooting

See the Troubleshooting Guide on the Wiki.

Support

Issues should be reported here on Github Issues Please be advised though that we can only provide limited support for your local installations. Any security patches and bugfixes will be applied to the most recent version, and we will endeavour to support migrations to the current release.

Contributing

If you would like to contribute to the project. Please follow these steps to submit a contribution:

  • Comment on the Github issue (or create one if one does not exist) and let us know that you're working on it.
  • Fork the project (if you have not already) or rebase your fork so that it is up to date with the current repository's 'development' branch
  • Create a new branch in your fork. This will ensure that you are able to work at your own pace and continue to pull in any updates made to this project.
  • Make your changes in the new branch
  • When you have finished your work, make sure that your version of the 'development' branch is still up to date with this project. Then merge your new branch into your 'development' branch.
  • Then create a new Pull Request (PR) from your branch to this project's 'development' branch in GitHub
  • The project team will then review your PR and communicate with you to convey any additional changes that would ensure that your work adheres to our guidelines.

See the Contribution Guide on the Wiki for more details.

License

The DMP Roadmap project uses the MIT License.