{"id":26447487,"url":"https://github.com/mycore-org/mir","last_synced_at":"2026-01-04T10:07:59.295Z","repository":{"id":13443666,"uuid":"74450076","full_name":"MyCoRe-Org/mir","owner":"MyCoRe-Org","description":"MyCoRe/MODS Institutional Repository","archived":false,"fork":false,"pushed_at":"2025-03-11T13:00:27.000Z","size":13908,"stargazers_count":14,"open_issues_count":24,"forks_count":7,"subscribers_count":14,"default_branch":"2024.06.x","last_synced_at":"2025-03-11T13:43:46.344Z","etag":null,"topics":["institutional-repository","mir","mods","mycore","research-data-repository"],"latest_commit_sha":null,"homepage":null,"language":"XSLT","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MyCoRe-Org.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-11-22T08:18:44.000Z","updated_at":"2025-03-05T07:13:29.000Z","dependencies_parsed_at":"2023-11-20T10:38:55.298Z","dependency_job_id":"0ac4ea4f-ab7e-4ff0-8871-6fd3df3d0563","html_url":"https://github.com/MyCoRe-Org/mir","commit_stats":null,"previous_names":[],"tags_count":50,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MyCoRe-Org%2Fmir","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MyCoRe-Org%2Fmir/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MyCoRe-Org%2Fmir/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MyCoRe-Org%2Fmir/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MyCoRe-Org","download_url":"https://codeload.github.com/MyCoRe-Org/mir/tar.gz/refs/heads/2024.06.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244236086,"owners_count":20420752,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["institutional-repository","mir","mods","mycore","research-data-repository"],"created_at":"2025-03-18T13:57:20.537Z","updated_at":"2026-01-04T10:07:59.290Z","avatar_url":"https://github.com/MyCoRe-Org.png","language":"XSLT","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MIR [![Build Status](https://travis-ci.org/MyCoRe-Org/mir.svg?branch=master)](https://travis-ci.org/MyCoRe-Org/mir) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/edf89bf4bb564a56b74aeb3d3e6474a4)](https://www.codacy.com/gh/MyCoRe-Org/mir/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=MyCoRe-Org/mir\u0026amp;utm_campaign=Badge_Grade)\nMIR (acronym for MyCoRe/MODS Institutional Repository) is an open source repository software that is build upon [MyCoRe](https://github.com/MyCoRe-Org/mycore) and [MODS](http://www.loc.gov/standards/mods/).\n\n\n## Installation instructions for developer\nDetailed instructions for application usage you can find on [MIR Documentation site](https://www.mycore.de/documentation/apps/mir/mir_install/).\n\nThis guide addresses developers. Thats why you run it in 'dev' profile!\n - run `mvn clean install -am -pl mir-webapp` in mir folder\n - add profile `dev` to your `.m2/settings.xml` including path to solr home and solr data  \n```\n    \u003cprofile\u003e\n      \u003cid\u003edev\u003c/id\u003e\n      \u003cactivation\u003e\n        \u003cactiveByDefault\u003etrue\u003c/activeByDefault\u003e\n      \u003c/activation\u003e\n      \u003cproperties\u003e\n        \u003cmir.solr.home\u003e${user.home}/.mycore/dev-mir/data/solr\u003c/mir.solr.home\u003e\n        \u003cmir.solr.data.dir\u003e${user.home}/.mycore/dev-mir/data/solr/data\u003c/mir.solr.data.dir\u003e\n      \u003c/properties\u003e\n    \u003c/profile\u003e\n```\n - To start Solr, go to `mir-webapp`\n   - Install Solr with the command: `mvn -Pdev solr-runner:copyHome`\n   - Run Solr with the command: `mvn -Pdev solr-runner:start`\n - To start up a servlet container as a development environment go back to `mir` folder\n   - Run `mvn install -am -pl mir-webapp \u0026\u0026 mvn -Pdev -Dtomcat org.codehaus.cargo:cargo-maven3-plugin:run -pl mir-webapp`\n   - Open `http://localhost:8291/mir` in your browser\n - To perform the guided initial configuration\n   - Use the login token from the server log to continue\n   - Use the SOLR server URL `http://localhost:8983`\n   - Use main core name `mir` and classification core name `mir-classifications`\n   - Check \"Create cores in Solr server via SolrCloud API\"\n   - Check \"Configure a user for Solr administration\", \"indexing in Solr\" and \"searching in Solr\"\n   - Enter usernames `admin`, `indexer` and `searcher` respectively and password `alleswirdgut` for all three users\n   - Select database type `H2`\n   - Continue and restart the servlet container as instructed\n   - Open `http://localhost:8291/mir` in your browser again\n   - Log in using username `administrator` and password `alleswirdgut`\n\nAfterward, you can stop Solr from the `mir-webapp` folder with `mvn -Pdev solr-runner:stop`.\nIf you need to update Solr cores, you can do this from the `mir-webapp` folder with `mvn -Pdev solr-runner:stop solr-runner:copyHome solr-runner:start`.\n\n**Notice**\n\nWhen switching from the 2023.06 branch to a newer version, make sure to run the following command to remove deprecated submodules from `mir-webapp/src/main`:\n```\ngit submodule deinit --all\n```\n\n## FAQ\n 1. Installation hangs while generating secret  \n    There is entropy missing for GPG key generation. For ubuntu eg. you can use rng-tools:  \n    `apt-get install rng-tools`  \n    `rngd -r /dev/urandom`\n 1. Can't export using bibtex button on metadata page  \n    install [bibutils](https://sourceforge.net/projects/bibutils/)\n 1. How can I use MyCoRe command line interface (not WebCLI)?  \n    `mir-cli/target/appassembler/bin/mir.sh`  \n    Set `JAVA_OPTS` environment variable to `-DMCR.DataPrefix=dev` before running.\n 1. How can I get more than one connection to h2?  \n    add `;AUTO_SERVER=TRUE` in jdbc url (configured in persistence.xml)\n\n## `mir` Docker-Container\nThe docker container has its own install script which uses the environment variables.\n\n### Environment Variables\n| Property                 | Default,  required  | Description                                                                                                                                                                                                                                                                          |\n|--------------------------|---------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ENABLE_SOLR_CLOUD        | false               | If true the Solr Cloud mode is enabled. (solr cores will be created on install)                                                                                                                                                                                                      |\n| SOLR_ADMIN_USER          | none                | The username for the Solr Admin. (will be used for admin commands like creating cores)                                                                                                                                                                                               |\n| SOLR_ADMIN_PASSWORD      | none                | The password for the Solr Admin.                                                                                                                                                                                                                                                     |\n| SOLR_INDEX_USER          | none                | The username for the Solr Indexer. (will be used for indexing)                                                                                                                                                                                                                       |\n| SOLR_INDEX_PASSWORD      | none                | The password for the Solr Indexer.                                                                                                                                                                                                                                                   |\n| SOLR_SEARCH_USER         | none                | The username for the Solr Searcher. (will be used for searching)                                                                                                                                                                                                                     |\n| SOLR_SEARCH_PASSWORD     | none                | The password for the Solr Searcher.                                                                                                                                                                                                                                                  |\n| TIKASERVER_URL           | none                | The URL to the Tika Server. Same as MCR.Solr.Tika.ServerURL in mycore.properties. (also sets `MCR.Solr.FileIndexStrategy` to `org.mycore.solr.index.file.tika.MCRTikaSolrFileStrategy`)                                                                                              |\n| SOLR_URL                 | none, required      | The URL to the SOLR Server. Same as MCR.Solr.ServerURL in mycore.properties.                                                                                                                                                                                                         |\n| SOLR_CORE                | mir                 | The name of the Solr main core. Same as MCR.Solr.Core.main.Name in mycore.properties.                                                                                                                                                                                                |\n| SOLR_CLASSIFICATION_CORE | mir-classifications | The name of the Solr classification core. Same as MCR.Solr.Core.classification.Name in mycore.properties.                                                                                                                                                                            |\n| JDBC_NAME                | none, required      | The username for the Database authentication. Same as javax.persistence.jdbc.user in persistence.xml.                                                                                                                                                                                |\n| JDBC_PASSWORD            | none, required      | The password for the Database authentication. Same as javax.persistence.jdbc.password in persistence.xml.                                                                                                                                                                            |\n| JDBC_DRIVER              | none, required      | The driver for the Database. Same as javax.persistence.jdbc.driver in persistence.xml.   If you use org.postgresql.Driver, org.mariadb.jdbc.Driver, org.hsqldb.jdbcDriver, org.h2.Driver or com.mysql.jdbc.Driver the right database drivers get downloaded by the installer script. |\n| JDBC_URL                 | none, required      | The url for the Database.                                                                                                                                                                                                                                                            |\n| JDBC_SCHEMA              | public              | The schema for the Database. Same as hibernate.default_schema in persistence.xml.                                                                                                                                                                                                    |\n| APP_CONTEXT              | mir                 | The url context in which the app lives. (The .war will be renamed to the $APP_CONTEXT.war)                                                                                                                                                                                           |\n| MCR_CONFIG_DIR           | /mcr/home/          | The location for the home directory. Same as the MCR.ConfigDir .                                                                                                                                                                                                                     |\n| MCR_DATA_DIR             | /mcr/data/          | The location for the data directory. Same as MCR.datadir in mycore.properties.                                                                                                                                                                                                       |\n| XMX                      | 1g                  | The value of the -Xmx parameter for Tomcat.                                                                                                                                                                                                                                          |\n| XMS                      | 1g                  | The value of the -Xms parameter for Tomcat.                                                                                                                                                                                                                                          |\n| FIX_FILE_SYSTEM_RIGHTS   | false               | If true the file system rights of the mounted volumes get corrected to be owned by the right user.                                                                                                                                                                                   |\n| MIR_OPTS                 |                     | Additional options which will be passed as JAVA_OPTS to the tomcat process                                                                                                                                                                                                           |\n| Property.\u0026lt;property name\u0026gt;|                | Variables beginning with `Property.` are automatically recognized and added to mycore.properties, e.g., `Property.MyProperty=Value`.                                                                                                                                                 |\n\n### Mount Points\n\nThe paths in `MCR_CONFIG_DIR` and `MCR_DATA_DIR` should be mounted. Default values are `/mcr/home/` and `/mcr/data/`.\nWhen starting the container the first time you may receive errors like\n`java.io.FileNotFoundException: /mcr/home/mycore.active.properties (Permission denied)` this is because the container \nruns as user `mcr` and the mounted volumes are owned by `root`.\nTo fix this you can set the docker property `FIX_FILE_SYSTEM_RIGHTS` to `true`. This will change the owner of the\nmounted volumes to `mcr` and the container will start without errors.\n\n## `mir-solr` Docker-Container\nThe docker container starts solr in cloud mode. It preconfigures the users with the environment variables (see table above).\n\n### Mount Points\n\nThe path `/var/solr/data` should be mounted, it contains all persistent data.\n\n## Docker-Compose\n\nThere is an [example docker-compose.yml](docker-compose.yml) which can be used for local development. \nThe ports and other settings can be changed in the [.env file](.env). You can use the commands:\n```shell\nmvn clean install -Pdev -Dtomcat clean install \u0026\u0026 docker-compose up --build\n```\n\nThere is another [example docker-compose.prod.yml](docker-compose.prod.yml) which uses prebuild images which are stored at [dockerhub](https://hub.docker.com/u/mycoreorg). \nYou can start them with the commands:\n```shell\ndocker-compose -f docker-compose.prod.yml up\n```\n\nIt's strongly recommended to add a reverse proxy like Apache or Nginx in front. \n\n## Git-Style-Guide\nFor the moment see [agis-:Git-Style-Guide](https://github.com/agis-/git-style-guide) and use it with the following exceptions:\n - Subject to commits is in form: `{JIRA-Ticket} {Ticket summary} {Commit summary}`, like `MIR-526 Git-Migration add .travis.yml`\n - Branch name to work on a ticket is in form: `issues/{JIRA-Ticket}-{Ticket_Summary}`, like `issues/MIR-526-Git_Migration`\n\nStay tuned for more information. :bow:\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmycore-org%2Fmir","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmycore-org%2Fmir","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmycore-org%2Fmir/lists"}