{"id":21198769,"url":"https://github.com/natlibfi/recordmanager","last_synced_at":"2025-07-10T06:30:41.450Z","repository":{"id":2234845,"uuid":"3188618","full_name":"NatLibFi/RecordManager","owner":"NatLibFi","description":"A metadata record management system written in PHP, intended to be used in conjunction with VuFind or another Solr-based discovery interface. Provides import, export, harvesting (OAI-PMH), normalization, deduplication and Solr index update functionality with support for multiple metadata formats. Also includes an OAI-PMH provider that can be used to access the data stored in RecordManager database. Functionality driven by simple command line programs for easy automation.","archived":false,"fork":false,"pushed_at":"2025-06-12T10:50:53.000Z","size":5723,"stargazers_count":48,"open_issues_count":1,"forks_count":32,"subscribers_count":15,"default_branch":"dev","last_synced_at":"2025-06-12T11:51:56.440Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"wdi-hk-9/lab-node-express-mongo-modeling","license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NatLibFi.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2012-01-16T07:00:57.000Z","updated_at":"2025-06-12T10:50:58.000Z","dependencies_parsed_at":"2023-07-05T16:15:31.298Z","dependency_job_id":"6a5e6182-b0ec-4c98-a73c-6a066ce84dff","html_url":"https://github.com/NatLibFi/RecordManager","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/NatLibFi/RecordManager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NatLibFi%2FRecordManager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NatLibFi%2FRecordManager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NatLibFi%2FRecordManager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NatLibFi%2FRecordManager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NatLibFi","download_url":"https://codeload.github.com/NatLibFi/RecordManager/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NatLibFi%2FRecordManager/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264538580,"owners_count":23624436,"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":[],"created_at":"2024-11-20T19:53:21.187Z","updated_at":"2025-07-10T06:30:40.997Z","avatar_url":"https://github.com/NatLibFi.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RecordManager\n\nRecordManager is a metadata record management system intended to be used in conjunction with VuFind. It can also be used as an OAI-PMH repository and a generic metadata management utility.\n\nSee the [RecordManager wiki](https://github.com/NatLibFi/RecordManager/wiki) for more information and OAI-PMH provider setup.\n\nFor a stable version, see the stable branch.\n\n## General Installation\n\n- Minimum supported PHP version is 8.1.\n- Composer is required for dependencies. Run `composer install` (or `php /path/to/composer.phar install`) in the directory where RecordManager is installed.\n- The following PHP extensions are required: xml, xslt, mbstring, intl\n\n### Database Support\n\nRecordManager can be used with MySQL, MariaDB or MongoDB.\n\nWith MongoDB, the minimum supported version is 3.6. The mongodb PECL module, version 1.15.0 or later, is required (see below for examples on installation).\n\nMongoDB is recommended for a large number of records (typically tens of millions), though it may require more system resources than MySQL or MariaDB.\n\n## Upgrading\n\n**See CHANGELOG.md for information on changes and anything affecting backward-compatibility.**\n\nGenerally upgrading should be straightforward by replacing the old version with the new one and running\n`composer install` (or `php /path/to/composer.phar install`).\nWith MongoDB you need to manually check that all indexes are present (see dbscripts/mongo.js).\nWith MySQL/MariaDB make sure all tables are present (see dbscripts/mysql.sql).\n\n## Installation Notes on CentOS 7\n\nThese are quick instructions on how to set up RecordManager. Please refer to the [wiki pages](https://github.com/NatLibFi/RecordManager/wiki) for more information on the configuration and setup of RecordManager.\n\n- Required PHP packages: php php-pear php-xml php-xsl php-devel php-mbstring php-intl\n\n      yum install php php-pear php-xml php-devel php-mbstring php-intl\n\n- MongoDB support\n\n  RecordManager supports both MongoDB and any MySQL compatible database. You may opt\n  to skip the MongoDB requirements if you only use MySQL.\n\n  - Required pecl modules for MongoDB support: mongodb\n\n    E.g. remi repos include a package for mongodb:\n\n      yum install php81-php-pecl-mongodb\n\n    Webtatic too:\n\n      yum install php81w-pecl-mongodb\n\n    If there's no package available, use pecl to install mongodb:\n\n      yum install gcc make\n      pecl install mongodb\n\n    Either way, make sure it's at least v1.2.0. Earlier versions have problems with\n    pcntl.\n\n  - Add the extension=mongodb.so line to /etc/php.d/mongodb.ini\n\n  - Install MongoDB from 10gen repositories (see\n    http://www.mongodb.org/display/DOCS/CentOS+and+Fedora+Packages)\n\n  - Adjust MongoDB settings as needed\n\n- Copy RecordManager to /usr/local/RecordManager/\n\n- Run `composer install` to install PHP dependencies. If you did not install the\n  mongodb module above, you can also use `composer install --ignore-platform-reqs` to\n  force package installation even if the underlying dependencies are missing.\n\n- MongoDB: Create indexes with dbscripts/mongo.js\n\n      mongo recman dbscripts/mongo.js\n\n- MySQL: Create tables and indexes with dbscripts/mysql.sql and add a user\n\n      mysql\n      create database recman;\n      use recman\n      source dbscripts/mysql.sql;\n      create user 'recman'@'localhost' identified by '\u003cpassword\u003e';\n      grant all on recman.* to 'recman'@'localhost';\n\n- Copy conf/recordmanager.ini.sample to conf/recordmanager.ini and modify the settings to suit your needs.\n\n- Copy conf/datasources.ini.sample to conf/datasources.ini and modify the settings to suit your needs.\n\n- Start using the system by executing e.g.\n\n      ./console records:harvest --source=datasource_id\n\n  or\n\n      ./console records:import datasource_id filename\n\n- Deduplicate the records:\n\n      ./console records:deduplicate\n\n- Update Solr index:\n\n      ./console solr:update-index\n\n## Autocomplete for Commands (BASH only)\n\nSee `./console --help completion` to see how you can enable autocompletion of commands with bash.\n\n## Creating Additional Modules\n\nRecordManager supports modules that can modify and add new\nfunctionality. Active modules are specified in `conf/modules.config.php`. You can copy the provided `conf/modules.config.php.sample` to `conf/modules.config.php` and modify it accordingly.\n\nA minimal module (\"Sample\" in this example) consists of the following file:\n\n`src/RecordManager/Sample/Module.php`\n\nThe file needs to contain a Module class that provides the module configuration:\n\n    \u003c?php\n    namespace RecordManager\\Sample;\n\n    class Module\n    {\n        public function getConfig()\n        {\n            return [];\n        }\n    }\n\nThis, alone, doesn't really do anything. Please see the [Customizing RecordManager](https://github.com/NatLibFi/RecordManager/wiki/Customizing-RecordManager) wiki page for further information.\nSee also the [Finna module](https://github.com/NatLibFi/RecordManager-Finna/blob/dev/src/RecordManager/Finna/) for an example of a module that does a number of different things.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnatlibfi%2Frecordmanager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnatlibfi%2Frecordmanager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnatlibfi%2Frecordmanager/lists"}