From 29d8cff841c74647cc143751d3040a1dfd9c8a6f Mon Sep 17 00:00:00 2001 From: seth-shaw-asu <108362375+seth-shaw-asu@users.noreply.github.com> Date: Thu, 4 Jan 2024 18:11:05 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20Islandor?= =?UTF-8?q?a/documentation@d5372726c231c4ffc2e759dc9937cfecf02fd9ee=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 404.html | 44 +- alpaca/alpaca-technical-stack/index.html | 48 +- concepts/collection/index.html | 52 +- concepts/derivatives/index.html | 46 +- concepts/node-concepts/index.html | 48 +- concepts/node-media/index.html | 46 +- concepts/rdf/index.html | 48 +- concepts/starter-site/index.html | 46 +- contributing/CONTRIBUTING/index.html | 46 +- contributing/committers/index.html | 48 +- contributing/contributing-workflow/index.html | 48 +- contributing/create-issues/index.html | 2553 ++++++++++++ contributing/create_issues/index.html | 2564 +----------- contributing/docs-style-guide/index.html | 2567 +++++++++++++ contributing/docs_style_guide/index.html | 2578 +------------ contributing/editing-docs/index.html | 48 +- contributing/readme-template/index.html | 2513 ++++++++++++ contributing/readme_template/index.html | 2524 +----------- contributing/releasing-islandora/index.html | 46 +- contributing/sandbox/index.html | 46 +- index.html | 46 +- installation/component-overview/index.html | 2629 +++++++++++++ installation/component_overview/index.html | 2640 +------------ .../docker-available-commands/index.html | 46 +- .../docker-available-configuration/index.html | 46 +- installation/docker-basic-usage/index.html | 46 +- installation/docker-custom/index.html | 46 +- installation/docker-introduction/index.html | 46 +- installation/docker-local/index.html | 46 +- .../docker-maintain-drupal/index.html | 46 +- installation/docker-maintain-isle/index.html | 46 +- installation/docker-prereq/index.html | 46 +- .../docker-troubleshooting/index.html | 46 +- installation/install-a-demo/index.html | 48 +- .../manual/configuring-drupal/index.html | 2800 ++++++++++++++ .../manual/configuring_drupal/index.html | 2811 +------------- .../index.html | 2783 ++++++++++++++ .../manual/installing-crayfish/index.html | 3011 +++++++++++++++ .../index.html | 3408 ++++++++++++++++ .../installing-karaf-and-alpaca/index.html | 3059 +++++++++++++++ .../manual/installing-solr/index.html | 2753 +++++++++++++ .../index.html | 2778 ++++++++++++++ .../index.html | 2794 +------------- .../manual/installing_crayfish/index.html | 3022 +-------------- .../index.html | 3419 +---------------- .../installing_karaf_and_alpaca/index.html | 3070 +-------------- .../manual/installing_solr/index.html | 2764 +------------ .../index.html | 2789 +------------- installation/manual/introduction/index.html | 48 +- .../manual/preparing-a-webserver/index.html | 2740 +++++++++++++ .../manual/preparing_a_webserver/index.html | 2751 +------------ installation/playbook/index.html | 46 +- installation/site-template/index.html | 46 +- models/audio/index.html | 48 +- models/video/index.html | 48 +- placeholder/index.html | 46 +- release_notes/8.x-2.0/index.html | 154 +- search/search_index.json | 2 +- sitemap.xml | 254 +- sitemap.xml.gz | Bin 1224 -> 1219 bytes .../adding-format-jsonld/index.html | 2523 ++++++++++++ .../adding_format_jsonld/index.html | 2534 +----------- .../alpaca-tips/index.html | 2635 +++++++++++++ .../alpaca_tips/index.html | 2646 +------------ .../checking-coding-standards/index.html | 46 +- technical-documentation/diagram/index.html | 48 +- technical-documentation/docs-build/index.html | 55 +- .../install-enable-drupal-modules/index.html | 48 +- technical-documentation/migrate-7x/index.html | 46 +- .../migrate-csv/index.html | 46 +- .../migration-islandora-workbench/index.html | 46 +- .../migration-migrate-api/index.html | 46 +- .../migration-overview/index.html | 48 +- .../migration-rest-api/index.html | 46 +- .../ppa-documentation/index.html | 50 +- .../resizing-vm/index.html | 2541 ++++++++++++ .../resizing_vm/index.html | 2552 +----------- .../rest-authorization/index.html | 46 +- .../rest-create/index.html | 46 +- .../rest-delete/index.html | 46 +- technical-documentation/rest-get/index.html | 46 +- technical-documentation/rest-patch/index.html | 46 +- .../rest-signposting/index.html | 46 +- .../running-automated-tests/index.html | 46 +- .../testing-notes/index.html | 50 +- .../updating-drupal/index.html | 2638 +++++++++++++ .../updating_drupal/index.html | 2649 +------------ .../using-rest-endpoints/index.html | 46 +- technical-documentation/versioning/index.html | 48 +- tutorials/blocks/index.html | 50 +- tutorials/create-a-resource-node/index.html | 48 +- tutorials/create-update-views/index.html | 2620 +++++++++++++ tutorials/create_update_views/index.html | 2631 +------------ tutorials/how-to-create-collection/index.html | 48 +- tutorials/switch-homepage-to-twig/index.html | 2510 ++++++++++++ tutorials/switch_homepage_to_twig/index.html | 2521 +----------- user-documentation/access-control/index.html | 46 +- user-documentation/accessibility/index.html | 46 +- user-documentation/advanced-search/index.html | 46 +- user-documentation/content-models/index.html | 2826 ++++++++++++++ user-documentation/content-types/index.html | 2780 ++++++++++++++ user-documentation/content_models/index.html | 2837 +------------- user-documentation/content_types/index.html | 2791 +------------- user-documentation/context/index.html | 48 +- user-documentation/extending/index.html | 50 +- user-documentation/faceting/index.html | 46 +- user-documentation/file-viewers/index.html | 2619 +++++++++++++ user-documentation/file_viewers/index.html | 2630 +------------ user-documentation/flysystem/index.html | 46 +- user-documentation/glossary/index.html | 46 +- user-documentation/iiif/index.html | 48 +- .../jwt-authentication/index.html | 46 +- user-documentation/linked-data/index.html | 3167 +++++++++++++++ user-documentation/linked_data/index.html | 3178 +-------------- user-documentation/media/index.html | 46 +- .../metadata-harvesting/index.html | 2590 +++++++++++++ user-documentation/metadata/index.html | 56 +- .../metadata_harvesting/index.html | 2601 +------------ user-documentation/multilingual/index.html | 46 +- user-documentation/paged-content/index.html | 48 +- .../recipes/alexa-search/index.html | 2493 ++++++++++++ .../recipes/alexa_search/index.html | 2504 +----------- user-documentation/searching/index.html | 48 +- user-documentation/transcripts/index.html | 46 +- .../uploading-large-files/index.html | 46 +- user-documentation/usage-stats/index.html | 46 +- user-documentation/user-intro/index.html | 48 +- user-documentation/users/index.html | 46 +- user-documentation/versioning.wiki | 24 + user-documentation/versioning/index.html | 46 +- user-documentation/video-docs/index.html | 48 +- 131 files changed, 67871 insertions(+), 67570 deletions(-) create mode 100644 contributing/create-issues/index.html create mode 100644 contributing/docs-style-guide/index.html create mode 100644 contributing/readme-template/index.html create mode 100644 installation/component-overview/index.html create mode 100644 installation/manual/configuring-drupal/index.html create mode 100644 installation/manual/installing-composer-drush-and-drupal/index.html create mode 100644 installation/manual/installing-crayfish/index.html create mode 100644 installation/manual/installing-fedora-syn-and-blazegraph/index.html create mode 100644 installation/manual/installing-karaf-and-alpaca/index.html create mode 100644 installation/manual/installing-solr/index.html create mode 100644 installation/manual/installing-tomcat-and-cantaloupe/index.html create mode 100644 installation/manual/preparing-a-webserver/index.html create mode 100644 technical-documentation/adding-format-jsonld/index.html create mode 100644 technical-documentation/alpaca-tips/index.html create mode 100644 technical-documentation/resizing-vm/index.html create mode 100644 technical-documentation/updating-drupal/index.html create mode 100644 tutorials/create-update-views/index.html create mode 100644 tutorials/switch-homepage-to-twig/index.html create mode 100644 user-documentation/content-models/index.html create mode 100644 user-documentation/content-types/index.html create mode 100644 user-documentation/file-viewers/index.html create mode 100644 user-documentation/linked-data/index.html create mode 100644 user-documentation/metadata-harvesting/index.html create mode 100644 user-documentation/recipes/alexa-search/index.html create mode 100644 user-documentation/versioning.wiki diff --git a/404.html b/404.html index 4910ce021..3f27bf891 100644 --- a/404.html +++ b/404.html @@ -468,7 +468,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -828,7 +828,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -842,7 +842,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -856,7 +856,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -870,7 +870,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -884,7 +884,7 @@
  • - + Installing Solr
  • @@ -898,7 +898,7 @@
  • - + Installing Crayfish
  • @@ -912,7 +912,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -926,7 +926,7 @@
  • - + Configuring Drupal
  • @@ -1024,7 +1024,7 @@
  • - + Modify or Create a Content Type
  • @@ -1052,7 +1052,7 @@
  • - + Create or Update a View
  • @@ -1170,7 +1170,7 @@
  • - + Content models
  • @@ -1198,7 +1198,7 @@
  • - + Linked data
  • @@ -1212,7 +1212,7 @@
  • - + Metadata harvesting
  • @@ -1350,7 +1350,7 @@
  • - + File viewers
  • @@ -1642,7 +1642,7 @@
  • - + Stack Overview
  • @@ -1843,7 +1843,7 @@
  • - + Alpaca Tips
  • @@ -1912,7 +1912,7 @@
  • - + Resizing a VM
  • @@ -1926,7 +1926,7 @@
  • - + Updating Drupal
  • @@ -1954,7 +1954,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2178,7 +2178,7 @@
  • - + Creating GitHub Issues
  • @@ -2248,7 +2248,7 @@
  • - + Documentation Style Guide
  • diff --git a/alpaca/alpaca-technical-stack/index.html b/alpaca/alpaca-technical-stack/index.html index 6dbee047e..2ec36363e 100644 --- a/alpaca/alpaca-technical-stack/index.html +++ b/alpaca/alpaca-technical-stack/index.html @@ -16,7 +16,7 @@ - + @@ -479,7 +479,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -839,7 +839,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -853,7 +853,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -867,7 +867,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -881,7 +881,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -895,7 +895,7 @@
  • - + Installing Solr
  • @@ -909,7 +909,7 @@
  • - + Installing Crayfish
  • @@ -923,7 +923,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -937,7 +937,7 @@
  • - + Configuring Drupal
  • @@ -1035,7 +1035,7 @@
  • - + Modify or Create a Content Type
  • @@ -1063,7 +1063,7 @@
  • - + Create or Update a View
  • @@ -1181,7 +1181,7 @@
  • - + Content models
  • @@ -1209,7 +1209,7 @@
  • - + Linked data
  • @@ -1223,7 +1223,7 @@
  • - + Metadata harvesting
  • @@ -1361,7 +1361,7 @@
  • - + File viewers
  • @@ -1655,7 +1655,7 @@
  • - + Stack Overview
  • @@ -1933,7 +1933,7 @@
  • - + Alpaca Tips
  • @@ -2002,7 +2002,7 @@
  • - + Resizing a VM
  • @@ -2016,7 +2016,7 @@
  • - + Updating Drupal
  • @@ -2044,7 +2044,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2268,7 +2268,7 @@
  • - + Creating GitHub Issues
  • @@ -2338,7 +2338,7 @@
  • - + Documentation Style Guide
  • @@ -2511,7 +2511,7 @@

    ReferencesNovember 1, 2023 + January 4, 2024 diff --git a/concepts/collection/index.html b/concepts/collection/index.html index 88db65f98..65ae44c4a 100644 --- a/concepts/collection/index.html +++ b/concepts/collection/index.html @@ -550,7 +550,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -910,7 +910,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -924,7 +924,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -938,7 +938,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -952,7 +952,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -966,7 +966,7 @@
  • - + Installing Solr
  • @@ -980,7 +980,7 @@
  • - + Installing Crayfish
  • @@ -994,7 +994,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -1008,7 +1008,7 @@
  • - + Configuring Drupal
  • @@ -1106,7 +1106,7 @@
  • - + Modify or Create a Content Type
  • @@ -1134,7 +1134,7 @@
  • - + Create or Update a View
  • @@ -1252,7 +1252,7 @@
  • - + Content models
  • @@ -1280,7 +1280,7 @@
  • - + Linked data
  • @@ -1294,7 +1294,7 @@
  • - + Metadata harvesting
  • @@ -1432,7 +1432,7 @@
  • - + File viewers
  • @@ -1724,7 +1724,7 @@
  • - + Stack Overview
  • @@ -1925,7 +1925,7 @@
  • - + Alpaca Tips
  • @@ -1994,7 +1994,7 @@
  • - + Resizing a VM
  • @@ -2008,7 +2008,7 @@
  • - + Updating Drupal
  • @@ -2036,7 +2036,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2260,7 +2260,7 @@
  • - + Creating GitHub Issues
  • @@ -2330,7 +2330,7 @@
  • - + Documentation Style Guide
  • @@ -2482,7 +2482,7 @@

    CollectionsIslandora features

    Islandora provides:

    @@ -2490,8 +2490,8 @@

    Islandora Starter Site featuresIslandora Starter Site is an optional set of presets for Islandora, intended to provide a more user-friendly out-of-the-box experience and starting point for more specific customization.

    Islandora Starter Site provides:

    For more details, see the tutorial on How to create and add to a collection

    @@ -2524,7 +2524,7 @@

    Permissions on a CollectionNovember 1, 2023 + January 4, 2024 diff --git a/concepts/derivatives/index.html b/concepts/derivatives/index.html index 4b13eb54b..9ec454645 100644 --- a/concepts/derivatives/index.html +++ b/concepts/derivatives/index.html @@ -564,7 +564,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -924,7 +924,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -938,7 +938,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -952,7 +952,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -966,7 +966,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -980,7 +980,7 @@
  • - + Installing Solr
  • @@ -994,7 +994,7 @@
  • - + Installing Crayfish
  • @@ -1008,7 +1008,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -1022,7 +1022,7 @@
  • - + Configuring Drupal
  • @@ -1120,7 +1120,7 @@
  • - + Modify or Create a Content Type
  • @@ -1148,7 +1148,7 @@
  • - + Create or Update a View
  • @@ -1266,7 +1266,7 @@
  • - + Content models
  • @@ -1294,7 +1294,7 @@
  • - + Linked data
  • @@ -1308,7 +1308,7 @@
  • - + Metadata harvesting
  • @@ -1446,7 +1446,7 @@
  • - + File viewers
  • @@ -1738,7 +1738,7 @@
  • - + Stack Overview
  • @@ -1939,7 +1939,7 @@
  • - + Alpaca Tips
  • @@ -2008,7 +2008,7 @@
  • - + Resizing a VM
  • @@ -2022,7 +2022,7 @@
  • - + Updating Drupal
  • @@ -2050,7 +2050,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2274,7 +2274,7 @@
  • - + Creating GitHub Issues
  • @@ -2344,7 +2344,7 @@
  • - + Documentation Style Guide
  • @@ -2650,7 +2650,7 @@

    Derivative Swimlane DiagramNovember 1, 2023 + January 4, 2024 diff --git a/concepts/node-concepts/index.html b/concepts/node-concepts/index.html index 78cee7754..6eeb72a4a 100644 --- a/concepts/node-concepts/index.html +++ b/concepts/node-concepts/index.html @@ -543,7 +543,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -903,7 +903,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -917,7 +917,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -931,7 +931,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -945,7 +945,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -959,7 +959,7 @@
  • - + Installing Solr
  • @@ -973,7 +973,7 @@
  • - + Installing Crayfish
  • @@ -987,7 +987,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -1001,7 +1001,7 @@
  • - + Configuring Drupal
  • @@ -1099,7 +1099,7 @@
  • - + Modify or Create a Content Type
  • @@ -1127,7 +1127,7 @@
  • - + Create or Update a View
  • @@ -1245,7 +1245,7 @@
  • - + Content models
  • @@ -1273,7 +1273,7 @@
  • - + Linked data
  • @@ -1287,7 +1287,7 @@
  • - + Metadata harvesting
  • @@ -1425,7 +1425,7 @@
  • - + File viewers
  • @@ -1717,7 +1717,7 @@
  • - + Stack Overview
  • @@ -1918,7 +1918,7 @@
  • - + Alpaca Tips
  • @@ -1987,7 +1987,7 @@
  • - + Resizing a VM
  • @@ -2001,7 +2001,7 @@
  • - + Updating Drupal
  • @@ -2029,7 +2029,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2253,7 +2253,7 @@
  • - + Creating GitHub Issues
  • @@ -2323,7 +2323,7 @@
  • - + Documentation Style Guide
  • @@ -2475,7 +2475,7 @@

    Nodes can have members/childrenNodes have models

    Within a single content type (i.e. metadata profile), Islandora provides the ability to designate some objects as different "types" than others. Key behaviours, such as what derivatives are created -or what viewer is used, can be configured +or what viewer is used, can be configured (see Contexts) based on this value. The available values are taxonomy terms in the Islandora Models vocabulary, and they are attached to nodes via the special mandatory field, "Model" (field_model), which must be present on all Islandora content types. @@ -2553,7 +2553,7 @@

    Nodes are attached to MediaNovember 1, 2023 + January 4, 2024 diff --git a/concepts/node-media/index.html b/concepts/node-media/index.html index b1fd4e5bd..84ef0978a 100644 --- a/concepts/node-media/index.html +++ b/concepts/node-media/index.html @@ -543,7 +543,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -903,7 +903,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -917,7 +917,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -931,7 +931,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -945,7 +945,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -959,7 +959,7 @@
  • - + Installing Solr
  • @@ -973,7 +973,7 @@
  • - + Installing Crayfish
  • @@ -987,7 +987,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -1001,7 +1001,7 @@
  • - + Configuring Drupal
  • @@ -1099,7 +1099,7 @@
  • - + Modify or Create a Content Type
  • @@ -1127,7 +1127,7 @@
  • - + Create or Update a View
  • @@ -1245,7 +1245,7 @@
  • - + Content models
  • @@ -1273,7 +1273,7 @@
  • - + Linked data
  • @@ -1287,7 +1287,7 @@
  • - + Metadata harvesting
  • @@ -1425,7 +1425,7 @@
  • - + File viewers
  • @@ -1717,7 +1717,7 @@
  • - + Stack Overview
  • @@ -1918,7 +1918,7 @@
  • - + Alpaca Tips
  • @@ -1987,7 +1987,7 @@
  • - + Resizing a VM
  • @@ -2001,7 +2001,7 @@
  • - + Updating Drupal
  • @@ -2029,7 +2029,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2253,7 +2253,7 @@
  • - + Creating GitHub Issues
  • @@ -2323,7 +2323,7 @@
  • - + Documentation Style Guide
  • @@ -2552,7 +2552,7 @@

    Media have different usesNovember 1, 2023 + January 4, 2024 diff --git a/concepts/rdf/index.html b/concepts/rdf/index.html index b95a088ed..c14c93787 100644 --- a/concepts/rdf/index.html +++ b/concepts/rdf/index.html @@ -543,7 +543,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -903,7 +903,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -917,7 +917,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -931,7 +931,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -945,7 +945,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -959,7 +959,7 @@
  • - + Installing Solr
  • @@ -973,7 +973,7 @@
  • - + Installing Crayfish
  • @@ -987,7 +987,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -1001,7 +1001,7 @@
  • - + Configuring Drupal
  • @@ -1099,7 +1099,7 @@
  • - + Modify or Create a Content Type
  • @@ -1127,7 +1127,7 @@
  • - + Create or Update a View
  • @@ -1245,7 +1245,7 @@
  • - + Content models
  • @@ -1273,7 +1273,7 @@
  • - + Linked data
  • @@ -1287,7 +1287,7 @@
  • - + Metadata harvesting
  • @@ -1425,7 +1425,7 @@
  • - + File viewers
  • @@ -1717,7 +1717,7 @@
  • - + Stack Overview
  • @@ -1918,7 +1918,7 @@
  • - + Alpaca Tips
  • @@ -1987,7 +1987,7 @@
  • - + Resizing a VM
  • @@ -2001,7 +2001,7 @@
  • - + Updating Drupal
  • @@ -2029,7 +2029,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2253,7 +2253,7 @@
  • - + Creating GitHub Issues
  • @@ -2323,7 +2323,7 @@
  • - + Documentation Style Guide
  • @@ -2480,7 +2480,7 @@

    Mapping to RDF (RDF Module)RDF Mappings +added using hook_rdf_namespaces(). See RDF Mappings for more details.

    Exposure as JSON-LD

    Nodes, Media, and taxonomy terms can have their RDF (per their mappings) @@ -2503,7 +2503,7 @@

    Syncing to Fedora and Blazegraph Last update: - November 1, 2023 + January 4, 2024 diff --git a/concepts/starter-site/index.html b/concepts/starter-site/index.html index 436019fc1..509d7cb4b 100644 --- a/concepts/starter-site/index.html +++ b/concepts/starter-site/index.html @@ -491,7 +491,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -851,7 +851,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -865,7 +865,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -879,7 +879,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -893,7 +893,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -907,7 +907,7 @@
  • - + Installing Solr
  • @@ -921,7 +921,7 @@
  • - + Installing Crayfish
  • @@ -935,7 +935,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -949,7 +949,7 @@
  • - + Configuring Drupal
  • @@ -1047,7 +1047,7 @@
  • - + Modify or Create a Content Type
  • @@ -1075,7 +1075,7 @@
  • - + Create or Update a View
  • @@ -1193,7 +1193,7 @@
  • - + Content models
  • @@ -1221,7 +1221,7 @@
  • - + Linked data
  • @@ -1235,7 +1235,7 @@
  • - + Metadata harvesting
  • @@ -1373,7 +1373,7 @@
  • - + File viewers
  • @@ -1665,7 +1665,7 @@
  • - + Stack Overview
  • @@ -1866,7 +1866,7 @@
  • - + Alpaca Tips
  • @@ -1935,7 +1935,7 @@
  • - + Resizing a VM
  • @@ -1949,7 +1949,7 @@
  • - + Updating Drupal
  • @@ -1977,7 +1977,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2201,7 +2201,7 @@
  • - + Creating GitHub Issues
  • @@ -2271,7 +2271,7 @@
  • - + Documentation Style Guide
  • @@ -2389,7 +2389,7 @@

    Islandora Starter Site Last update: - November 1, 2023 + January 4, 2024 diff --git a/contributing/CONTRIBUTING/index.html b/contributing/CONTRIBUTING/index.html index fae10576c..1070251f7 100644 --- a/contributing/CONTRIBUTING/index.html +++ b/contributing/CONTRIBUTING/index.html @@ -479,7 +479,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -839,7 +839,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -853,7 +853,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -867,7 +867,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -881,7 +881,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -895,7 +895,7 @@
  • - + Installing Solr
  • @@ -909,7 +909,7 @@
  • - + Installing Crayfish
  • @@ -923,7 +923,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -937,7 +937,7 @@
  • - + Configuring Drupal
  • @@ -1035,7 +1035,7 @@
  • - + Modify or Create a Content Type
  • @@ -1063,7 +1063,7 @@
  • - + Create or Update a View
  • @@ -1181,7 +1181,7 @@
  • - + Content models
  • @@ -1209,7 +1209,7 @@
  • - + Linked data
  • @@ -1223,7 +1223,7 @@
  • - + Metadata harvesting
  • @@ -1361,7 +1361,7 @@
  • - + File viewers
  • @@ -1653,7 +1653,7 @@
  • - + Stack Overview
  • @@ -1854,7 +1854,7 @@
  • - + Alpaca Tips
  • @@ -1923,7 +1923,7 @@
  • - + Resizing a VM
  • @@ -1937,7 +1937,7 @@
  • - + Updating Drupal
  • @@ -1965,7 +1965,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2267,7 +2267,7 @@
  • - + Creating GitHub Issues
  • @@ -2337,7 +2337,7 @@
  • - + Documentation Style Guide
  • @@ -2529,7 +2529,7 @@

    Contributor License AgreementsNovember 1, 2023 + January 4, 2024 diff --git a/contributing/committers/index.html b/contributing/committers/index.html index db0fa86a7..ac6df9089 100644 --- a/contributing/committers/index.html +++ b/contributing/committers/index.html @@ -13,7 +13,7 @@ - + @@ -479,7 +479,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -839,7 +839,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -853,7 +853,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -867,7 +867,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -881,7 +881,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -895,7 +895,7 @@
  • - + Installing Solr
  • @@ -909,7 +909,7 @@
  • - + Installing Crayfish
  • @@ -923,7 +923,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -937,7 +937,7 @@
  • - + Configuring Drupal
  • @@ -1035,7 +1035,7 @@
  • - + Modify or Create a Content Type
  • @@ -1063,7 +1063,7 @@
  • - + Create or Update a View
  • @@ -1181,7 +1181,7 @@
  • - + Content models
  • @@ -1209,7 +1209,7 @@
  • - + Linked data
  • @@ -1223,7 +1223,7 @@
  • - + Metadata harvesting
  • @@ -1361,7 +1361,7 @@
  • - + File viewers
  • @@ -1653,7 +1653,7 @@
  • - + Stack Overview
  • @@ -1854,7 +1854,7 @@
  • - + Alpaca Tips
  • @@ -1923,7 +1923,7 @@
  • - + Resizing a VM
  • @@ -1937,7 +1937,7 @@
  • - + Updating Drupal
  • @@ -1965,7 +1965,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2191,7 +2191,7 @@
  • - + Creating GitHub Issues
  • @@ -2261,7 +2261,7 @@
  • - + Documentation Style Guide
  • @@ -2782,7 +2782,7 @@

    Process for inducting new Committe Last update: - November 1, 2023 + January 4, 2024 diff --git a/contributing/contributing-workflow/index.html b/contributing/contributing-workflow/index.html index b1a79449b..f9b5777dc 100644 --- a/contributing/contributing-workflow/index.html +++ b/contributing/contributing-workflow/index.html @@ -16,7 +16,7 @@ - + @@ -479,7 +479,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -839,7 +839,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -853,7 +853,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -867,7 +867,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -881,7 +881,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -895,7 +895,7 @@
  • - + Installing Solr
  • @@ -909,7 +909,7 @@
  • - + Installing Crayfish
  • @@ -923,7 +923,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -937,7 +937,7 @@
  • - + Configuring Drupal
  • @@ -1035,7 +1035,7 @@
  • - + Modify or Create a Content Type
  • @@ -1063,7 +1063,7 @@
  • - + Create or Update a View
  • @@ -1181,7 +1181,7 @@
  • - + Content models
  • @@ -1209,7 +1209,7 @@
  • - + Linked data
  • @@ -1223,7 +1223,7 @@
  • - + Metadata harvesting
  • @@ -1361,7 +1361,7 @@
  • - + File viewers
  • @@ -1653,7 +1653,7 @@
  • - + Stack Overview
  • @@ -1854,7 +1854,7 @@
  • - + Alpaca Tips
  • @@ -1923,7 +1923,7 @@
  • - + Resizing a VM
  • @@ -1937,7 +1937,7 @@
  • - + Updating Drupal
  • @@ -1965,7 +1965,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2246,7 +2246,7 @@
  • - + Creating GitHub Issues
  • @@ -2316,7 +2316,7 @@
  • - + Documentation Style Guide
  • @@ -2527,7 +2527,7 @@

    Development Workflow:November 1, 2023 + January 4, 2024 diff --git a/contributing/create-issues/index.html b/contributing/create-issues/index.html new file mode 100644 index 000000000..0ae4144eb --- /dev/null +++ b/contributing/create-issues/index.html @@ -0,0 +1,2553 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Creating GitHub Issues - Islandora + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + + + + + + + + + + +

    Create a GitHub Issue

    +

    Overview

    +

    The Islandora community uses GitHub issues to track bug reports, requests for improvements, requests for new features, and use cases. Issues are welcome from anyone who works with Islandora.

    +

    The Islandora issue queue is maintained in the Islandora Documentation repository on GitHub. Issues posted to the queue are reviewed weekly on the Islandora Tech Call. Members of the Islandora community can then respond to posted issues by replying with comments, taking on the assignment to do the work described in the issue, or making pull requests relating to the issue.

    +
    +

    Video version available

    +

    The material in this tutorial is presented in our video, Create a GitHub Issue.

    +
    +

    Before you start

    +
      +
    • You will need to have an account on GitHub. These are free to register and require only a name and email address.
    • +
    +

    How to create an issue in the Islandora issue queue

    +
      +
    1. Go to https://github.com/Islandora/documentation/issues
    2. +
    3. Click on New issue: +New Issue button
    4. +
    5. Select the type of issue you are creating, as this will provide you with a template to describe your issue. +Bug report, Documentation, Feature Request, and Use case are presented as possible issue templates when opening a new issue.
    6. +
    7. +

      Fill in the information for your issue:

      +
        +
      1. Give your issue a descriptive title following the text that is already provided in the template title, ex. [BUG].
      2. +
      3. Fill in the body of your issue under the Write tab. A template of questions will be provided based on the type of issue selected. Depending on your issue, you may need to: describe a bug you are seeing and how to reproduce it, describe how an existing feature could be improved, describe a new feature and how it should work, or describe documentation that needs to be written or expanded.
      4. +
      5. Use the built-in text editor to help format your issue in Markdown.
      6. +
      7. Use the Preview button to see how your issue will be published and ensure the formatting looks the way you want.
      8. +
      9. Click Submit new issue to add your issue to the queue.
      10. +
      11. Optionally, Add labels to your issue to assign it to available categories, such as "documentation" or "question." Click on as may labels as you like. When you click outside of the drop-down list, the selected labels will be applied to your issue.
      12. +
      +

      Gif walkthrough of templates Labels on the right sidebar of Github issue creation

      +
    8. +
    + +
    +
    + + + Last update: + January 4, 2024 + + + +
    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/contributing/create_issues/index.html b/contributing/create_issues/index.html index 0ef63f5e3..c38c313a4 100644 --- a/contributing/create_issues/index.html +++ b/contributing/create_issues/index.html @@ -1,2553 +1,15 @@ - - - - - - - - - - - - - - - - - - - - - - - - Creating GitHub Issues - Islandora - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - Skip to content - - -
    -
    - -
    - - - - -
    - - -
    - -
    - - - - - - -
    -
    - - - -
    -
    -
    - - - - -
    -
    -
    - - - -
    -
    -
    - - - -
    -
    -
    - - - -
    -
    - - - - - - - - - - - - - -

    Create a GitHub Issue

    -

    Overview

    -

    The Islandora community uses GitHub issues to track bug reports, requests for improvements, requests for new features, and use cases. Issues are welcome from anyone who works with Islandora.

    -

    The Islandora issue queue is maintained in the Islandora Documentation repository on GitHub. Issues posted to the queue are reviewed weekly on the Islandora Tech Call. Members of the Islandora community can then respond to posted issues by replying with comments, taking on the assignment to do the work described in the issue, or making pull requests relating to the issue.

    -
    -

    Video version available

    -

    The material in this tutorial is presented in our video, Create a GitHub Issue.

    -
    -

    Before you start

    -
      -
    • You will need to have an account on GitHub. These are free to register and require only a name and email address.
    • -
    -

    How to create an issue in the Islandora issue queue

    -
      -
    1. Go to https://github.com/Islandora/documentation/issues
    2. -
    3. Click on New issue: -New Issue button
    4. -
    5. Select the type of issue you are creating, as this will provide you with a template to describe your issue. -Bug report, Documentation, Feature Request, and Use case are presented as possible issue templates when opening a new issue.
    6. -
    7. -

      Fill in the information for your issue:

      -
        -
      1. Give your issue a descriptive title following the text that is already provided in the template title, ex. [BUG].
      2. -
      3. Fill in the body of your issue under the Write tab. A template of questions will be provided based on the type of issue selected. Depending on your issue, you may need to: describe a bug you are seeing and how to reproduce it, describe how an existing feature could be improved, describe a new feature and how it should work, or describe documentation that needs to be written or expanded.
      4. -
      5. Use the built-in text editor to help format your issue in Markdown.
      6. -
      7. Use the Preview button to see how your issue will be published and ensure the formatting looks the way you want.
      8. -
      9. Click Submit new issue to add your issue to the queue.
      10. -
      11. Optionally, Add labels to your issue to assign it to available categories, such as "documentation" or "question." Click on as may labels as you like. When you click outside of the drop-down list, the selected labels will be applied to your issue.
      12. -
      -

      Gif walkthrough of templates Labels on the right sidebar of Github issue creation

      -
    8. -
    - -
    -
    - - - Last update: - November 1, 2023 - - - -
    - - - - - - -
    -
    - - -
    - -
    - - - -
    -
    -
    -
    - - - - - - - - - \ No newline at end of file + + + + Redirecting... + + + + + + +Redirecting... + + diff --git a/contributing/docs-style-guide/index.html b/contributing/docs-style-guide/index.html new file mode 100644 index 000000000..119daf6af --- /dev/null +++ b/contributing/docs-style-guide/index.html @@ -0,0 +1,2567 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Documentation Style Guide - Islandora + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + + + + + + + + + + +

    Documentation Style Guide

    +

    Do's

    +
      +
    • Use a GitHub Pull Request to submit documentation. +
    • +
    • Make it clear if the documentation is based on a particular configuration (such as the Install Profile Demo) or if it applies to any deployment of Islandora.
    • +
    • +

      Submit documentation formatted in Markdown format.

      +
        +
      • Include a top-level heading for the whole page (using #)
      • +
      • Please add Markdown headings (# and ##) to the content sections.
      • +
      +
    • +
    • +

      Use the "bold/emphasis" style in Markdown by enclosing text in double asterisks or underscores, **bold text** or __bold text__, for UI elements that users will interact with. For example, a button label for a button that must be pressed should be made bold in Markdown.

      +
    • +
    • Use the "italics" style in Markdown by enclosing text in single asterisks or underscores, *italic text* or _italic text_, for UI elements that have a label or title if you need to reference them in the documentation. For example, a title of a screen or page that will visit should be made italic in Markdown.
    • +
    • Use >> and **bold text** to indicate clicking through nested menu items, and also include the direct path. Example: +
      **Administration** >> **Structure** >> **Views** (/admin/structure/views)
      +
    • +
    • Use - instead of * for bulleted lists. Indent four (4) spaces for nested lists (Github renders nesting in markdown with 2 spaces, but mkdocs needs 4). +Example: +
      - I am a list item
      +    - And I am a sub-item.
      +
    • +
    • Upload images to the 'assets' folder and reference them from there.
        +
      • For file naming, use underscores between words and prefix all file names with the page name, e.g. context_display_hints.jpg for the image showing how to set display hints in the context menu.
      • +
      +
    • +
    • Use the Admonition syntax to create notes like this (four-space indent required):
    • +
    +

    Example:

    +
    !!! note "Helpful Tip"
    +    I am a helpful tip!
    +
    +

    Result:

    +
    +

    Helpful Tip

    +

    I am a helpful tip!

    +
    +
      +
    • Use our custom islandora type within the Admonition syntax to call attention to areas where Islandora configuration differs from standard Drupal configuration:
    • +
    +

    Example:

    +
    !!! islandora "Lobster trap"
    +    This setting is specific to Islandora and is not standard to Drupal.
    +
    +

    Result:

    +
    +

    Lobster trap

    +

    This setting is specific to Islandora and is not standard to Drupal.

    +
    +

    Don'ts

    +
      +
    • Do not leave any "trailing spaces" at the end of lines of content.
    • +
    • Do not use "curly" quotes and apostrophes, use only "straight" quotes and apostrophes.
    • +
    • Do not upload images that are excessively large in file size (remember, these docs are part of the software!)
    • +
    + +
    +
    + + + Last update: + January 4, 2024 + + + +
    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/contributing/docs_style_guide/index.html b/contributing/docs_style_guide/index.html index ce8092e61..058d8f357 100644 --- a/contributing/docs_style_guide/index.html +++ b/contributing/docs_style_guide/index.html @@ -1,2567 +1,15 @@ - - - - - - - - - - - - - - - - - - - - - - - - Documentation Style Guide - Islandora - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - Skip to content - - -
    -
    - -
    - - - - -
    - - -
    - -
    - - - - - - -
    -
    - - - -
    -
    -
    - - - - -
    -
    -
    - - - -
    -
    -
    - - - -
    -
    -
    - - - -
    -
    - - - - - - - - - - - - - -

    Documentation Style Guide

    -

    Do's

    -
      -
    • Use a GitHub Pull Request to submit documentation. -
    • -
    • Make it clear if the documentation is based on a particular configuration (such as the Install Profile Demo) or if it applies to any deployment of Islandora.
    • -
    • -

      Submit documentation formatted in Markdown format.

      -
        -
      • Include a top-level heading for the whole page (using #)
      • -
      • Please add Markdown headings (# and ##) to the content sections.
      • -
      -
    • -
    • -

      Use the "bold/emphasis" style in Markdown by enclosing text in double asterisks or underscores, **bold text** or __bold text__, for UI elements that users will interact with. For example, a button label for a button that must be pressed should be made bold in Markdown.

      -
    • -
    • Use the "italics" style in Markdown by enclosing text in single asterisks or underscores, *italic text* or _italic text_, for UI elements that have a label or title if you need to reference them in the documentation. For example, a title of a screen or page that will visit should be made italic in Markdown.
    • -
    • Use >> and **bold text** to indicate clicking through nested menu items, and also include the direct path. Example: -
      **Administration** >> **Structure** >> **Views** (/admin/structure/views)
      -
    • -
    • Use - instead of * for bulleted lists. Indent four (4) spaces for nested lists (Github renders nesting in markdown with 2 spaces, but mkdocs needs 4). -Example: -
      - I am a list item
      -    - And I am a sub-item.
      -
    • -
    • Upload images to the 'assets' folder and reference them from there.
        -
      • For file naming, use underscores between words and prefix all file names with the page name, e.g. context_display_hints.jpg for the image showing how to set display hints in the context menu.
      • -
      -
    • -
    • Use the Admonition syntax to create notes like this (four-space indent required):
    • -
    -

    Example:

    -
    !!! note "Helpful Tip"
    -    I am a helpful tip!
    -
    -

    Result:

    -
    -

    Helpful Tip

    -

    I am a helpful tip!

    -
    -
      -
    • Use our custom islandora type within the Admonition syntax to call attention to areas where Islandora configuration differs from standard Drupal configuration:
    • -
    -

    Example:

    -
    !!! islandora "Lobster trap"
    -    This setting is specific to Islandora and is not standard to Drupal.
    -
    -

    Result:

    -
    -

    Lobster trap

    -

    This setting is specific to Islandora and is not standard to Drupal.

    -
    -

    Don'ts

    -
      -
    • Do not leave any "trailing spaces" at the end of lines of content.
    • -
    • Do not use "curly" quotes and apostrophes, use only "straight" quotes and apostrophes.
    • -
    • Do not upload images that are excessively large in file size (remember, these docs are part of the software!)
    • -
    - -
    -
    - - - Last update: - November 1, 2023 - - - -
    - - - - - - -
    -
    - - -
    - -
    - - - -
    -
    -
    -
    - - - - - - - - - \ No newline at end of file + + + + Redirecting... + + + + + + +Redirecting... + + diff --git a/contributing/editing-docs/index.html b/contributing/editing-docs/index.html index 8d8b7c845..3ca6ce4e7 100644 --- a/contributing/editing-docs/index.html +++ b/contributing/editing-docs/index.html @@ -479,7 +479,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -839,7 +839,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -853,7 +853,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -867,7 +867,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -881,7 +881,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -895,7 +895,7 @@
  • - + Installing Solr
  • @@ -909,7 +909,7 @@
  • - + Installing Crayfish
  • @@ -923,7 +923,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -937,7 +937,7 @@
  • - + Configuring Drupal
  • @@ -1035,7 +1035,7 @@
  • - + Modify or Create a Content Type
  • @@ -1063,7 +1063,7 @@
  • - + Create or Update a View
  • @@ -1181,7 +1181,7 @@
  • - + Content models
  • @@ -1209,7 +1209,7 @@
  • - + Linked data
  • @@ -1223,7 +1223,7 @@
  • - + Metadata harvesting
  • @@ -1361,7 +1361,7 @@
  • - + File viewers
  • @@ -1653,7 +1653,7 @@
  • - + Stack Overview
  • @@ -1854,7 +1854,7 @@
  • - + Alpaca Tips
  • @@ -1923,7 +1923,7 @@
  • - + Resizing a VM
  • @@ -1937,7 +1937,7 @@
  • - + Updating Drupal
  • @@ -1965,7 +1965,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2191,7 +2191,7 @@
  • - + Creating GitHub Issues
  • @@ -2323,7 +2323,7 @@
  • - + Documentation Style Guide
  • @@ -2479,7 +2479,7 @@

    Before you startIslandora Documentation Style Guide. +
  • follow the Islandora Documentation Style Guide.
  • have either an individual Contributor License Agreement (CLA) on file with the Islandora Foundation, or work for an organization that has a corporate Contributor License Agreement on file with the Islandora Foundation. @@ -2538,7 +2538,7 @@

    How to edit docume Last update: - November 1, 2023 + January 4, 2024 diff --git a/contributing/readme-template/index.html b/contributing/readme-template/index.html new file mode 100644 index 000000000..4f124570d --- /dev/null +++ b/contributing/readme-template/index.html @@ -0,0 +1,2513 @@ + + + + + + + + + + + + + + + + + + + + + + Readme template - Islandora + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    + +
    + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + + + + + + + + + + +
    # ![Alt text](Mascot Image) Repository Name
    +
    +[![Minimum PHP Version](link)](link)
    +[![Build Status](link)](link)
    +[![Contribution Guidelines](http://img.shields.io/badge/CONTRIBUTING-Guidelines-blue.svg)](./CONTRIBUTING.md)
    +[![LICENSE](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](./LICENSE)
    +[![codecov](link)](link)
    +
    +## Introduction
    +
    +A brief introduction and summary of the module.
    +
    +## Requirements
    +
    +This module requires the following modules/libraries:
    +
    +* [Name](Link)
    +* [Name](Link)
    +* Any
    +* Requirements
    +
    +## Installation
    +
    +Installations instructions.
    +
    +## Configuration
    +
    +Describe path to configuration.
    +
    +Include a screenshot of configuration page. When using your choice of screenshot software, resize your browser
    +first to avoid wide screenshots. Here are a few browser extension examples to take screenshots.
    +
    +  - [Fireshots](https://chrome.google.com/webstore/detail/take-webpage-screenshots/mcbpblocgmgfnpjjppndjkmgjaogfceg)
    +  - [Nimbus](https://chrome.google.com/webstore/detail/nimbus-screenshot-screen/bpconcjcammlapcogcnnelfmaeghhagj)
    +
    +To upload the image drag the image into the comment section of an existing Pull Request.
    +
    +This will generate the image URL link for you
    +  ![Configuration Screenshot](https://user-images.githubusercontent.com/2857697/39014759-e2ef9c1e-43e0-11e8-921c-c2a3234d65d2.jpg)
    +
    +Video example on [How to attach an Image in README.md file with Github](https://youtu.be/wVHJtL-y7P0)
    +
    +
    +## Other Sections As Needed
    +
    +Sections specific to this repo, but not found in all repos, should go here.
    +
    +## Documentation
    +
    +Further documentation for this module is available on the [Islandora documentation site](https://islandora.github.io/documentation/).
    +
    +## Troubleshooting/Issues
    +
    +Having problems or solved a problem? Check out the Islandora google groups for a solution.
    +
    +- [Islandora Group](https://groups.google.com/forum/?hl=en&fromgroups#!forum/islandora)
    +- [Islandora Dev Group](https://groups.google.com/forum/?hl=en&fromgroups#!forum/islandora-dev)
    +
    +## FAQ
    +
    +Q. Is this normal?
    +
    +A. Yes. This is normal. Why ...
    +
    +## Maintainers/Sponsors
    +
    +Current maintainers:
    +
    +- [Maintainer Name](https://github.com/maintainer_github)
    +- [Another Maintainer](https://github.com/maintainer_github)
    +
    +This project has been sponsored by:
    +
    +- Some really awesome sponsor
    +
    +## Development
    +
    +If you would like to contribute, please get involved by attending our weekly [Tech Call](https://github.com/Islandora/documentation/wiki). We love to hear from you!
    +
    +If you would like to contribute code to the project, you need to be covered by an Islandora Foundation [Contributor License Agreement](https://drive.google.com/file/d/1k6eCM5EV-w4I4ErkiGj4NJwvLnXkejyk/view?usp=sharing) or [Corporate Contributor License Agreement](https://drive.google.com/file/d/1-SQYuHWRxvltQYgkFWpYv7nGbvJp1u8h/view?usp=sharing). Please see the [Contributors](https://github.com/Islandora/islandora-community/wiki/Onboarding-Checklist) pages on Islandora.ca for more information.
    +
    +We recommend using the [islandora-playbook](https://github.com/Islandora-Devops/islandora-playbook) to get started.  If you want to pull down the submodules for development, don't forget to run git submodule update --init --recursive after cloning.
    +
    +Also include any Travis gotcha's here.
    +
    +## License
    +
    +[Name](link). GPLv2 for Drupal modules. MIT for other modules.
    +
    + +
    +
    + + + Last update: + January 4, 2024 + + + +
    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/contributing/readme_template/index.html b/contributing/readme_template/index.html index 2a91d9de2..97dad4aff 100644 --- a/contributing/readme_template/index.html +++ b/contributing/readme_template/index.html @@ -1,2513 +1,15 @@ - - - - - - - - - - - - - - - - - - - - Readme template - Islandora - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - - - - -
    - - -
    - -
    - - - - - - -
    -
    - - - -
    -
    -
    - - - - -
    -
    -
    - - - -
    -
    -
    - - - -
    -
    -
    - - - -
    -
    - - - - - - - - - - - - - -
    # ![Alt text](Mascot Image) Repository Name
    -
    -[![Minimum PHP Version](link)](link)
    -[![Build Status](link)](link)
    -[![Contribution Guidelines](http://img.shields.io/badge/CONTRIBUTING-Guidelines-blue.svg)](./CONTRIBUTING.md)
    -[![LICENSE](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](./LICENSE)
    -[![codecov](link)](link)
    -
    -## Introduction
    -
    -A brief introduction and summary of the module.
    -
    -## Requirements
    -
    -This module requires the following modules/libraries:
    -
    -* [Name](Link)
    -* [Name](Link)
    -* Any
    -* Requirements
    -
    -## Installation
    -
    -Installations instructions.
    -
    -## Configuration
    -
    -Describe path to configuration.
    -
    -Include a screenshot of configuration page. When using your choice of screenshot software, resize your browser
    -first to avoid wide screenshots. Here are a few browser extension examples to take screenshots.
    -
    -  - [Fireshots](https://chrome.google.com/webstore/detail/take-webpage-screenshots/mcbpblocgmgfnpjjppndjkmgjaogfceg)
    -  - [Nimbus](https://chrome.google.com/webstore/detail/nimbus-screenshot-screen/bpconcjcammlapcogcnnelfmaeghhagj)
    -
    -To upload the image drag the image into the comment section of an existing Pull Request.
    -
    -This will generate the image URL link for you
    -  ![Configuration Screenshot](https://user-images.githubusercontent.com/2857697/39014759-e2ef9c1e-43e0-11e8-921c-c2a3234d65d2.jpg)
    -
    -Video example on [How to attach an Image in README.md file with Github](https://youtu.be/wVHJtL-y7P0)
    -
    -
    -## Other Sections As Needed
    -
    -Sections specific to this repo, but not found in all repos, should go here.
    -
    -## Documentation
    -
    -Further documentation for this module is available on the [Islandora documentation site](https://islandora.github.io/documentation/).
    -
    -## Troubleshooting/Issues
    -
    -Having problems or solved a problem? Check out the Islandora google groups for a solution.
    -
    -- [Islandora Group](https://groups.google.com/forum/?hl=en&fromgroups#!forum/islandora)
    -- [Islandora Dev Group](https://groups.google.com/forum/?hl=en&fromgroups#!forum/islandora-dev)
    -
    -## FAQ
    -
    -Q. Is this normal?
    -
    -A. Yes. This is normal. Why ...
    -
    -## Maintainers/Sponsors
    -
    -Current maintainers:
    -
    -- [Maintainer Name](https://github.com/maintainer_github)
    -- [Another Maintainer](https://github.com/maintainer_github)
    -
    -This project has been sponsored by:
    -
    -- Some really awesome sponsor
    -
    -## Development
    -
    -If you would like to contribute, please get involved by attending our weekly [Tech Call](https://github.com/Islandora/documentation/wiki). We love to hear from you!
    -
    -If you would like to contribute code to the project, you need to be covered by an Islandora Foundation [Contributor License Agreement](https://drive.google.com/file/d/1k6eCM5EV-w4I4ErkiGj4NJwvLnXkejyk/view?usp=sharing) or [Corporate Contributor License Agreement](https://drive.google.com/file/d/1-SQYuHWRxvltQYgkFWpYv7nGbvJp1u8h/view?usp=sharing). Please see the [Contributors](https://github.com/Islandora/islandora-community/wiki/Onboarding-Checklist) pages on Islandora.ca for more information.
    -
    -We recommend using the [islandora-playbook](https://github.com/Islandora-Devops/islandora-playbook) to get started.  If you want to pull down the submodules for development, don't forget to run git submodule update --init --recursive after cloning.
    -
    -Also include any Travis gotcha's here.
    -
    -## License
    -
    -[Name](link). GPLv2 for Drupal modules. MIT for other modules.
    -
    - -
    -
    - - - Last update: - November 1, 2023 - - - -
    - - - - - - -
    -
    - - -
    - -
    - - - -
    -
    -
    -
    - - - - - - - - - \ No newline at end of file + + + + Redirecting... + + + + + + +Redirecting... + + diff --git a/contributing/releasing-islandora/index.html b/contributing/releasing-islandora/index.html index 832d0a3d9..b00941bf1 100644 --- a/contributing/releasing-islandora/index.html +++ b/contributing/releasing-islandora/index.html @@ -479,7 +479,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -839,7 +839,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -853,7 +853,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -867,7 +867,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -881,7 +881,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -895,7 +895,7 @@
  • - + Installing Solr
  • @@ -909,7 +909,7 @@
  • - + Installing Crayfish
  • @@ -923,7 +923,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -937,7 +937,7 @@
  • - + Configuring Drupal
  • @@ -1035,7 +1035,7 @@
  • - + Modify or Create a Content Type
  • @@ -1063,7 +1063,7 @@
  • - + Create or Update a View
  • @@ -1181,7 +1181,7 @@
  • - + Content models
  • @@ -1209,7 +1209,7 @@
  • - + Linked data
  • @@ -1223,7 +1223,7 @@
  • - + Metadata harvesting
  • @@ -1361,7 +1361,7 @@
  • - + File viewers
  • @@ -1653,7 +1653,7 @@
  • - + Stack Overview
  • @@ -1854,7 +1854,7 @@
  • - + Alpaca Tips
  • @@ -1923,7 +1923,7 @@
  • - + Resizing a VM
  • @@ -1937,7 +1937,7 @@
  • - + Updating Drupal
  • @@ -1965,7 +1965,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2191,7 +2191,7 @@
  • - + Creating GitHub Issues
  • @@ -2446,7 +2446,7 @@
  • - + Documentation Style Guide
  • @@ -2892,7 +2892,7 @@

    Undoing a ReleaseNovember 1, 2023 + January 4, 2024 diff --git a/contributing/sandbox/index.html b/contributing/sandbox/index.html index 2bc0899b0..1c45d970e 100644 --- a/contributing/sandbox/index.html +++ b/contributing/sandbox/index.html @@ -479,7 +479,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -839,7 +839,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -853,7 +853,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -867,7 +867,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -881,7 +881,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -895,7 +895,7 @@
  • - + Installing Solr
  • @@ -909,7 +909,7 @@
  • - + Installing Crayfish
  • @@ -923,7 +923,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -937,7 +937,7 @@
  • - + Configuring Drupal
  • @@ -1035,7 +1035,7 @@
  • - + Modify or Create a Content Type
  • @@ -1063,7 +1063,7 @@
  • - + Create or Update a View
  • @@ -1181,7 +1181,7 @@
  • - + Content models
  • @@ -1209,7 +1209,7 @@
  • - + Linked data
  • @@ -1223,7 +1223,7 @@
  • - + Metadata harvesting
  • @@ -1361,7 +1361,7 @@
  • - + File viewers
  • @@ -1653,7 +1653,7 @@
  • - + Stack Overview
  • @@ -1854,7 +1854,7 @@
  • - + Alpaca Tips
  • @@ -1923,7 +1923,7 @@
  • - + Resizing a VM
  • @@ -1937,7 +1937,7 @@
  • - + Updating Drupal
  • @@ -1965,7 +1965,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2191,7 +2191,7 @@
  • - + Creating GitHub Issues
  • @@ -2261,7 +2261,7 @@
  • - + Documentation Style Guide
  • @@ -2453,7 +2453,7 @@

    Maintaining the back-end containers Last update: - November 1, 2023 + January 4, 2024 diff --git a/index.html b/index.html index 364dfeba2..ef29703ee 100644 --- a/index.html +++ b/index.html @@ -559,7 +559,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -919,7 +919,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -933,7 +933,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -947,7 +947,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -961,7 +961,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -975,7 +975,7 @@
  • - + Installing Solr
  • @@ -989,7 +989,7 @@
  • - + Installing Crayfish
  • @@ -1003,7 +1003,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -1017,7 +1017,7 @@
  • - + Configuring Drupal
  • @@ -1115,7 +1115,7 @@
  • - + Modify or Create a Content Type
  • @@ -1143,7 +1143,7 @@
  • - + Create or Update a View
  • @@ -1261,7 +1261,7 @@
  • - + Content models
  • @@ -1289,7 +1289,7 @@
  • - + Linked data
  • @@ -1303,7 +1303,7 @@
  • - + Metadata harvesting
  • @@ -1441,7 +1441,7 @@
  • - + File viewers
  • @@ -1733,7 +1733,7 @@
  • - + Stack Overview
  • @@ -1934,7 +1934,7 @@
  • - + Alpaca Tips
  • @@ -2003,7 +2003,7 @@
  • - + Resizing a VM
  • @@ -2017,7 +2017,7 @@
  • - + Updating Drupal
  • @@ -2045,7 +2045,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2269,7 +2269,7 @@
  • - + Creating GitHub Issues
  • @@ -2339,7 +2339,7 @@
  • - + Documentation Style Guide
  • @@ -2534,7 +2534,7 @@

    Join the CommunityNovember 1, 2023 + January 4, 2024 diff --git a/installation/component-overview/index.html b/installation/component-overview/index.html new file mode 100644 index 000000000..065f49dab --- /dev/null +++ b/installation/component-overview/index.html @@ -0,0 +1,2629 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Stack Overview - Islandora + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + + + + + +
    +
    + + + + + + + + + + + + + +

    Component Overview

    +

    A functioning Islandora Stack is made up of dozens of components working in synchronization with each other to store information in your repository, manage that information, and disseminate it intelligently to users. Whether running an installation using the provided Ansible playbook or installing the stack manually, it may be helpful to have a brief overview of all the components we're going to need, in the order we're going to install them, as well as a brief introduction to each component's installation and configuration process.

    +

    This list includes four different kinds of components:

    +
      +
    • Components which are hard-required (such as Drupal and the Islandora module)
    • +
    • Components for which defaults are provided but which can be swapped out (such as the software managing databases, or the repository's storage system)
    • +
    • Components that can't easily be swapped out but are not necessarily required (such as using Solr as the site's internal search engine)
    • +
    • Components which do not have official alternatives and are not necessarily required, but will likely exist on the vast majority of Islandora installations (such as Alpaca and Crayfish)
    • +
    +

    The Webserver Stack - Apache, PHP, and MySQL/PostgreSQL

    +

    Combined together, Apache, PHP, and MySQL/PostgreSQL comprise a LAMP or LAPP server used to provide end-user-facing components - namely, the website.

    +

    Apache is the webserver that will serve up webpages to the public. It will also manage some internal functionality provided by Crayfish, and will expose Cantaloupe to the public. We’ll be making changes to the VirtualHost entry, enabling some modules, and modifying the ports configuration. The VirtualHost entry will eventually be modified when we need to expose other services like Cantaloupe to the public.

    +

    PHP is the runtime interpreter for all the code Drupal and Crayfish need to be processed. By default, installing PHP 7.2 will give us a command-line interpreter, as well as an interpreter for Apache. We’re going to install several PHP modules required and/or useful for the components that make use of PHP.

    +

    MySQL and PostgreSQL are database management systems that we will use to store information for many different components like Drupal and Fedora. By default, the Ansible playbook installs MySQL, though this can be switched to PostgreSQL. The manual installation guide recommends and walks through installing and using PostgreSQL.

    +

    The Front-Facing CDM - Composer, Drush, and Drupal

    +

    Composer will be used to install both Drupal and Drush simultaneously using Islandora's fork of the drupal-project repository.

    +

    Composer is an installer and dependency manager for PHP projects. We're going to need it to install components for any PHP code we need to make use of, including Drupal and Crayfish.

    +

    Drush and Drupal are installed simultaneously using drupal-project. Drupal will serve up webpages and manage Islandora content, and Drush will help us get some things done from the command-line.

    +

    The Web Application Server - Tomcat and Cantaloupe

    +

    Several applets will be deployed via their .war files into Tomcat, including Fedora and Cantaloupe.

    +

    Tomcat serves up webpages and other kinds of content much like Apache, but is specifically designed to deploy Java applications as opposed to running PHP code.

    +

    Cantaloupe is an image tileserver that Islandora will connect to and use to serve up extremely large images in a way that doesn't have an adverse effect on the overall system.

    +

    The Back-End File Management Repository - Fedora, Syn, and Blazegraph

    +

    Fedora will be installed in its own section, rather than as part of the Tomcat installation, as the installation process is rather involved and requires some authorization pieces to be set up in order to connect them back to Drupal and other components.

    +

    Fedora is the default backend repository that Islandora content will be synchronized with and stored in. A great deal of configuration will be required to get it up and running, including ensuring a database is created and accessible.

    +

    Syn is the authorization piece that allows Fedora to connect to other components.

    +

    Blazegraph will store representative graph data about the repository that can be queried using SPARQL. Some configuration will also be required to link it back to Fedora, as well as to ensure it is being properly indexed.

    +

    The Search Engine - Solr and search_api_solr

    +

    The installation of Solr itself is rather straightforward, but a configuration will have to be generated and applied from the Drupal side.

    +

    Solr will be installed as a standalone application. Nothing of particular importance needs to happen here; the configuration will be applied when search_api_solr is installed.

    +

    search_api_solr is the Drupal module that implements the Solr API for Drupal-side searches. After installing and configuring the module, the drush solr-gsc command will be used to generate Solr configs, and these configs will be moved to the Solr configuration location.

    +

    The Asynchronous Background Services - Crayfish

    +

    Crayfish is a series of microservices that perform different asynchronous tasks kicked off by Islandora. It contains a series of submodules that will be installed via Composer. Later, these configured components will be connected to Alpaca.

    +

    The Broker Connecting Everything - Karaf and Alpaca

    +

    Karaf’s job is similar to Tomcat, except where Tomcat is a web-accessible endpoint for Java applets, Karaf is simply meant to be a container for system-level applets to communicate via its OSGI. Alpaca is one such applet; it will broker messages between Fedora and Drupal, and between Drupal and various derivative generation applications.

    +

    Alpaca contains Karaf services to manage moving information between Islandora, Fedora, and Blazegraph as well as kicking off derivative services in Crayfish. These will be configured to broker between Drupal and Fedora using an ActiveMQ queue.

    +

    Finalized Drupal Configurations

    +

    Drupal configuration exists as a series of .yaml files that can either be created in a feature, or exported from Drupal using the content_sync module. It can also be manually entered in via the UI. We're going to place configuration in a few different ways; Some content will be synchronized onto the site, and some core configurations from the main Islandora module will need to be run in order to facilitate ingest.

    + +
    +
    + + + Last update: + January 4, 2024 + + + +
    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/installation/component_overview/index.html b/installation/component_overview/index.html index 04c7f05a0..a314883ef 100644 --- a/installation/component_overview/index.html +++ b/installation/component_overview/index.html @@ -1,2629 +1,15 @@ - - - - - - - - - - - - - - - - - - - - - - - - Stack Overview - Islandora - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - Skip to content - - -
    -
    - -
    - - - - -
    - - -
    - -
    - - - - - - -
    -
    - - - -
    -
    -
    - - - - -
    -
    -
    - - - - - - - -
    -
    - - - - - - - - - - - - - -

    Component Overview

    -

    A functioning Islandora Stack is made up of dozens of components working in synchronization with each other to store information in your repository, manage that information, and disseminate it intelligently to users. Whether running an installation using the provided Ansible playbook or installing the stack manually, it may be helpful to have a brief overview of all the components we're going to need, in the order we're going to install them, as well as a brief introduction to each component's installation and configuration process.

    -

    This list includes four different kinds of components:

    -
      -
    • Components which are hard-required (such as Drupal and the Islandora module)
    • -
    • Components for which defaults are provided but which can be swapped out (such as the software managing databases, or the repository's storage system)
    • -
    • Components that can't easily be swapped out but are not necessarily required (such as using Solr as the site's internal search engine)
    • -
    • Components which do not have official alternatives and are not necessarily required, but will likely exist on the vast majority of Islandora installations (such as Alpaca and Crayfish)
    • -
    -

    The Webserver Stack - Apache, PHP, and MySQL/PostgreSQL

    -

    Combined together, Apache, PHP, and MySQL/PostgreSQL comprise a LAMP or LAPP server used to provide end-user-facing components - namely, the website.

    -

    Apache is the webserver that will serve up webpages to the public. It will also manage some internal functionality provided by Crayfish, and will expose Cantaloupe to the public. We’ll be making changes to the VirtualHost entry, enabling some modules, and modifying the ports configuration. The VirtualHost entry will eventually be modified when we need to expose other services like Cantaloupe to the public.

    -

    PHP is the runtime interpreter for all the code Drupal and Crayfish need to be processed. By default, installing PHP 7.2 will give us a command-line interpreter, as well as an interpreter for Apache. We’re going to install several PHP modules required and/or useful for the components that make use of PHP.

    -

    MySQL and PostgreSQL are database management systems that we will use to store information for many different components like Drupal and Fedora. By default, the Ansible playbook installs MySQL, though this can be switched to PostgreSQL. The manual installation guide recommends and walks through installing and using PostgreSQL.

    -

    The Front-Facing CDM - Composer, Drush, and Drupal

    -

    Composer will be used to install both Drupal and Drush simultaneously using Islandora's fork of the drupal-project repository.

    -

    Composer is an installer and dependency manager for PHP projects. We're going to need it to install components for any PHP code we need to make use of, including Drupal and Crayfish.

    -

    Drush and Drupal are installed simultaneously using drupal-project. Drupal will serve up webpages and manage Islandora content, and Drush will help us get some things done from the command-line.

    -

    The Web Application Server - Tomcat and Cantaloupe

    -

    Several applets will be deployed via their .war files into Tomcat, including Fedora and Cantaloupe.

    -

    Tomcat serves up webpages and other kinds of content much like Apache, but is specifically designed to deploy Java applications as opposed to running PHP code.

    -

    Cantaloupe is an image tileserver that Islandora will connect to and use to serve up extremely large images in a way that doesn't have an adverse effect on the overall system.

    -

    The Back-End File Management Repository - Fedora, Syn, and Blazegraph

    -

    Fedora will be installed in its own section, rather than as part of the Tomcat installation, as the installation process is rather involved and requires some authorization pieces to be set up in order to connect them back to Drupal and other components.

    -

    Fedora is the default backend repository that Islandora content will be synchronized with and stored in. A great deal of configuration will be required to get it up and running, including ensuring a database is created and accessible.

    -

    Syn is the authorization piece that allows Fedora to connect to other components.

    -

    Blazegraph will store representative graph data about the repository that can be queried using SPARQL. Some configuration will also be required to link it back to Fedora, as well as to ensure it is being properly indexed.

    -

    The Search Engine - Solr and search_api_solr

    -

    The installation of Solr itself is rather straightforward, but a configuration will have to be generated and applied from the Drupal side.

    -

    Solr will be installed as a standalone application. Nothing of particular importance needs to happen here; the configuration will be applied when search_api_solr is installed.

    -

    search_api_solr is the Drupal module that implements the Solr API for Drupal-side searches. After installing and configuring the module, the drush solr-gsc command will be used to generate Solr configs, and these configs will be moved to the Solr configuration location.

    -

    The Asynchronous Background Services - Crayfish

    -

    Crayfish is a series of microservices that perform different asynchronous tasks kicked off by Islandora. It contains a series of submodules that will be installed via Composer. Later, these configured components will be connected to Alpaca.

    -

    The Broker Connecting Everything - Karaf and Alpaca

    -

    Karaf’s job is similar to Tomcat, except where Tomcat is a web-accessible endpoint for Java applets, Karaf is simply meant to be a container for system-level applets to communicate via its OSGI. Alpaca is one such applet; it will broker messages between Fedora and Drupal, and between Drupal and various derivative generation applications.

    -

    Alpaca contains Karaf services to manage moving information between Islandora, Fedora, and Blazegraph as well as kicking off derivative services in Crayfish. These will be configured to broker between Drupal and Fedora using an ActiveMQ queue.

    -

    Finalized Drupal Configurations

    -

    Drupal configuration exists as a series of .yaml files that can either be created in a feature, or exported from Drupal using the content_sync module. It can also be manually entered in via the UI. We're going to place configuration in a few different ways; Some content will be synchronized onto the site, and some core configurations from the main Islandora module will need to be run in order to facilitate ingest.

    - -
    -
    - - - Last update: - November 1, 2023 - - - -
    - - - - - - -
    -
    - - -
    - -
    - - - -
    -
    -
    -
    - - - - - - - - - \ No newline at end of file + + + + Redirecting... + + + + + + +Redirecting... + + diff --git a/installation/docker-available-commands/index.html b/installation/docker-available-commands/index.html index 9113ac90d..92faa2c55 100644 --- a/installation/docker-available-commands/index.html +++ b/installation/docker-available-commands/index.html @@ -481,7 +481,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -961,7 +961,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -975,7 +975,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -989,7 +989,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -1003,7 +1003,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -1017,7 +1017,7 @@
  • - + Installing Solr
  • @@ -1031,7 +1031,7 @@
  • - + Installing Crayfish
  • @@ -1045,7 +1045,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -1059,7 +1059,7 @@
  • - + Configuring Drupal
  • @@ -1157,7 +1157,7 @@
  • - + Modify or Create a Content Type
  • @@ -1185,7 +1185,7 @@
  • - + Create or Update a View
  • @@ -1303,7 +1303,7 @@
  • - + Content models
  • @@ -1331,7 +1331,7 @@
  • - + Linked data
  • @@ -1345,7 +1345,7 @@
  • - + Metadata harvesting
  • @@ -1483,7 +1483,7 @@
  • - + File viewers
  • @@ -1775,7 +1775,7 @@
  • - + Stack Overview
  • @@ -1976,7 +1976,7 @@
  • - + Alpaca Tips
  • @@ -2045,7 +2045,7 @@
  • - + Resizing a VM
  • @@ -2059,7 +2059,7 @@
  • - + Updating Drupal
  • @@ -2087,7 +2087,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2311,7 +2311,7 @@
  • - + Creating GitHub Issues
  • @@ -2381,7 +2381,7 @@
  • - + Documentation Style Guide
  • @@ -2604,7 +2604,7 @@

    Reindex the Triplestore Last update: - November 1, 2023 + January 4, 2024 diff --git a/installation/docker-available-configuration/index.html b/installation/docker-available-configuration/index.html index abb190d34..589a394ff 100644 --- a/installation/docker-available-configuration/index.html +++ b/installation/docker-available-configuration/index.html @@ -481,7 +481,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -1010,7 +1010,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -1024,7 +1024,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -1038,7 +1038,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -1052,7 +1052,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -1066,7 +1066,7 @@
  • - + Installing Solr
  • @@ -1080,7 +1080,7 @@
  • - + Installing Crayfish
  • @@ -1094,7 +1094,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -1108,7 +1108,7 @@
  • - + Configuring Drupal
  • @@ -1206,7 +1206,7 @@
  • - + Modify or Create a Content Type
  • @@ -1234,7 +1234,7 @@
  • - + Create or Update a View
  • @@ -1352,7 +1352,7 @@
  • - + Content models
  • @@ -1380,7 +1380,7 @@
  • - + Linked data
  • @@ -1394,7 +1394,7 @@
  • - + Metadata harvesting
  • @@ -1532,7 +1532,7 @@
  • - + File viewers
  • @@ -1824,7 +1824,7 @@
  • - + Stack Overview
  • @@ -2025,7 +2025,7 @@
  • - + Alpaca Tips
  • @@ -2094,7 +2094,7 @@
  • - + Resizing a VM
  • @@ -2108,7 +2108,7 @@
  • - + Updating Drupal
  • @@ -2136,7 +2136,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2360,7 +2360,7 @@
  • - + Creating GitHub Issues
  • @@ -2430,7 +2430,7 @@
  • - + Documentation Style Guide
  • @@ -2824,7 +2824,7 @@

    FEDORA_6November 1, 2023 + January 4, 2024 diff --git a/installation/docker-basic-usage/index.html b/installation/docker-basic-usage/index.html index 97b36450f..381fc6a0b 100644 --- a/installation/docker-basic-usage/index.html +++ b/installation/docker-basic-usage/index.html @@ -481,7 +481,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -948,7 +948,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -962,7 +962,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -976,7 +976,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -990,7 +990,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -1004,7 +1004,7 @@
  • - + Installing Solr
  • @@ -1018,7 +1018,7 @@
  • - + Installing Crayfish
  • @@ -1032,7 +1032,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -1046,7 +1046,7 @@
  • - + Configuring Drupal
  • @@ -1144,7 +1144,7 @@
  • - + Modify or Create a Content Type
  • @@ -1172,7 +1172,7 @@
  • - + Create or Update a View
  • @@ -1290,7 +1290,7 @@
  • - + Content models
  • @@ -1318,7 +1318,7 @@
  • - + Linked data
  • @@ -1332,7 +1332,7 @@
  • - + Metadata harvesting
  • @@ -1470,7 +1470,7 @@
  • - + File viewers
  • @@ -1762,7 +1762,7 @@
  • - + Stack Overview
  • @@ -1963,7 +1963,7 @@
  • - + Alpaca Tips
  • @@ -2032,7 +2032,7 @@
  • - + Resizing a VM
  • @@ -2046,7 +2046,7 @@
  • - + Updating Drupal
  • @@ -2074,7 +2074,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2298,7 +2298,7 @@
  • - + Creating GitHub Issues
  • @@ -2368,7 +2368,7 @@
  • - + Documentation Style Guide
  • @@ -2658,7 +2658,7 @@

    Tailing Logs Last update: - November 1, 2023 + January 4, 2024 diff --git a/installation/docker-custom/index.html b/installation/docker-custom/index.html index 6a07ae751..bfbcda2b5 100644 --- a/installation/docker-custom/index.html +++ b/installation/docker-custom/index.html @@ -481,7 +481,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -961,7 +961,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -975,7 +975,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -989,7 +989,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -1003,7 +1003,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -1017,7 +1017,7 @@
  • - + Installing Solr
  • @@ -1031,7 +1031,7 @@
  • - + Installing Crayfish
  • @@ -1045,7 +1045,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -1059,7 +1059,7 @@
  • - + Configuring Drupal
  • @@ -1157,7 +1157,7 @@
  • - + Modify or Create a Content Type
  • @@ -1185,7 +1185,7 @@
  • - + Create or Update a View
  • @@ -1303,7 +1303,7 @@
  • - + Content models
  • @@ -1331,7 +1331,7 @@
  • - + Linked data
  • @@ -1345,7 +1345,7 @@
  • - + Metadata harvesting
  • @@ -1483,7 +1483,7 @@
  • - + File viewers
  • @@ -1775,7 +1775,7 @@
  • - + Stack Overview
  • @@ -1976,7 +1976,7 @@
  • - + Alpaca Tips
  • @@ -2045,7 +2045,7 @@
  • - + Resizing a VM
  • @@ -2059,7 +2059,7 @@
  • - + Updating Drupal
  • @@ -2087,7 +2087,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2311,7 +2311,7 @@
  • - + Creating GitHub Issues
  • @@ -2381,7 +2381,7 @@
  • - + Documentation Style Guide
  • @@ -2703,7 +2703,7 @@

    Reque Last update: - November 1, 2023 + January 4, 2024 diff --git a/installation/docker-introduction/index.html b/installation/docker-introduction/index.html index 7eecd053b..b4db55f09 100644 --- a/installation/docker-introduction/index.html +++ b/installation/docker-introduction/index.html @@ -481,7 +481,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -898,7 +898,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -912,7 +912,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -926,7 +926,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -940,7 +940,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -954,7 +954,7 @@
  • - + Installing Solr
  • @@ -968,7 +968,7 @@
  • - + Installing Crayfish
  • @@ -982,7 +982,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -996,7 +996,7 @@
  • - + Configuring Drupal
  • @@ -1094,7 +1094,7 @@
  • - + Modify or Create a Content Type
  • @@ -1122,7 +1122,7 @@
  • - + Create or Update a View
  • @@ -1240,7 +1240,7 @@
  • - + Content models
  • @@ -1268,7 +1268,7 @@
  • - + Linked data
  • @@ -1282,7 +1282,7 @@
  • - + Metadata harvesting
  • @@ -1420,7 +1420,7 @@
  • - + File viewers
  • @@ -1712,7 +1712,7 @@
  • - + Stack Overview
  • @@ -1913,7 +1913,7 @@
  • - + Alpaca Tips
  • @@ -1982,7 +1982,7 @@
  • - + Resizing a VM
  • @@ -1996,7 +1996,7 @@
  • - + Updating Drupal
  • @@ -2024,7 +2024,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2248,7 +2248,7 @@
  • - + Creating GitHub Issues
  • @@ -2318,7 +2318,7 @@
  • - + Documentation Style Guide
  • @@ -2460,7 +2460,7 @@

    Where is ISLE? Last update: - November 1, 2023 + January 4, 2024 diff --git a/installation/docker-local/index.html b/installation/docker-local/index.html index 46324ee7b..744ea64f3 100644 --- a/installation/docker-local/index.html +++ b/installation/docker-local/index.html @@ -481,7 +481,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -893,7 +893,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -907,7 +907,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -921,7 +921,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -935,7 +935,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -949,7 +949,7 @@
  • - + Installing Solr
  • @@ -963,7 +963,7 @@
  • - + Installing Crayfish
  • @@ -977,7 +977,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -991,7 +991,7 @@
  • - + Configuring Drupal
  • @@ -1089,7 +1089,7 @@
  • - + Modify or Create a Content Type
  • @@ -1117,7 +1117,7 @@
  • - + Create or Update a View
  • @@ -1235,7 +1235,7 @@
  • - + Content models
  • @@ -1263,7 +1263,7 @@
  • - + Linked data
  • @@ -1277,7 +1277,7 @@
  • - + Metadata harvesting
  • @@ -1415,7 +1415,7 @@
  • - + File viewers
  • @@ -1707,7 +1707,7 @@
  • - + Stack Overview
  • @@ -1908,7 +1908,7 @@
  • - + Alpaca Tips
  • @@ -1977,7 +1977,7 @@
  • - + Resizing a VM
  • @@ -1991,7 +1991,7 @@
  • - + Updating Drupal
  • @@ -2019,7 +2019,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2243,7 +2243,7 @@
  • - + Creating GitHub Issues
  • @@ -2313,7 +2313,7 @@
  • - + Documentation Style Guide
  • @@ -2476,7 +2476,7 @@

    Demo Content Last update: - November 1, 2023 + January 4, 2024 diff --git a/installation/docker-maintain-drupal/index.html b/installation/docker-maintain-drupal/index.html index 9a2190057..6900759e8 100644 --- a/installation/docker-maintain-drupal/index.html +++ b/installation/docker-maintain-drupal/index.html @@ -481,7 +481,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -920,7 +920,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -934,7 +934,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -948,7 +948,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -962,7 +962,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -976,7 +976,7 @@
  • - + Installing Solr
  • @@ -990,7 +990,7 @@
  • - + Installing Crayfish
  • @@ -1004,7 +1004,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -1018,7 +1018,7 @@
  • - + Configuring Drupal
  • @@ -1116,7 +1116,7 @@
  • - + Modify or Create a Content Type
  • @@ -1144,7 +1144,7 @@
  • - + Create or Update a View
  • @@ -1262,7 +1262,7 @@
  • - + Content models
  • @@ -1290,7 +1290,7 @@
  • - + Linked data
  • @@ -1304,7 +1304,7 @@
  • - + Metadata harvesting
  • @@ -1442,7 +1442,7 @@
  • - + File viewers
  • @@ -1734,7 +1734,7 @@
  • - + Stack Overview
  • @@ -1935,7 +1935,7 @@
  • - + Alpaca Tips
  • @@ -2004,7 +2004,7 @@
  • - + Resizing a VM
  • @@ -2018,7 +2018,7 @@
  • - + Updating Drupal
  • @@ -2046,7 +2046,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2270,7 +2270,7 @@
  • - + Creating GitHub Issues
  • @@ -2340,7 +2340,7 @@
  • - + Documentation Style Guide
  • @@ -2549,7 +2549,7 @@

    Drupal Database Updates Last update: - November 1, 2023 + January 4, 2024 diff --git a/installation/docker-maintain-isle/index.html b/installation/docker-maintain-isle/index.html index 8545dac9f..56f21ded6 100644 --- a/installation/docker-maintain-isle/index.html +++ b/installation/docker-maintain-isle/index.html @@ -481,7 +481,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -946,7 +946,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -960,7 +960,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -974,7 +974,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -988,7 +988,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -1002,7 +1002,7 @@
  • - + Installing Solr
  • @@ -1016,7 +1016,7 @@
  • - + Installing Crayfish
  • @@ -1030,7 +1030,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -1044,7 +1044,7 @@
  • - + Configuring Drupal
  • @@ -1142,7 +1142,7 @@
  • - + Modify or Create a Content Type
  • @@ -1170,7 +1170,7 @@
  • - + Create or Update a View
  • @@ -1288,7 +1288,7 @@
  • - + Content models
  • @@ -1316,7 +1316,7 @@
  • - + Linked data
  • @@ -1330,7 +1330,7 @@
  • - + Metadata harvesting
  • @@ -1468,7 +1468,7 @@
  • - + File viewers
  • @@ -1760,7 +1760,7 @@
  • - + Stack Overview
  • @@ -1961,7 +1961,7 @@
  • - + Alpaca Tips
  • @@ -2030,7 +2030,7 @@
  • - + Resizing a VM
  • @@ -2044,7 +2044,7 @@
  • - + Updating Drupal
  • @@ -2072,7 +2072,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2296,7 +2296,7 @@
  • - + Creating GitHub Issues
  • @@ -2366,7 +2366,7 @@
  • - + Documentation Style Guide
  • @@ -2615,7 +2615,7 @@

    Version 1.x to 2.xNovember 1, 2023 + January 4, 2024 diff --git a/installation/docker-prereq/index.html b/installation/docker-prereq/index.html index 5a6057f44..5b8b37536 100644 --- a/installation/docker-prereq/index.html +++ b/installation/docker-prereq/index.html @@ -481,7 +481,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -987,7 +987,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -1001,7 +1001,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -1015,7 +1015,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -1029,7 +1029,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -1043,7 +1043,7 @@
  • - + Installing Solr
  • @@ -1057,7 +1057,7 @@
  • - + Installing Crayfish
  • @@ -1071,7 +1071,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -1085,7 +1085,7 @@
  • - + Configuring Drupal
  • @@ -1183,7 +1183,7 @@
  • - + Modify or Create a Content Type
  • @@ -1211,7 +1211,7 @@
  • - + Create or Update a View
  • @@ -1329,7 +1329,7 @@
  • - + Content models
  • @@ -1357,7 +1357,7 @@
  • - + Linked data
  • @@ -1371,7 +1371,7 @@
  • - + Metadata harvesting
  • @@ -1509,7 +1509,7 @@
  • - + File viewers
  • @@ -1801,7 +1801,7 @@
  • - + Stack Overview
  • @@ -2002,7 +2002,7 @@
  • - + Alpaca Tips
  • @@ -2071,7 +2071,7 @@
  • - + Resizing a VM
  • @@ -2085,7 +2085,7 @@
  • - + Updating Drupal
  • @@ -2113,7 +2113,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2337,7 +2337,7 @@
  • - + Creating GitHub Issues
  • @@ -2407,7 +2407,7 @@
  • - + Documentation Style Guide
  • @@ -2698,7 +2698,7 @@

    Installing ISLE Docker ComposeNovember 1, 2023 + January 4, 2024 diff --git a/installation/docker-troubleshooting/index.html b/installation/docker-troubleshooting/index.html index 5ace8b9b9..cdbac9479 100644 --- a/installation/docker-troubleshooting/index.html +++ b/installation/docker-troubleshooting/index.html @@ -481,7 +481,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -919,7 +919,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -933,7 +933,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -947,7 +947,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -961,7 +961,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -975,7 +975,7 @@
  • - + Installing Solr
  • @@ -989,7 +989,7 @@
  • - + Installing Crayfish
  • @@ -1003,7 +1003,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -1017,7 +1017,7 @@
  • - + Configuring Drupal
  • @@ -1115,7 +1115,7 @@
  • - + Modify or Create a Content Type
  • @@ -1143,7 +1143,7 @@
  • - + Create or Update a View
  • @@ -1261,7 +1261,7 @@
  • - + Content models
  • @@ -1289,7 +1289,7 @@
  • - + Linked data
  • @@ -1303,7 +1303,7 @@
  • - + Metadata harvesting
  • @@ -1441,7 +1441,7 @@
  • - + File viewers
  • @@ -1733,7 +1733,7 @@
  • - + Stack Overview
  • @@ -1934,7 +1934,7 @@
  • - + Alpaca Tips
  • @@ -2003,7 +2003,7 @@
  • - + Resizing a VM
  • @@ -2017,7 +2017,7 @@
  • - + Updating Drupal
  • @@ -2045,7 +2045,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2269,7 +2269,7 @@
  • - + Creating GitHub Issues
  • @@ -2339,7 +2339,7 @@
  • - + Documentation Style Guide
  • @@ -2510,7 +2510,7 @@

    504 Bad GatewayNovember 1, 2023 + January 4, 2024 diff --git a/installation/install-a-demo/index.html b/installation/install-a-demo/index.html index ebfbfbcea..67e294427 100644 --- a/installation/install-a-demo/index.html +++ b/installation/install-a-demo/index.html @@ -13,7 +13,7 @@ - + @@ -481,7 +481,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -851,7 +851,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -865,7 +865,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -879,7 +879,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -893,7 +893,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -907,7 +907,7 @@
  • - + Installing Solr
  • @@ -921,7 +921,7 @@
  • - + Installing Crayfish
  • @@ -935,7 +935,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -949,7 +949,7 @@
  • - + Configuring Drupal
  • @@ -1047,7 +1047,7 @@
  • - + Modify or Create a Content Type
  • @@ -1075,7 +1075,7 @@
  • - + Create or Update a View
  • @@ -1193,7 +1193,7 @@
  • - + Content models
  • @@ -1221,7 +1221,7 @@
  • - + Linked data
  • @@ -1235,7 +1235,7 @@
  • - + Metadata harvesting
  • @@ -1373,7 +1373,7 @@
  • - + File viewers
  • @@ -1665,7 +1665,7 @@
  • - + Stack Overview
  • @@ -1866,7 +1866,7 @@
  • - + Alpaca Tips
  • @@ -1935,7 +1935,7 @@
  • - + Resizing a VM
  • @@ -1949,7 +1949,7 @@
  • - + Updating Drupal
  • @@ -1977,7 +1977,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2201,7 +2201,7 @@
  • - + Creating GitHub Issues
  • @@ -2271,7 +2271,7 @@
  • - + Documentation Style Guide
  • @@ -2417,7 +2417,7 @@

    November 1, 2023 + January 4, 2024 diff --git a/installation/manual/configuring-drupal/index.html b/installation/manual/configuring-drupal/index.html new file mode 100644 index 000000000..e6d4d211f --- /dev/null +++ b/installation/manual/configuring-drupal/index.html @@ -0,0 +1,2800 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Configuring Drupal - Islandora + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + + + + + +
    +
    + + + + + + + + + + + + + +

    Configuring Drupal

    +
    +

    Needs Maintenance

    +

    The manual installation documentation is in need of attention. We are aware that some components no longer work as documented here. If you are interested in helping us improve the documentation, please see Contributing.

    +
    +

    After all of the above pieces are in place, installed, configured, started, and otherwise prepared, the last thing we need to do is to finally configure the front-end Drupal instance to wire all the installed components together.

    +

    Drupal Pre-Configuration

    +

    settings.php

    +
    +

    Notice

    +

    By default, settings.php is read-only for all users. It should be made writable while this pre-configuration is being done, then set back to 444 afterwards.

    +
    +

    Some additional settings will need to be established in your default settings.php before Drupal-side configuration can occur.

    +

    The below configuration will establish localhost as a trusted host pattern, but on production sites this will need to be expanded to include the actual host patterns used by the site.

    +

    /opt/drupal/web/sites/default/settings.php

    +

    Before (at around line 789): +

    'driver' => 'pgsql',
    +);
    +

    +

    After: +

    'driver' => 'pgsql',
    +);
    +
    +$settings['trusted_host_patterns'] = [
    +  'localhost',
    +];
    +
    +$settings['flysystem'] = [
    +  'fedora' => [
    +    'driver' => 'fedora',
    +    'config' => [
    +      'root' => 'http://localhost:8080/fcrepo/rest/',
    +    ],
    +  ],
    +];
    +

    +

    Once this is done, refresh the cache to take hold of the new settings.

    +
    cd /opt/drupal
    +drush -y cr
    +
    +

    Islandora

    +
    +

    Skip this by using the Islandora Starter Site

    +

    The Islandora Starter Site, which was presented as an option in the "Installing Composer, Drush, and Drupal" step, +installs Islandora and other modules and configures them, allowing you to skip this section. You may want to use this manual method in the case where you want +to pick and choose which Islandora modules you use.

    +
    +

    Downloading Islandora

    +

    The Islandora Drupal module contains the core code to create a repository ecosystem in a Drupal environment. It also includes several submodules; of importance to us is islandora_core_feature, which contains the key configurations that allow you to use Islandora features.

    +

    Take note of some of the other comments in the below bash script for an idea of what the other components are expected, and which may be considered optional.

    +
    cd /opt/drupal
    +# Since islandora_defaults is near the bottom of the dependency chain, requiring
    +# it will get most of the modules and libraries we need to deploy a standard
    +# Islandora site.
    +sudo -u www-data composer require "drupal/flysystem:^2.0@alpha"
    +sudo -u www-data composer require "islandora/islandora:^2.4"
    +sudo -u www-data composer require "islandora/controlled_access_terms:^2"
    +sudo -u www-data composer require "islandora/openseadragon:^2"
    +
    +# These can be considered important or required depending on your site's
    +# requirements; some of them represent dependencies of Islandora submodules.
    +sudo -u www-data composer require "drupal/pdf:1.1"
    +sudo -u www-data composer require "drupal/rest_oai_pmh:^2.0@beta"
    +sudo -u www-data composer require "drupal/search_api_solr:^4.2"
    +sudo -u www-data composer require "drupal/facets:^2"
    +sudo -u www-data composer require "drupal/content_browser:^1.0@alpha" ## TODO do we need this?
    +sudo -u www-data composer require "drupal/field_permissions:^1"
    +sudo -u www-data composer require "drupal/transliterate_filenames:^2.0"
    +
    +# These tend to be good to enable for a development environment, or just for a
    +# higher quality of life when managing Islandora. That being said, devel should
    +# NEVER be enabled on a production environment, as it intentionally gives the
    +# user tools that compromise the security of a site.
    +sudo -u www-data composer require drupal/restui:^1.21
    +sudo -u www-data composer require drupal/console:~1.0
    +sudo -u www-data composer require drupal/devel:^2.0
    +sudo -u www-data composer require drupal/admin_toolbar:^2.0
    +
    +

    Enabling Downloaded Components

    +

    Components we've now downloaded using composer require can be enabled simultaneously via drush, which will ensure they are installed in the correct dependent order. Enabling islandora_defaults will also ensure all content types and configurations are set up in Islandora. The installation process for all of these modules will likely take some time.

    +
    +

    Notice

    +

    This list of modules assumes that all of the above components were downloaded using composer require; if this is not the case, you may need to pare down this list manually. It also includes devel, which again, should not be enabled on production sites.

    +
    +
    cd /opt/drupal
    +drush -y en rdf responsive_image devel syslog serialization basic_auth rest restui search_api_solr facets content_browser pdf admin_toolbar controlled_access_terms_defaults islandora_breadcrumbs islandora_iiif islandora_oaipmh
    +# After all of this, rebuild the cache.
    +drush -y cr
    +
    +

    Adding a JWT Configuration to Drupal

    +

    To allow our installation to talk to other services via Syn, we need to establish a Drupal-side JWT configuration using the keys we generated at that time.

    +

    Log onto your site as an administrator at /user, then navigate to /admin/config/system/keys/add. Some of the settings here are unimportant, but pay close attention to the Key type, which should match the key we created earlier (an RSA key), and the File location, which should be the ultimate location of the key we created for Syn on the filesystem, /opt/keys/syn_private.key.

    +

    Adding a JWT RSA Key

    +

    Click Save to create the key.

    +

    Once this key is created, navigate to /admin/config/system/jwt to select the key you just created from the list. Note that before the key will show up in the Private Key list, you need to select that key's type in the Algorithm section, namely RSASSA-PKCS1-v1_5 using SHA-256 (RS256).

    +

    Configuring the JWT RSA Key for Use

    +

    Click Save configuration to establish this as the JWT key configuration.

    +

    Configuring Islandora

    +

    Navigate to the Islandora core configuration page at /admin/config/islandora/core to set up the core configuration to connect to Gemini. Of note here, the Gemini URL will need to be established to facilitate the connection to Fedora, and the appropriate Bundles with Gemini URI pseudo field types will need to be checked off.

    +
    +

    Notice

    +

    Any other Drupal content types you wish to synchronize with Fedora should also be checked off here.

    +
    +

    Configuring Islandora

    +

    Configuring Islandora IIIF

    +

    Navigate to /admin/config/islandora/iiif to ensure that Islandora IIIF is pointing to our Cantaloupe server.

    +

    Configuring Islandora IIIF

    +

    Next, configure OpenSeadragon by navigating to /admin/config/media/openseadragon and ensuring everything is set up properly.

    +

    Configuring OpenSeadragon

    +

    Establishing Flysystem as the Default Download Method

    +

    Navigate to /admin/config/media/file-system to set the Default download method to the one we created in our settings.php.

    +

    Configuring Flysystem to Use Fedora

    +

    Giving the Administrative User the fedoraAdmin Role

    +

    In order for data to be pushed back to Fedora, the site administrative user needs the fedoraAdmin role.

    +
    cd /opt/drupal
    +sudo -u www-data drush -y urol "fedoraadmin" islandora
    +
    +

    Running Feature Migrations

    +

    Finally, to get everything up and running, run the Islandora Core Features and Islandora Defaults migrations.

    +
    cd /opt/drupal
    +sudo -u www-data drush -y -l localhost --userid=1 mim --group=islandora
    +
    +

    Enabling EVA Views

    +

    Some views provided by Islandora are not enabled by default.

    +
    cd /opt/drupal
    +drush -y views:enable display_media
    +
    + +
    +
    + + + Last update: + January 4, 2024 + + + +
    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/installation/manual/configuring_drupal/index.html b/installation/manual/configuring_drupal/index.html index 779cfc17c..8d967e127 100644 --- a/installation/manual/configuring_drupal/index.html +++ b/installation/manual/configuring_drupal/index.html @@ -1,2800 +1,15 @@ - - - - - - - - - - - - - - - - - - - - - - - - Configuring Drupal - Islandora - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - Skip to content - - -
    -
    - -
    - - - - -
    - - -
    - -
    - - - - - - -
    -
    - - - -
    -
    -
    - - - - -
    -
    -
    - - - - - - - -
    -
    - - - - - - - - - - - - - -

    Configuring Drupal

    -
    -

    Needs Maintenance

    -

    The manual installation documentation is in need of attention. We are aware that some components no longer work as documented here. If you are interested in helping us improve the documentation, please see Contributing.

    -
    -

    After all of the above pieces are in place, installed, configured, started, and otherwise prepared, the last thing we need to do is to finally configure the front-end Drupal instance to wire all the installed components together.

    -

    Drupal Pre-Configuration

    -

    settings.php

    -
    -

    Notice

    -

    By default, settings.php is read-only for all users. It should be made writable while this pre-configuration is being done, then set back to 444 afterwards.

    -
    -

    Some additional settings will need to be established in your default settings.php before Drupal-side configuration can occur.

    -

    The below configuration will establish localhost as a trusted host pattern, but on production sites this will need to be expanded to include the actual host patterns used by the site.

    -

    /opt/drupal/web/sites/default/settings.php

    -

    Before (at around line 789): -

    'driver' => 'pgsql',
    -);
    -

    -

    After: -

    'driver' => 'pgsql',
    -);
    -
    -$settings['trusted_host_patterns'] = [
    -  'localhost',
    -];
    -
    -$settings['flysystem'] = [
    -  'fedora' => [
    -    'driver' => 'fedora',
    -    'config' => [
    -      'root' => 'http://localhost:8080/fcrepo/rest/',
    -    ],
    -  ],
    -];
    -

    -

    Once this is done, refresh the cache to take hold of the new settings.

    -
    cd /opt/drupal
    -drush -y cr
    -
    -

    Islandora

    -
    -

    Skip this by using the Islandora Starter Site

    -

    The Islandora Starter Site, which was presented as an option in the "Installing Composer, Drush, and Drupal" step, -installs Islandora and other modules and configures them, allowing you to skip this section. You may want to use this manual method in the case where you want -to pick and choose which Islandora modules you use.

    -
    -

    Downloading Islandora

    -

    The Islandora Drupal module contains the core code to create a repository ecosystem in a Drupal environment. It also includes several submodules; of importance to us is islandora_core_feature, which contains the key configurations that allow you to use Islandora features.

    -

    Take note of some of the other comments in the below bash script for an idea of what the other components are expected, and which may be considered optional.

    -
    cd /opt/drupal
    -# Since islandora_defaults is near the bottom of the dependency chain, requiring
    -# it will get most of the modules and libraries we need to deploy a standard
    -# Islandora site.
    -sudo -u www-data composer require "drupal/flysystem:^2.0@alpha"
    -sudo -u www-data composer require "islandora/islandora:^2.4"
    -sudo -u www-data composer require "islandora/controlled_access_terms:^2"
    -sudo -u www-data composer require "islandora/openseadragon:^2"
    -
    -# These can be considered important or required depending on your site's
    -# requirements; some of them represent dependencies of Islandora submodules.
    -sudo -u www-data composer require "drupal/pdf:1.1"
    -sudo -u www-data composer require "drupal/rest_oai_pmh:^2.0@beta"
    -sudo -u www-data composer require "drupal/search_api_solr:^4.2"
    -sudo -u www-data composer require "drupal/facets:^2"
    -sudo -u www-data composer require "drupal/content_browser:^1.0@alpha" ## TODO do we need this?
    -sudo -u www-data composer require "drupal/field_permissions:^1"
    -sudo -u www-data composer require "drupal/transliterate_filenames:^2.0"
    -
    -# These tend to be good to enable for a development environment, or just for a
    -# higher quality of life when managing Islandora. That being said, devel should
    -# NEVER be enabled on a production environment, as it intentionally gives the
    -# user tools that compromise the security of a site.
    -sudo -u www-data composer require drupal/restui:^1.21
    -sudo -u www-data composer require drupal/console:~1.0
    -sudo -u www-data composer require drupal/devel:^2.0
    -sudo -u www-data composer require drupal/admin_toolbar:^2.0
    -
    -

    Enabling Downloaded Components

    -

    Components we've now downloaded using composer require can be enabled simultaneously via drush, which will ensure they are installed in the correct dependent order. Enabling islandora_defaults will also ensure all content types and configurations are set up in Islandora. The installation process for all of these modules will likely take some time.

    -
    -

    Notice

    -

    This list of modules assumes that all of the above components were downloaded using composer require; if this is not the case, you may need to pare down this list manually. It also includes devel, which again, should not be enabled on production sites.

    -
    -
    cd /opt/drupal
    -drush -y en rdf responsive_image devel syslog serialization basic_auth rest restui search_api_solr facets content_browser pdf admin_toolbar controlled_access_terms_defaults islandora_breadcrumbs islandora_iiif islandora_oaipmh
    -# After all of this, rebuild the cache.
    -drush -y cr
    -
    -

    Adding a JWT Configuration to Drupal

    -

    To allow our installation to talk to other services via Syn, we need to establish a Drupal-side JWT configuration using the keys we generated at that time.

    -

    Log onto your site as an administrator at /user, then navigate to /admin/config/system/keys/add. Some of the settings here are unimportant, but pay close attention to the Key type, which should match the key we created earlier (an RSA key), and the File location, which should be the ultimate location of the key we created for Syn on the filesystem, /opt/keys/syn_private.key.

    -

    Adding a JWT RSA Key

    -

    Click Save to create the key.

    -

    Once this key is created, navigate to /admin/config/system/jwt to select the key you just created from the list. Note that before the key will show up in the Private Key list, you need to select that key's type in the Algorithm section, namely RSASSA-PKCS1-v1_5 using SHA-256 (RS256).

    -

    Configuring the JWT RSA Key for Use

    -

    Click Save configuration to establish this as the JWT key configuration.

    -

    Configuring Islandora

    -

    Navigate to the Islandora core configuration page at /admin/config/islandora/core to set up the core configuration to connect to Gemini. Of note here, the Gemini URL will need to be established to facilitate the connection to Fedora, and the appropriate Bundles with Gemini URI pseudo field types will need to be checked off.

    -
    -

    Notice

    -

    Any other Drupal content types you wish to synchronize with Fedora should also be checked off here.

    -
    -

    Configuring Islandora

    -

    Configuring Islandora IIIF

    -

    Navigate to /admin/config/islandora/iiif to ensure that Islandora IIIF is pointing to our Cantaloupe server.

    -

    Configuring Islandora IIIF

    -

    Next, configure OpenSeadragon by navigating to /admin/config/media/openseadragon and ensuring everything is set up properly.

    -

    Configuring OpenSeadragon

    -

    Establishing Flysystem as the Default Download Method

    -

    Navigate to /admin/config/media/file-system to set the Default download method to the one we created in our settings.php.

    -

    Configuring Flysystem to Use Fedora

    -

    Giving the Administrative User the fedoraAdmin Role

    -

    In order for data to be pushed back to Fedora, the site administrative user needs the fedoraAdmin role.

    -
    cd /opt/drupal
    -sudo -u www-data drush -y urol "fedoraadmin" islandora
    -
    -

    Running Feature Migrations

    -

    Finally, to get everything up and running, run the Islandora Core Features and Islandora Defaults migrations.

    -
    cd /opt/drupal
    -sudo -u www-data drush -y -l localhost --userid=1 mim --group=islandora
    -
    -

    Enabling EVA Views

    -

    Some views provided by Islandora are not enabled by default.

    -
    cd /opt/drupal
    -drush -y views:enable display_media
    -
    - -
    -
    - - - Last update: - November 1, 2023 - - - -
    - - - - - - -
    -
    - - -
    - -
    - - - -
    -
    -
    -
    - - - - - - - - - \ No newline at end of file + + + + Redirecting... + + + + + + +Redirecting... + + diff --git a/installation/manual/installing-composer-drush-and-drupal/index.html b/installation/manual/installing-composer-drush-and-drupal/index.html new file mode 100644 index 000000000..8d315a17b --- /dev/null +++ b/installation/manual/installing-composer-drush-and-drupal/index.html @@ -0,0 +1,2783 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Installing Composer, Drush, and Drupal - Islandora + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + + + + + +
    +
    + + + + + + + + + + + + + +

    Installing Composer, Drush, and Drupal

    +
    +

    Needs Maintenance

    +

    The manual installation documentation is in need of attention. We are aware that some components no longer work as documented here. If you are interested in helping us improve the documentation, please see Contributing.

    +
    +

    In this section, we will install:

    +
      +
    • Composer at its current latest version, the package manager that will allow us to install PHP applications
    • +
    • Either the Islandora Starter Site, or the Drupal recommended-project, which will install, among other things:
        +
      • Drush 10 at its latest version, the command-line PHP application for running tasks in Drupal
      • +
      • Drupal 9 at its latest version, the content management system Islandora uses for content modelling and front-end display
      • +
      +
    • +
    +

    Install Composer

    +

    Download and install Composer 2.x

    +

    Composer provides PHP code that we can use to install it. After downloading and running the installer, we’re going to move the generated executable to a place in $PATH, removing its extension:

    +
    curl "https://getcomposer.org/installer" > composer-install.php
    +chmod +x composer-install.php
    +php composer-install.php
    +sudo mv composer.phar /usr/local/bin/composer
    +
    +

    Download and Scaffold Drupal

    +

    At this point, you have the option of using the Islandora Starter Site, with its pre-selected modules +and configurations which function "out of the box," or build a clean stock Drupal via the Drupal Recommended Project and install +Islandora modules as you desire.

    +

    Option 1: Create a project using the Islandora Starter Site

    +

    Navigate to the folder where you want to put your Islandora project (in our case /var/www), and +create the Islandora Starter Site:

    +
    cd /var/www
    +composer create-project islandora/islandora-starter-site
    +
    +

    This will install all PHP dependencies, including Drush, and scaffold the site.

    +

    Drush is not accessible via $PATH, but is available using the command composer exec -- drush

    + +

    Navigate to the folder where you want to put your Drupal project (in our case /var/www), and +create the Drupal Recommended Project:

    +
    cd /var/www
    +composer create-project drupal/recommended-project my-project
    +
    +

    Make the new webroot accessible in Apache

    +

    Before we can proceed with the actual site installation, we’re going to need to make our new Drupal installation the default web-accessible location Apache serves up. This will include an appropriate ports.conf file, and replacing the default enabled site.

    +
    +

    Notice

    +

    Out of the box, these files will contain support for SSL, which we will not be setting up in this guide (and therefore removing with these overwritten configurations), but which are absolutely indispensable to a production site. This guide does not recommend any particular SSL certificate authority or installation method, but you may find DigitalOcean's tutorial helpful.

    +
    +

    /etc/apache2/ports.conf | root:root/644 +

    Listen 80
    +

    +

    Remove everything but the "Listen 80" line. You can leave the comments in if you want.

    +

    /etc/apache2/sites-enabled/000-default.conf | root:root/777 +

    <VirtualHost *:80>
    +  ServerName SERVER_NAME
    +  DocumentRoot "/opt/drupal/web"
    +  <Directory "/opt/drupal/web">
    +    Options Indexes FollowSymLinks MultiViews
    +    AllowOverride all
    +    Require all granted
    +  </Directory>
    +  # Ensure some logging is in place.
    +  ErrorLog "/var/log/apache2/localhost_error.log"
    +  CustomLog "/var/log/apache2/localhost_access.log" combined
    +</VirtualHost>
    +
    +- SERVER_NAME: localhost + - For a development environment hosted on your own machine or a VM, localhost should suffice. Realistically, this should be the domain or IP address the server will be accessed at.

    +

    Restart the Apache 2 service to apply these changes:

    +
    sudo systemctl restart apache2
    +
    +

    Prepare the PostgreSQL database

    +

    PostgreSQL roles are directly tied to users. We’re going to ensure a user is in place, create a role for them in PostgreSQL, and create a database for them that we can use to install Drupal.

    +

    # Run psql as the postgres user, the only user currently with any PostgreSQL
    +# access.
    +sudo -u postgres psql
    +# Then, run these commands within psql itself:
    +create database DRUPAL_DB encoding 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' TEMPLATE template0;
    +create user DRUPAL_DB_USER with encrypted password 'DRUPAL_DB_PASSWORD';
    +grant all privileges on database DRUPAL_DB to DRUPAL_DB_USER;
    +# Then, quit psql.
    +\q
    +
    +- DRUPAL_DB: drupal9 + - This will be used as the core database that Drupal is installed into +- DRUPAL_DB_USER: drupal + - Specifically, this is the user that will connect to the PostgreSQL database being created, not the user that will be logging into Drupal +- DRUPAL_DB_PASSWORD: drupal + - This should be a secure password; it’s recommended to use a password generator to create this such as the one provided by random.org

    +

    Install Drupal using Drush

    +

    The Drupal installation process can be done through the GUI in a series of form steps, or can be done quickly using Drush's site-install command. It can be invoked with the full list of parameters (such as --db-url and --site-name), but if parameters are missing, they will be asked of you interactively.

    +

    Option 1: Site install the Starter Site with existing configs

    +

    Follow the instructions in the README of the Islandora Starter Site. +The steps are not reproduced here to remove redundancy. When this installation is done, you'll have a starter site ready-to-go. Once you set up the external services in the next sections, you'll need to configure Drupal to know where they are.

    + +

    cd /var/www/drupal
    +drush -y site-install standard --db-url="pgsql://DRUPAL_DB_USER:DRUPAL_DB_PASSWORD@127.0.0.1:5432/DRUPAL_DB" --site-name="SITE_NAME" --account-name=DRUPAL_LOGIN --account-pass=DRUPAL_PASS
    +
    +This uses the same parameters from the above step, as well as:

    +
      +
    • SITE_NAME: Islandora 2.0
        +
      • This is arbitrary, and is simply used to title the site on the home page
      • +
      +
    • +
    • DRUPAL_LOGIN: islandora
        +
      • The Drupal administrative username to use
      • +
      +
    • +
    • DRUPAL_PASS: islandora
        +
      • The password to use for the Drupal administrative user
      • +
      +
    • +
    +

    Congratulations, you have a Drupal site! It currently isn’t really configured to do anything, but we’ll get those portions set up in the coming sections.

    + +
    +
    + + + Last update: + January 4, 2024 + + + +
    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/installation/manual/installing-crayfish/index.html b/installation/manual/installing-crayfish/index.html new file mode 100644 index 000000000..f260ce1c8 --- /dev/null +++ b/installation/manual/installing-crayfish/index.html @@ -0,0 +1,3011 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Installing Crayfish - Islandora + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + + + + + +
    +
    + + + + + + + + + + + + + +

    Installing Crayfish

    +
    +

    Needs Maintenance

    +

    The manual installation documentation is in need of attention. We are aware that some components no longer work as documented here. If you are interested in helping us improve the documentation, please see Contributing.

    +
    +

    In this section, we will install:

    +
      +
    • Islandora/Crayfish, the suite of microservices that power the backend of Islandora 2.0
    • +
    • Indvidual microservices underneath Crayfish
    • +
    +

    Crayfish 2.0

    +

    Installing Prerequisites

    +

    Some packages need to be installed before we can proceed with installing Crayfish; these packages are used by the microservices within Crayfish. These include:

    +
      +
    • Imagemagick, which will be used for image processing. We'll be using the LYRASIS build of imagemagick here, which supports JP2 files.
    • +
    • Tesseract, which will be used for optical character recognition; note that by default Tesseract can only understand English; several other individual Tesseract language packs can be installed using apt-get, and a list of available packs can be procured with sudo apt-cache search tesseract-ocr
    • +
    • FFMPEG, which will be used for video processing
    • +
    • Poppler, which will be used for generating PDFs
    • +
    +
    sudo add-apt-repository -y ppa:lyrasis/imagemagick-jp2
    +sudo apt-get update
    +sudo apt-get -y install imagemagick tesseract-ocr ffmpeg poppler-utils
    +
    +

    NOTICE: If you get the sudo: apt-add-repository: command not found, run sudo apt-get install software-properties-common in order to make the command available.

    +

    Cloning and Installing Crayfish

    +

    We’re going to clone Crayfish to /opt, and individually run composer install against each of the microservice subdirectories.

    +
    cd /opt
    +sudo git clone https://github.com/Islandora/Crayfish.git crayfish
    +sudo chown -R www-data:www-data crayfish
    +sudo -u www-data composer install -d crayfish/Homarus
    +sudo -u www-data composer install -d crayfish/Houdini
    +sudo -u www-data composer install -d crayfish/Hypercube
    +sudo -u www-data composer install -d crayfish/Milliner
    +sudo -u www-data composer install -d crayfish/Recast
    +
    +

    Preparing Logging

    +

    Not much needs to happen here; Crayfish opts for a simple logging approach, with one .log file for each component. We’ll create a folder where each logfile can live.

    +
    sudo mkdir /var/log/islandora
    +sudo chown www-data:www-data /var/log/islandora
    +
    +

    Configuring Crayfish Components

    +

    Each Crayfish component requires one or more .yaml file(s) to ensure everything is wired up correctly.

    +

    NOTICE

    +

    The following configuration files represent somewhat sensible defaults; you should take consideration of the logging levels in use, as this can vary in desirability from installation to installation. Also note that in all cases, http URLs are being used, as this guide does not deal with setting up https support. In a production installation, this should not be the case. These files also assume a connection to a PostgreSQL database; use a pdo_mysql driver and the appropriate 3306 port if using MySQL.

    +

    Homarus (Audio/Video derivatives)

    +

    /opt/crayfish/Homarus/cfg/config.yaml | www-data:www-data/644 +

    ---
    +homarus:
    +  executable: ffmpeg
    +  mime_types:
    +    valid:
    +      - video/mp4
    +      - video/x-msvideo
    +      - video/ogg
    +      - audio/x-wav
    +      - audio/mpeg
    +      - audio/aac
    +      - image/jpeg
    +      - image/png
    +    default: video/mp4
    +  mime_to_format:
    +    valid:
    +      - video/mp4_mp4
    +      - video/x-msvideo_avi
    +      - video/ogg_ogg
    +      - audio/x-wav_wav
    +      - audio/mpeg_mp3
    +      - audio/aac_m4a
    +      - image/jpeg_image2pipe
    +      - image/png_image2pipe
    +    default: mp4
    +fedora_resource:
    +  base_url: http://localhost:8080/fcrepo/rest
    +log:
    +  level: NOTICE
    +  file: /var/log/islandora/homarus.log
    +syn:
    +  enable: true
    +  config: /opt/fcrepo/config/syn-settings.xml
    +

    +

    Houdini (Image derivatives)

    +

    Currently the Houdini microservice uses a different system (Symfony) than the other microservices, this requires different configuration.

    +

    /opt/crayfish/Houdini/config/services.yaml | www-data:www-data/644 +

    # This file is the entry point to configure your own services.
    +# Files in the packages/ subdirectory configure your dependencies.
    +# Put parameters here that don't need to change on each machine where the app is deployed
    +# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
    +parameters:
    +    app.executable: /usr/local/bin/convert
    +    app.formats.valid:
    +        - image/jpeg
    +        - image/png
    +        - image/tiff
    +        - image/jp2
    +    app.formats.default: image/jpeg
    +
    +services:
    +    # default configuration for services in *this* file
    +    _defaults:
    +        autowire: true      # Automatically injects dependencies in your services.
    +        autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
    +
    +    # makes classes in src/ available to be used as services
    +    # this creates a service per class whose id is the fully-qualified class name
    +    App\Islandora\Houdini\:
    +        resource: '../src/*'
    +        exclude: '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'
    +
    +    # controllers are imported separately to make sure services can be injected
    +    # as action arguments even if you don't extend any base controller class
    +    App\Islandora\Houdini\Controller\HoudiniController:
    +        public: false
    +        bind:
    +            $formats: '%app.formats.valid%'
    +            $default_format: '%app.formats.default%'
    +            $executable: '%app.executable%'
    +        tags: ['controller.service_arguments']
    +
    +    # add more service definitions when explicit configuration is needed
    +    # please note that last definitions always *replace* previous ones
    +

    +

    /opt/crayfish/Houdini/config/packages/crayfish_commons.yml | www-data:www-data/644 +

    crayfish_commons:
    +  fedora_base_uri: 'http://localhost:8080/fcrepo/rest'
    +  syn_config: '/opt/fcrepo/config/syn-settings.xml'
    +

    +

    /opt/crayfish/Houdini/config/packages/monolog.yml | www-data:www-data/644 +

    monolog:
    +
    +  handlers:
    +
    +    houdini:
    +      type: rotating_file
    +      path: /var/log/islandora/Houdini.log
    +      level: DEBUG
    +      max_files: 1
    +

    +

    The below files are two versions of the same file to enable or disable JWT token authentication.

    +

    /opt/crayfish/Houdini/config/packages/security.yml | www-data:www-data/644

    +

    Enabled JWT token authentication: +

    security:
    +
    +    # https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
    +    providers:
    +        jwt_user_provider:
    +            id: Islandora\Crayfish\Commons\Syn\JwtUserProvider
    +
    +    firewalls:
    +        dev:
    +            pattern: ^/(_(profiler|wdt)|css|images|js)/
    +            security: false
    +        main:
    +            anonymous: false
    +            # Need stateless or it reloads the User based on a token.
    +            stateless: true
    +
    +            provider: jwt_user_provider
    +            guard:
    +                authenticators:
    +                    - Islandora\Crayfish\Commons\Syn\JwtAuthenticator
    +
    +            # activate different ways to authenticate
    +            # https://symfony.com/doc/current/security.html#firewalls-authentication
    +
    +            # https://symfony.com/doc/current/security/impersonating_user.html
    +            # switch_user: true
    +
    +
    +    # Easy way to control access for large sections of your site
    +    # Note: Only the *first* access control that matches will be used
    +    access_control:
    +        # - { path: ^/admin, roles: ROLE_ADMIN }
    +        # - { path: ^/profile, roles: ROLE_USER }
    +

    +

    Disabled JWT token authentication: +

    security:
    +
    +    # https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
    +    providers:
    +        jwt_user_provider:
    +            id: Islandora\Crayfish\Commons\Syn\JwtUserProvider
    +
    +    firewalls:
    +        dev:
    +            pattern: ^/(_(profiler|wdt)|css|images|js)/
    +            security: false
    +        main:
    +            anonymous: true
    +            # Need stateless or it reloads the User based on a token.
    +            stateless: true
    +

    +

    Hypercube (OCR)

    +

    /opt/crayfish/Hypercube/cfg/config.yaml | www-data:www-data/644 +

    ---
    +hypercube:
    +  tesseract_executable: tesseract
    +  pdftotext_executable: pdftotext
    +fedora_resource:
    +  base_url: http://localhost:8080/fcrepo/rest
    +log:
    +  level: NOTICE
    +  file: /var/log/islandora/hypercube.log
    +syn:
    +  enable: true
    +  config: /opt/fcrepo/config/syn-settings.xml
    +

    +

    Milliner (Fedora indexing)

    +

    /opt/crayfish/Milliner/cfg/config.yaml | www-data:www-data/644 +

    ---
    +fedora_base_url: http://localhost:8080/fcrepo/rest
    +drupal_base_url: http://localhost
    +modified_date_predicate: http://schema.org/dateModified
    +strip_format_jsonld: true
    +debug: false
    +db.options:
    +  driver: pdo_pgsql
    +  host: 127.0.0.1
    +  port: 5432
    +  dbname: CRAYFISH_DB
    +  user: CRAYFISH_DB_USER
    +  password: CRAYFISH_DB_PASSWORD
    +log:
    +  level: NOTICE
    +  file: /var/log/islandora/milliner.log
    +syn:
    +  enable: true
    +  config: /opt/fcrepo/config/syn-settings.xml
    +

    +

    Recast (Drupal to Fedora URI re-writing)

    +

    /opt/crayfish/Recast/cfg/config.yaml | www-data:www-data/644 +

    ---
    +fedora_resource:
    +  base_url: http://localhost:8080/fcrepo/rest
    +drupal_base_url: http://localhost
    +debug: false
    +log:
    +  level: NOTICE
    +  file: /var/log/islandora/recast.log
    +syn:
    +  enable: true
    +  config: /opt/fcrepo/config/syn-settings.xml
    +namespaces:
    +-
    +  acl: "http://www.w3.org/ns/auth/acl#"
    +  fedora: "http://fedora.info/definitions/v4/repository#"
    +  ldp: "http://www.w3.org/ns/ldp#"
    +  memento: "http://mementoweb.org/ns#"
    +  pcdm: "http://pcdm.org/models#"
    +  pcdmuse: "http://pcdm.org/use#"
    +  webac: "http://fedora.info/definitions/v4/webac#"
    +  vcard: "http://www.w3.org/2006/vcard/ns#"
    +

    +

    Creating Apache Configurations for Crayfish Components

    +

    Finally, we need appropriate Apache configurations for Crayfish; these will allow other services to connect to Crayfish components via their HTTP endpoints.

    +

    Each endpoint we need to be able to connect to will get its own .conf file, which we will then enable.

    +

    NOTICE

    +

    These configurations would potentially have collisions with Drupal routes, if any are created in Drupal with the same name. If this is a concern, it would likely be better to reserve a subdomain or another port specifically for Crayfish. For the purposes of this installation guide, these endpoints will suffice.

    +

    /etc/apache2/conf-available/Homarus.conf | root:root/644 +

    Alias "/homarus" "/opt/crayfish/Homarus/src"
    +<Directory "/opt/crayfish/Homarus/src">
    +  FallbackResource /homarus/index.php
    +  Require all granted
    +  DirectoryIndex index.php
    +  SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
    +</Directory>
    +

    +

    /etc/apache2/conf-available/Houdini.conf | root:root/644 +

    Alias "/houdini" "/opt/crayfish/Houdini/public"
    +<Directory "/opt/crayfish/Houdini/public">
    +  FallbackResource /houdini/index.php
    +  Require all granted
    +  DirectoryIndex index.php
    +  SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
    +</Directory>
    +

    +

    /etc/apache2/conf-available/Hypercube.conf | root:root/644 +

    Alias "/hypercube" "/opt/crayfish/Hypercube/src"
    +<Directory "/opt/crayfish/Hypercube/src">
    +  FallbackResource /hypercube/index.php
    +  Require all granted
    +  DirectoryIndex index.php
    +  SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
    +</Directory>
    +

    +

    /etc/apache2/conf-available/Milliner.conf | root:root/644 +

    Alias "/milliner" "/opt/crayfish/Milliner/src"
    +<Directory "/opt/crayfish/Milliner/src">
    +  FallbackResource /milliner/index.php
    +  Require all granted
    +  DirectoryIndex index.php
    +  SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
    +</Directory>
    +

    +

    /etc/apache2/conf-available/Recast.conf | root:root/644 +

    Alias "/recast" "/opt/crayfish/Recast/src"
    +<Directory "/opt/crayfish/Recast/src">
    +  FallbackResource /recast/index.php
    +  Require all granted
    +  DirectoryIndex index.php
    +  SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
    +</Directory>
    +

    +

    Enabling Each Crayfish Component Apache Configuration

    +

    Enabling each of these configurations involves creating a symlink to them in the conf-enabled directory; the standardized method of doing this in Apache is with a2enconf.

    +
    sudo a2enconf Homarus Houdini Hypercube Milliner Recast
    +
    +

    Restarting the Apache Service

    +

    Finally, to get these new endpoints up and running, we need to restart the Apache service.

    +
    sudo systemctl restart apache2
    +
    + +
    +
    + + + Last update: + January 4, 2024 + + + +
    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/installation/manual/installing-fedora-syn-and-blazegraph/index.html b/installation/manual/installing-fedora-syn-and-blazegraph/index.html new file mode 100644 index 000000000..c13a2c540 --- /dev/null +++ b/installation/manual/installing-fedora-syn-and-blazegraph/index.html @@ -0,0 +1,3408 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Installing Fedora, Syn, and Blazegraph - Islandora + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + + + + + +
    +
    + + + + + + + + + + + + + +

    Installing Fedora, Syn, and Blazegraph

    +

    In this section, we will install:

    +
      +
    • Fedora 6, the back-end repository that Islandora will use
    • +
    • Syn, the authentication broker that will manage communication with Fedora
    • +
    • Blazegraph, the resource index layer on top of Fedora for managing discoverability via RDF
    • +
    +

    Fedora 6

    +

    Stop the Tomcat Service

    +

    We're going to stop the Tomcat service while working on setting up Fedora to prevent any autodeploy misconfigurations.

    +
    sudo systemctl stop tomcat
    +
    +

    Creating a Working Space for Fedora

    +

    Fedora’s configuration and data won’t live with Tomcat itself; rather, we’re going to prepare a space for them to make them easier to manage.

    +
    sudo mkdir -p /opt/fcrepo/data/objects
    +sudo mkdir /opt/fcrepo/config
    +sudo chown -R tomcat:tomcat /opt/fcrepo
    +
    +

    Creating a Database for Fedora

    +

    The method for creating the database here will closely mimic the method we used to create our database for Drupal.

    +
    sudo -u postgres psql
    +create database FEDORA_DB encoding 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' TEMPLATE template0;
    +create user FEDORA_DB_USER with encrypted password 'FEDORA_DB_PASSWORD';
    +grant all privileges on database FEDORA_DB to FEDORA_DB_USER;
    +\q
    +
    +
      +
    • FEDORA_DB: fcrepo
        +
      • This will be used as the database Fedora will store the repository in.
      • +
      +
    • +
    • FEDORA_DB_USER: fedora
    • +
    • FEDORA_DB_PASSWORD: fedora
        +
      • Again, this should be a secure password of some kind; leaving it as fedora is not recommended.
      • +
      +
    • +
    +

    Adding a Fedora Configuration

    +

    The Fedora configuration is going to come in a few different chunks that need to be in place before Fedora will be functional. We’re going to place several files outright, with mildly modified parameters according to our configuration.

    +

    The basics of these configuration files have been pulled largely from the templates in Islandora-Devops/islandora-playbook internal Fedora role; you may consider referencing the playbook’s templates directory for more details.

    +

    Namespace prefixes

    +

    i8_namespaces.yml is a list of namespaces used by Islandora that may not necessarily be present in Fedora; we add them here to ensure we can use them in queries.

    +

    /opt/fcrepo/config/i8_namespaces.yml | tomcat:tomcat/644 +

    # Islandora 8/Fedora namespaces
    +#
    +# This file contains ALL the prefix mappings, if a URI
    +# does not appear in this file it will be displayed as 
    +# the full URI in Fedora. 
    +acl: http://www.w3.org/ns/auth/acl#
    +bf: http://id.loc.gov/ontologies/bibframe/
    +cc: http://creativecommons.org/ns#
    +dc: http://purl.org/dc/elements/1.1/
    +dcterms: http://purl.org/dc/terms/
    +dwc: http://rs.tdwg.org/dwc/terms/
    +ebucore: http://www.ebu.ch/metadata/ontologies/ebucore/ebucore#
    +exif: http://www.w3.org/2003/12/exif/ns#
    +fedoraconfig: http://fedora.info/definitions/v4/config#
    +fedoramodel: info:fedora/fedora-system:def/model#
    +foaf: http://xmlns.com/foaf/0.1/
    +geo: http://www.w3.org/2003/01/geo/wgs84_pos#
    +gn: http://www.geonames.org/ontology#
    +iana: http://www.iana.org/assignments/relation/
    +islandorarelsext: http://islandora.ca/ontology/relsext#
    +islandorarelsint: http://islandora.ca/ontology/relsint#
    +ldp: http://www.w3.org/ns/ldp#
    +memento: http://mementoweb.org/ns#
    +nfo: http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#
    +ore: http://www.openarchives.org/ore/terms/
    +owl: http://www.w3.org/2002/07/owl#
    +premis: http://www.loc.gov/premis/rdf/v1#
    +prov: http://www.w3.org/ns/prov#
    +rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#
    +rdfs: http://www.w3.org/2000/01/rdf-schema#
    +rel: http://id.loc.gov/vocabulary/relators/
    +schema: http://schema.org/
    +skos: http://www.w3.org/2004/02/skos/core#
    +test: info:fedora/test/
    +vcard: http://www.w3.org/2006/vcard/ns#
    +webac: http://fedora.info/definitions/v4/webac#
    +xml: http://www.w3.org/XML/1998/namespace
    +xmlns: http://www.w3.org/2000/xmlns/
    +xs: http://www.w3.org/2001/XMLSchema
    +xsi: http://www.w3.org/2001/XMLSchema-instance
    +

    +

    Allowed External Content Hosts

    +

    We have Fedora provide metadata for some resources that are contained in Drupal. Fedora needs to know to allow access to these External Content hosts.

    +

    We create a file /opt/fcrepo/config/allowed_external_hosts.txt | tomcat:tomcat/644 +

    http://localhost:8000/
    +

    +

    Note: the trailing backslash is important here. For more information on Fedora's External Content and configuring it, see the Fedora Wiki pages

    +

    Fedora configuration properties file

    +

    Fedora 6 now allows you to put all your configuration properties into a single file. We use 0640 permissions as you will want to put your database credentials in here.

    +

    /opt/fcrepo/config/fcrepo.properties | tomcat:tomcat/640 +

    fcrepo.home=FCREPO_HOME
    +# External content using path defined above.
    +fcrepo.external.content.allowed=/opt/fcrepo/config/allowed_external_hosts.txt
    +# Namespace registry using path defined above.
    +fcrepo.namespace.registry=/opt/fcrepo/config/i8_namespaces.yml
    +fcrepo.auth.principal.header.enabled=true
    +# The principal header is the syn-setting.xml "config" element's "header" attribute
    +fcrepo.auth.principal.header.name=X-Islandora
    +# false to use manual versioning, true to create a version on each change
    +fcrepo.autoversioning.enabled=true
    +fcrepo.db.url=FCREPO_DB_URL
    +fcrepo.db.user=FCREPO_DB_USERNAME
    +fcrepo.db.password=FCREPO_DB_PASSWORD
    +fcrepo.ocfl.root=FCREPO_OCFL_ROOT
    +fcrepo.ocfl.temp=FCREPO_TEMP_ROOT
    +fcrepo.ocfl.staging=FCREPO_STAGING_ROOT
    +# Can be sha512 or sha256
    +fcrepo.persistence.defaultDigestAlgorithm=sha512
    +# Jms moved from 61616 to allow external ActiveMQ to use that port
    +fcrepo.dynamic.jms.port=61626
    +# Same as above
    +fcrepo.dynamic.stomp.port=61623
    +fcrepo.velocity.runtime.log=FCREPO_VELOCITY_LOG
    +fcrepo.jms.baseUrl=FCREPO_JMS_BASE
    +

    +
      +
    • FCREPO_HOME - The home directory for all Fedora generated output and state. Unless otherwise specified, all logs, metadata, binaries, and internally generated indexes, etc. It would default to the Tomcat starting directory. A good default would be /opt/fcrepo
    • +
    • +

      FCREPO_DB_URL - This parameter allows you to set the database connection url. In general the format is as follows:

      +

      jdbc:<database_type>://<database_host>:<database_port>/<database_name>

      +

      Fedora currently supports H2, PostgresQL 12.3, MariaDB 10.5.3, and MySQL 8.0

      +

      So using the default ports for the supported databases here are the values we typically use:

      +
        +
      • PostgresQL: jdbc:postgresql://localhost:5432/fcrepo
      • +
      • MariaDB: jdbc:mariadb://localhost:3306/fcrepo
      • +
      • MySQL: jdbc:mysql://localhost:3306/fcrepo
      • +
      +
    • +
    • +

      FCREPO_DB_USERNAME - The database username

      +
    • +
    • FCREPO_DB_PASSWORD - The database password
    • +
    • FCREPO_OCFL_ROOT - Sets the root directory of the OCFL. Defaults to FCREPO_HOME/data/ocfl-root if not set.
    • +
    • FCREPO_TEMP_ROOT - Sets the temp directory used by OCFL. Defaults to FCREPO_HOME/data/temp if not set.
    • +
    • FCREPO_STAGING_ROOT - Sets the staging directory used by OCFL. Defaults to FCREPO_HOME/data/staging if not set.
    • +
    • FCREPO_VELOCITY_LOG - The Fedora HTML template code uses Apache Velocity, which generates a runtime log called velocity.log. Defaults to FCREPO_HOME/logs/velocity. A good choice might be /opt/tomcat/logs/velocity.log
    • +
    • FCREPO_JMS_BASE - This specifies the baseUrl to use when generating JMS messages. You can specify the hostname with or without port and with or without path. If your system is behind a NAT firewall you may need this to avoid your message consumers trying to access the system on an invalid port. If this system property is not set, the host, port and context from the user's request will be used in the emitted JMS messages. If your Alpaca is on the same machine as your Fedora and you use the islandora-indexing-fcrepo, you could use http://localhost:8080/fcrepo/rest.
    • +
    +

    Check the Lyrasis Wiki to find all of Fedora's properties

    +

    Adding the Fedora Variables to JAVA_OPTS

    +

    We need our Tomcat JAVA_OPTS to include references to our repository configuration.

    +

    /opt/tomcat/bin/setenv.sh

    +

    Before:

    +
    +

    3 | export JAVA_OPTS="-Djava.awt.headless=true -server -Xmx1500m -Xms1000m"

    +
    +

    After:

    +
    +

    3 | export JAVA_OPTS="-Djava.awt.headless=true -Dfcrepo.config.file=/opt/fcrepo/config/fcrepo.properties -DconnectionTimeout=-1 -server -Xmx1500m -Xms1000m"

    +
    +

    Ensuring Tomcat Users Are In Place

    +

    While not strictly necessary, we can use the tomcat-users.xml file to give us direct access to the Fedora endpoint. Fedora defines, out of the box, a fedoraAdmin and fedoraUser role that can be reflected in the users list for access. The following file will also include the base tomcat user. As always, these default passwords should likely not stay as the defaults.

    +

    /opt/tomcat/conf/tomcat-users.xml | tomcat:tomcat/600 +

    <?xml version="1.0" encoding="UTF-8"?>
    +<tomcat-users xmlns="http://tomcat.apache.org/xml"
    +              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    +              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
    +              version="1.0">
    +  <role rolename="tomcat"/>
    +  <role rolename="fedoraAdmin"/>
    +  <role rolename="fedoraUser"/>
    +  <user username="tomcat" password="TOMCAT_PASSWORD" roles="tomcat"/>
    +  <user username="fedoraAdmin" password="FEDORA_ADMIN_PASSWORD" roles="fedoraAdmin"/>
    +  <user username="fedoraUser" password="FEDORA_USER_PASSWORD" roles="fedoraUser"/>
    +</tomcat-users>
    +

    +
      +
    • TOMCAT_PASSWORD: tomcat
    • +
    • FEDORA_ADMIN_PASSWORD: islandora
    • +
    • FEDORA_USER_PASSWORD: islandora
    • +
    +

    Downloading and Placing the Latest Release

    +

    Fedora .war files are packaged up as releases on the official GitHub repository. You should download the most recent stable release.

    +
    sudo wget -O fcrepo.war FCREPO_WAR_URL
    +sudo mv fcrepo.war /opt/tomcat/webapps
    +sudo chown tomcat:tomcat /opt/tomcat/webapps/fcrepo.war
    +
    +
      +
    • FCREPO_WAR_URL: This can be found at the fcrepo downloads page; the file you're looking for is:
        +
      • Tagged in green as the 'Latest release'
      • +
      • Named "fcrepo-webapp-VERSION.war"
      • +
      +
    • +
    +

    Start the Tomcat Service

    +

    As before, start the Tomcat service to get Fedora up and running.

    +
    sudo systemctl start tomcat
    +
    +

    Note: sometimes it takes a while for Fedora and Tomcat to start up, usually it shouldn't take longer than 5 minutes.

    +

    Once it starts up, Fedora REST API should be available at http://localhost:8080/fcrepo/rest. The username is fedoraAdmin and we defined the password before as FEDORA_ADMIN_PASSWORD (default: "islandora").

    +

    Syn

    +

    Downloading the Syn JAR File

    +

    A compiled JAR of Syn can be found on the Syn releases page. We’re going to add this to the list libraries accessible to Tomcat.

    +
    sudo wget -P /opt/tomcat/lib SYN_JAR_URL
    +# Ensure the library has the correct permissions.
    +sudo chown -R tomcat:tomcat /opt/tomcat/lib
    +sudo chmod -R 640 /opt/tomcat/lib
    +
    +
      +
    • SYN_JAR_URL: The latest stable release of the Syn JAR from the releases page. Specifically, the JAR compiled as -all.jar is required.
    • +
    +

    Generating an SSL Key for Syn

    +

    For Islandora and Fedora to talk to each other, an SSL key needs to be generated for use with Syn. We’re going to make a spot where such keys can live, and generate one.

    +
    sudo mkdir /opt/keys
    +sudo openssl genrsa -out "/opt/keys/syn_private.key" 2048
    +sudo openssl rsa -pubout -in "/opt/keys/syn_private.key" -out "/opt/keys/syn_public.key"
    +sudo chown www-data:www-data /opt/keys/syn*
    +
    +

    Placing the Syn Settings

    +

    Syn sites and tokens belong in a settings file that we’re going to reference in Tomcat.

    +

    /opt/fcrepo/config/syn-settings.xml | tomcat:tomcat/600 +

    <config version='1' header='X-Islandora'>
    +  <site algorithm='RS256' encoding='PEM' anonymous='true' default='true' path='/opt/keys/syn_public.key'/>
    +  <token user='islandora' roles='fedoraAdmin'>ISLANDORA_SYN_TOKEN</token>
    +</config>
    +

    +
      +
    • ISLANDORA_SYN_TOKEN: islandora
        +
      • This should be a secure generated token rather than this default; it will be configured on the Drupal side later.
      • +
      +
    • +
    +

    Adding the Syn Valve to Tomcat

    +

    Referencing the valve we’ve created in our syn-settings.xml involves creating a <Valve> entry in Tomcat’s context.xml:

    +

    There are two options here:

    +

    1. Enable the Syn Valve for all of Tomcat.

    +

    /opt/tomcat/conf/context.xml

    +

    Before:

    +
    +

    29 | -->

    +

    30 | </Context>

    +
    +

    After:

    +
    +

    29 | -->

    +

    30 | <Valve className="ca.islandora.syn.valve.SynValve" pathname="/opt/fcrepo/config/syn-settings.xml"/>

    +

    31 | </Context>

    +
    +

    2. Enable the Syn Valve for only Fedora.

    +

    Create a new file at

    +

    /opt/tomcat/conf/Catalina/localhost/fcrepo.xml

    +
    <Context>
    +    <Valve className="ca.islandora.syn.valve.SynValve" pathname="/opt/fcrepo/config/syn-settings.xml"/>
    +</Context>
    +
    +

    Your Fedora web application needs to be deployed in Tomcat with the name fcrepo.war. Otherwise, change the name of the above XML file to match the deployed web application's name.

    +

    Restarting Tomcat

    +

    Finally, restart tomcat to apply the new configurations.

    +
    sudo systemctl restart tomcat
    +
    +

    Note: sometimes it takes a while for Fedora and Tomcat to start up, usually it shouldn't take longer than 5 minutes.

    +

    Note: after installing the Syn valve, you'll no longer be able to manually create/edit or delete objects via Fedora Web UI. All communication with Fedora will now be handled from the Islandora module in Drupal.

    +

    Redhat logging

    +

    Redhat systems have stopped generating an all inclusive catalina.out, the catalina.<date>.log does not include web application's log statements. To get Fedora log statements flowing, you can create your own LogBack configuration file and point to it.

    +

    /opt/fcrepo/config/fcrepo-logback.xml | tomcat:tomcat/644 +

    <?xml version="1.0" encoding="UTF-8"?>
    +<!DOCTYPE configuration>
    +<configuration>
    +  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    +    <encoder>
    +      <pattern>%p %d{HH:mm:ss.SSS} [%thread] \(%c{0}\) %m%n</pattern>
    +    </encoder>
    +  </appender>
    +
    +  <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    +    <file>${catalina.base}/logs/fcrepo.log</file>
    +    <append>true</append>
    +    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
    +      <fileNamePattern>${catalina.base}/logs/fcrepo.%d{yyyy-MM-dd}.log.%i</fileNamePattern>
    +      <maxFileSize>10MB</maxFileSize>
    +      <maxHistory>30</maxHistory>
    +      <totalSizeCap>2GB</totalSizeCap>
    +    </rollingPolicy>
    +    <encoder>
    +      <pattern>%p %d{HH:mm:ss.SSS} [%thread] \(%c{0}\) %m%n</pattern>
    +    </encoder>
    +  </appender>
    +
    +  <logger name="org.fcrepo.auth" additivity="false" level="${fcrepo.log.auth:-null}">
    +    <appender-ref ref="STDOUT"/>
    +    <appender-ref ref="FILE"/>
    +  </logger>
    +  <logger name="org.fcrepo.config" additivity="false" level="${fcrepo.log.config:-null}">
    +    <appender-ref ref="STDOUT"/>
    +    <appender-ref ref="FILE"/>
    +  </logger>
    +  <logger name="org.fcrepo.event" additivity="false" level="${fcrepo.log.event:-null}">
    +    <appender-ref ref="STDOUT"/>
    +    <appender-ref ref="FILE"/>
    +  </logger>
    +  <logger name="org.fcrepo.http.api" additivity="false" level="${fcrepo.log.http.api:-null}">
    +    <appender-ref ref="STDOUT"/>
    +    <appender-ref ref="FILE"/>
    +  </logger>
    +  <logger name="org.fcrepo.http.commons" additivity="false" level="${fcrepo.log.http.commons:-null}">
    +    <appender-ref ref="STDOUT"/>
    +    <appender-ref ref="FILE"/>
    +  </logger>
    +  <logger name="org.fcrepo.jms" additivity="false" level="${fcrepo.log.jms:-null}">
    +    <appender-ref ref="STDOUT"/>
    +    <appender-ref ref="FILE"/>
    +  </logger>
    +  <logger name="org.fcrepo.kernel" additivity="false" level="${fcrepo.log.kernel:-null}">
    +    <appender-ref ref="STDOUT"/>
    +    <appender-ref ref="FILE"/>
    +  </logger>
    +  <logger name="org.fcrepo.persistence" additivity="false" level="${fcrepo.log.persistence:-null}">
    +    <appender-ref ref="STDOUT"/>
    +    <appender-ref ref="FILE"/>
    +  </logger>
    +  <logger name="org.fcrepo.search" additivity="false" level="${fcrepo.log.search:-null}">
    +    <appender-ref ref="STDOUT"/>
    +    <appender-ref ref="FILE"/>
    +  </logger>
    +  <logger name="org.fcrepo.storage" additivity="false" level="${fcrepo.log.storage:-null}">
    +    <appender-ref ref="STDOUT"/>
    +    <appender-ref ref="FILE"/>
    +  </logger>
    +  <logger name="org.fcrepo" additivity="false" level="${fcrepo.log:-INFO}">
    +    <appender-ref ref="STDOUT"/>
    +    <appender-ref ref="FILE"/>
    +  </logger>
    +
    +  <root level="${fcrepo.log.root:-WARN}">
    +    <appender-ref ref="STDOUT"/>
    +    <appender-ref ref="FILE"/>
    +  </root>
    +</configuration>
    +

    +

    Then alter your $JAVA_OPTS like above to include +

    -Dlogback.configurationFile=/opt/fcrepo/config/fcrepo-logback.xml
    +

    +

    This will generate a log file at ${catalina.base}/logs/fcrepo.log and will rotate each day or if the logs reaches 10MB. It will maintain 30 days of old logs, or 2GB whichever comes first.

    +

    Blazegraph 2

    +

    Creating a Working Space for Blazegraph

    +

    Blazegraph needs a space for configurations and data; we’re going to create this space in /opt.

    +
    sudo mkdir -p /opt/blazegraph/data
    +sudo mkdir /opt/blazegraph/conf
    +sudo chown -R tomcat:tomcat /opt/blazegraph
    +
    +

    Downloading and Placing the Blazegraph WAR

    +

    The Blazegraph .war file can be found in a few different places, but to ensure we’re able to easily wget it, we’re going to use the maven.org repository link to grab it.

    +
    cd /opt
    +sudo wget -O blazegraph.war BLAZEGRAPH_WARFILE_LINK
    +sudo mv blazegraph.war /opt/tomcat/webapps
    +sudo chown tomcat:tomcat /opt/tomcat/webapps/blazegraph.war
    +
    +
      +
    • BLAZEGRAPH_WAR_URL: You can find a link to this at the Maven repository for Blazegraph; you’ll want to click the link for the latest version of Blazegraph 2.1.x, then get the link to the .war file within that version folder.
    • +
    +

    Once this is downloaded, give it a moment to expand before moving on to the next step.

    +

    Configuring Logging

    +

    We would like to have an appropriate logging configuration for Blazegraph, which can be useful for looking at incoming traffic and determining if anything has gone wrong with Blazegraph. Our logger isn’t going to be much different than the default logger; it can be made more or less verbose by changing the default WARN levels. There are several other loggers that can be enabled, like a SPARQL query trace or summary query evaluation log; if these are desired they should be added in. Consult the Blazegraph documentation for more details.

    +

    /opt/blazegraph/conf/log4j.properties | tomcat:tomcat/644 +

    log4j.rootCategory=WARN, dest1
    +
    +# Loggers.
    +log4j.logger.com.bigdata=WARN
    +log4j.logger.com.bigdata.btree=WARN
    +
    +# Normal data loader (single threaded).
    +#log4j.logger.com.bigdata.rdf.store.DataLoader=INFO
    +
    +# dest1
    +log4j.appender.dest1=org.apache.log4j.ConsoleAppender
    +log4j.appender.dest1.layout=org.apache.log4j.PatternLayout
    +log4j.appender.dest1.layout.ConversionPattern=%-5p: %F:%L: %m%n
    +#log4j.appender.dest1.layout.ConversionPattern=%-5p: %r %l: %m%n
    +#log4j.appender.dest1.layout.ConversionPattern=%-5p: %m%n
    +#log4j.appender.dest1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
    +#log4j.appender.dest1.layout.ConversionPattern=%-4r(%d) [%t] %-5p %c(%l:%M) %x - %m%n
    +
    +# Rule execution log. This is a formatted log file (comma delimited).
    +log4j.logger.com.bigdata.relation.rule.eval.RuleLog=INFO,ruleLog
    +log4j.additivity.com.bigdata.relation.rule.eval.RuleLog=false
    +log4j.appender.ruleLog=org.apache.log4j.FileAppender
    +log4j.appender.ruleLog.Threshold=ALL
    +log4j.appender.ruleLog.File=/var/log/blazegraph/rules.log
    +log4j.appender.ruleLog.Append=true
    +log4j.appender.ruleLog.BufferedIO=false
    +log4j.appender.ruleLog.layout=org.apache.log4j.PatternLayout
    +log4j.appender.ruleLog.layout.ConversionPattern=%m
    +

    +

    Adding a Blazegraph Configuration

    +

    Our configuration will be built from a few different files that we will eventually reference in JAVA_OPTS and directly apply to Blazegraph; these include most of the functional pieces Blazegraph requires, as well as a generalized configuration for the islandora namespace it will use. As with most large configurations like this, these should likely be tuned to your preferences, and the following files only represent sensible defaults.

    +

    /opt/blazegraph/conf/RWStore.properties | tomcat:tomcat/644 +

    com.bigdata.journal.AbstractJournal.file=/opt/blazegraph/data/blazegraph.jnl
    +com.bigdata.journal.AbstractJournal.bufferMode=DiskRW
    +com.bigdata.service.AbstractTransactionService.minReleaseAge=1
    +com.bigdata.journal.Journal.groupCommit=false
    +com.bigdata.btree.writeRetentionQueue.capacity=4000
    +com.bigdata.btree.BTree.branchingFactor=128
    +com.bigdata.journal.AbstractJournal.initialExtent=209715200
    +com.bigdata.journal.AbstractJournal.maximumExtent=209715200
    +com.bigdata.rdf.sail.truthMaintenance=false
    +com.bigdata.rdf.store.AbstractTripleStore.quads=true
    +com.bigdata.rdf.store.AbstractTripleStore.statementIdentifiers=false
    +com.bigdata.rdf.store.AbstractTripleStore.textIndex=false
    +com.bigdata.rdf.store.AbstractTripleStore.axiomsClass=com.bigdata.rdf.axioms.NoAxioms
    +com.bigdata.namespace.kb.lex.com.bigdata.btree.BTree.branchingFactor=400
    +com.bigdata.namespace.kb.spo.com.bigdata.btree.BTree.branchingFactor=1024
    +com.bigdata.journal.Journal.collectPlatformStatistics=false
    +

    +

    /opt/blazegraph/conf/blazegraph.properties | tomcat:tomcat/644 +

    com.bigdata.rdf.store.AbstractTripleStore.textIndex=false
    +com.bigdata.rdf.store.AbstractTripleStore.axiomsClass=com.bigdata.rdf.axioms.OwlAxioms
    +com.bigdata.rdf.sail.isolatableIndices=false
    +com.bigdata.rdf.store.AbstractTripleStore.justify=true
    +com.bigdata.rdf.sail.truthMaintenance=true
    +com.bigdata.rdf.sail.namespace=islandora
    +com.bigdata.rdf.store.AbstractTripleStore.quads=false
    +com.bigdata.namespace.islandora.lex.com.bigdata.btree.BTree.branchingFactor=400
    +com.bigdata.journal.Journal.groupCommit=false
    +com.bigdata.namespace.islandora.spo.com.bigdata.btree.BTree.branchingFactor=1024
    +com.bigdata.rdf.store.AbstractTripleStore.geoSpatial=false
    +com.bigdata.rdf.store.AbstractTripleStore.statementIdentifiers=false
    +

    +

    /opt/blazegraph/conf/inference.nt | tomcat:tomcat/644 +

    <http://pcdm.org/models#memberOf> <http://www.w3.org/2002/07/owl#inverseOf> <http://pcdm.org/models#hasMember> .
    +<http://pcdm.org/models#fileOf> <http://www.w3.org/2002/07/owl#inverseOf> <http://pcdm.org/models#hasFile> .
    +

    +

    Specifying the RWStore.properties in JAVA_OPTS

    +

    In order to enable our configuration when Tomcat starts, we need to reference the location of RWStore.properties in the JAVA_OPTS environment variable that Tomcat uses.

    +

    /opt/tomcat/bin/setenv.sh

    +

    Before:

    +
    +

    3 | export JAVA_OPTS="-Djava.awt.headless=true -Dfcrepo.config.file=/opt/fcrepo/config/fcrepo.properties -DconnectionTimeout=-1 -server -Xmx1500m -Xms1000m"

    +
    +

    After:

    +
    +

    3 | export JAVA_OPTS="-Djava.awt.headless=true -Dfcrepo.config.file=/opt/fcrepo/config/fcrepo.properties -DconnectionTimeout=-1 -Dcom.bigdata.rdf.sail.webapp.ConfigParams.propertyFile=/opt/blazegraph/conf/RWStore.properties -Dlog4j.configuration=file:/opt/blazegraph/conf/log4j.properties -server -Xmx1500m -Xms1000m"

    +
    +

    Restarting Tomcat

    +

    Finally, restart Tomcat to pick up the changes we’ve made.

    +
    sudo systemctl restart tomcat
    +
    +

    Installing Blazegraph Namespaces and Inference

    +

    The two other files we created, blazegraph.properties and inference.nt, contain information that Blazegraph requires in order to establish and correctly use the datasets Islandora will send to it. First, we need to create a dataset - contained in blazegraph.properties - and then we need to inform that dataset of the inference set we have contained in inference.nt.

    +

    curl -X POST -H "Content-Type: text/plain" --data-binary @/opt/blazegraph/conf/blazegraph.properties http://localhost:8080/blazegraph/namespace
    +
    +If this worked correctly, Blazegraph should respond with "CREATED: islandora" to let us know it created the islandora namespace. +
    curl -X POST -H "Content-Type: text/plain" --data-binary @/opt/blazegraph/conf/inference.nt http://localhost:8080/blazegraph/namespace/islandora/sparql
    +
    +If this worked correctly, Blazegraph should respond with some XML letting us know it added the 2 entries from inference.nt to the namespace.

    + +
    +
    + + + Last update: + January 4, 2024 + + + +
    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/installation/manual/installing-karaf-and-alpaca/index.html b/installation/manual/installing-karaf-and-alpaca/index.html new file mode 100644 index 000000000..ef78edca5 --- /dev/null +++ b/installation/manual/installing-karaf-and-alpaca/index.html @@ -0,0 +1,3059 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Installing Karaf and Alpaca - Islandora + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + + + + + +
    +
    + + + + + + + + + + + + + +

    Installing Karaf and Alpaca

    +
    +

    Needs Maintenance

    +

    The manual installation documentation is in need of attention. We are aware that some components no longer work as documented here. If you are interested in helping us improve the documentation, please see Contributing.

    +
    +

    In this section, we will install:

    +
      +
    • Apache ActiveMQ, a messaging server that will be used to handle communication between Alpaca and other components
    • +
    • Apache Karaf, the Java application runtime that Alpaca will be deployed in
    • +
    • Islandora/Alpaca, a suite of Java middleware applications that will handle communication between various components of Islandora.
    • +
    +

    ActiveMQ 5

    +

    Installing ActiveMQ

    +

    In our case, the default installation method for ActiveMQ via apt-get will suffice.

    +
    sudo apt-get -y install activemq
    +
    +

    This will give us:

    +
      +
    • A base configuration at /var/lib/activemq/conf
    • +
    • A data storage directory at /var/lib/activemq/data
    • +
    • The base ActiveMQ installation at /usr/share/activemq
    • +
    • An activemq service that will be run on boot
    • +
    • A user, activemq, who will be in charge of the ActiveMQ service
    • +
    +

    Take note of the version of ActiveMQ we're going to be installing. It needs to match a Karaf blueprint we'll create later. Check the version with

    +
    sudo apt-cache policy activemq
    +
    +

    Write down the version listed under Installed:.

    +

    Karaf 4

    +

    Creating a Karaf User

    +

    Karaf, as well as its processes and service, will be owned by a user in charge of ensuring this portion of the stack is segregated and that the service is running.

    +
    sudo addgroup karaf
    +sudo adduser karaf --ingroup karaf --home /opt/karaf --shell /usr/bin
    +
    +

    As always, you will be prompted for a password, which you should create at this time. All other options can be left blank.

    +

    Downloading and Placing Karaf

    +

    Since there’s no apt-get installer for Karaf, we’re going to manually download and install it directly from its binary installer.

    +

    cd /opt
    +sudo wget -O karaf.tar.gz KARAF_TARBALL_LINK
    +sudo tar -xzvf karaf.tar.gz
    +sudo chown -R karaf:karaf KARAF_DIRECTORY
    +sudo mv KARAF_DIRECTORY/* /opt/karaf
    +
    +- KARAF_TARBALL_LINK: It’s recommended to get the most recent version of Karaf 4.2.x. This will depend on the current version of Karaf, which can be found on the Karaf downloads page under “Karaf Runtime”. Like Solr, you can’t directly wget these links, but clicking on the .tar.gz link for the binary distribution will bring you to a list of mirrors, as well as provide you with a recommended mirror you can use here. +- KARAF_DIRECTORY: This will depend on the exact version being used, but will likely be /opt/apache-karaf-VERSION, where VERSION is the current Karaf version number.

    +

    Configuring Karaf Logging

    +

    We’re going to apply some basic logging to our Karaf installation that should suffice for an example. In a production installation, you may want to play around with some of these values for more personally useful logging.

    +
    sudo mkdir /var/log/karaf
    +sudo chown karaf:karaf /var/log/karaf
    +
    +

    /opt/karaf/etc/org.pos4j.pax.logging.cfg | karaf:karaf/644 +

    # Root logger
    +log4j.rootLogger=INFO, out, osgi:*
    +log4j.throwableRenderer=org.apache.log4j.OsgiThrowableRenderer
    +
    +# File appender
    +log4j.appender.out=org.apache.log4j.RollingFileAppender
    +log4j.appender.out.layout=org.apache.log4j.PatternLayout
    +log4j.appender.out.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name    } - %X{bundle.version} | %m%n
    +log4j.appender.out.file=/var/log/karaf/karaf.log
    +log4j.appender.out.append=true
    +log4j.appender.out.maxFileSize=1MB
    +log4j.appender.out.maxBackupIndex=10
    +
    +# Camel Logger
    +log4j.appender.camel=org.apache.log4j.RollingFileAppender
    +log4j.appender.camel.layout=org.apache.log4j.PatternLayout
    +log4j.appender.camel.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.na    me} - %X{bundle.version} | %m%n
    +log4j.appender.camel.file=/var/log/karaf/camel.log
    +log4j.appender.camel.append=false
    +log4j.appender.camel.maxFileSize=1MB
    +log4j.appender.camel.maxBackupIndex=10
    +
    +log4j.logger.org.apache.camel=INFO, camel
    +
    +# Islandora Logger
    +log4j.appender.islandora=org.apache.log4j.RollingFileAppender
    +log4j.appender.islandora.layout=org.apache.log4j.PatternLayout
    +log4j.appender.islandora.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundl    e.name} - %X{bundle.version} | %m%n
    +log4j.appender.islandora.file=/var/log/karaf/islandora.log
    +log4j.appender.islandora.append=false
    +log4j.appender.islandora.maxFileSize=1MB
    +log4j.appender.islandora.maxBackupIndex=10
    +
    +log4j.logger.ca.islandora.camel=INFO, islandora
    +

    +

    Creating a setenv.sh Script for Karaf

    +

    Similar to Tomcat, our Karaf service is going to rely on a setenv shell script to determine environment variables Karaf needs in place when running. For now, this will simply be the path to JAVA_HOME, but this also accepts many other parameters you can find in the default setenv script.

    +

    /opt/karaf/bin/setenv | karaf:karaf/755 +

    #!/bin/sh
    +export JAVA_HOME="PATH_TO_JAVA_HOME"
    +
    +- PATH_TO_JAVA_HOME: This will be the same JAVA_HOME we used when installing Tomcat , and can be found using the same method (i.e., still /usr/lib/jvm/java-11-openjdk-amd64 if that's what it was before).

    +

    Initializing Karaf

    +

    We’re going to start Karaf, then run the installer to put our configurations in place and generate a Karaf service. Once these are installed, we’re going to stop Karaf, as from there on out its start/stop management should be handled via that service.

    +

    First we need to enable the default Karaf user in /opt/karaf/etc/users.properties:

    +

    Before:

    +
    +

    32 | # karaf = karaf,_g_:admingroup

    +

    33 | # _g_\:admingroup = group,admin,manager,viewer,systembundles,ssh

    +
    +

    After:

    +
    +

    32 | karaf = karaf,_g_:admingroup

    +

    33 | _g_\:admingroup = group,admin,manager,viewer,systembundles,ssh

    +
    +

    Save the file and close it, then:

    +
    sudo -u karaf /opt/karaf/bin/start
    +# You may want to wait a bit for Karaf to start.
    +# If you're not sure whether or not it's running, you can always run:
    +# ps aux | grep karaf
    +# to see if the server is up and running.
    +/opt/karaf/bin/client feature:install wrapper
    +/opt/karaf/bin/client wrapper:install
    +/opt/karaf/bin/stop
    +
    +

    Creating and Starting the Karaf Service

    +

    Installing the Karaf wrapper generates several service files that can be used on different types of systems. For Debian and Ubuntu installation we want to enable the karaf.service service so that Karaf is properly started on boot.

    +
    sudo systemctl enable /opt/karaf/bin/karaf.service
    +sudo systemctl start karaf
    +
    +

    We can check if the service started correctly with:

    +
    sudo systemctl status karaf
    +
    +

    Press Q to close the status.

    +

    Alpaca 1.0.x

    +

    Adding the Required Karaf Repositories

    +

    Karaf features can be installed from several different types of sources, but the fastest and easiest way to do so is from existing repository URLs that we can just plug into Karaf to provide us feature lists prepared and ready for installation. Like most interactions with Karaf, we can add these repositories using its built-in client.

    +
    +

    Notice

    +

    These repositories are updated consistently, and their updates include revised dependency lists. Commonly, when repositories are out of date or otherwise mismatched, feature installation can result in an Unable to resolve root: missing requirement error; for this reason, this guide recommends using recently-updated versions of these repositories. That being said, if such errors occur despite installing the latest versions of these features, the maintainer of the features repository should be informed.

    +
    +

    For the Karaf features we’re going to install, we need a few different repositories to be added to the list:

    +

    /opt/karaf/bin/client repo-add mvn:org.apache.activemq/activemq-karaf/ACTIVEMQ_KARAF_VERSION/xml/features
    +/opt/karaf/bin/client repo-add mvn:org.apache.camel.karaf/apache-camel/APACHE_CAMEL_VERSION/xml/features
    +/opt/karaf/bin/client repo-add mvn:ca.islandora.alpaca/islandora-karaf/ISLANDORA_KARAF_VERSION/xml/features
    +# XXX: This shouldn't be strictly necessary, but appears to be a missing
    +# upstream dependency for some fcrepo features.
    +/opt/karaf/bin/client repo-add mvn:org.apache.jena/jena-osgi-features/JENA_OSGI_VERSION/xml/features
    +
    +- ACTIVEMQ_KARAF_VERSION: The version of ActiveMQ we wrote down at the beginning of this chapter when installing ActiveMQ via apt-get +- APACHE_CAMEL_VERSION: The latest version of Apache Camel 2.x.x; you can find this listed at the apache-camel repository page (e.g., 2.25.4 at the time of writing) +- ISLANDORA_KARAF_VERSION: The latest version of Islandora Karaf 1.x; you can find this listed at the islandora-karaf repository page (e.g., 1.0.5 at the time of writing) +- JENA_OSGI_VERSION: The latest version of the Apache Jena 3.x OSGi features; you can find this listed at the jena-osgi-features repository page (e.g., 3.17.0 at the time of writing)

    +

    Configuring Karaf Features

    +

    Our installed Karaf features require configuration files to know exactly where to route things coming and going from them.

    +

    /opt/karaf/etc/ca.islandora.alpaca.http.client.cfg | karaf:karaf/644 +

    token.value=ISLANDORA_SYN_TOKEN
    +
    +- ISLANDORA_SYN_TOKEN: This should be the same token that was established during the installation of Syn in your syn-settings.xml file

    +

    /opt/karaf/etc/org.fcrepo.camel.indexing.triplestore.cfg | karaf:karaf/644 +

    input.stream=activemq:topic:fedora
    +triplestore.reindex.stream=activemq:queue:triplestore.reindex
    +triplestore.baseUrl=http://localhost:8080/blazegraph/namespace/islandora/sparql
    +

    +

    /opt/karaf/etc/ca.islandora.alpaca.indexing.triplestore.cfg | karaf:karaf/644 +

    error.maxRedeliveries=10
    +index.stream=activemq:queue:islandora-indexing-triplestore-index
    +delete.stream=activemq:queue:islandora-indexing-triplestore-delete
    +triplestore.baseUrl=http://localhost:8080/blazegraph/namespace/islandora/sparql
    +

    +

    /opt/karaf/etc/ca.islandora.alpaca.indexing.fcrepo.cfg | karaf:karaf/644 +

    error.maxRedeliveries=5
    +node.stream=activemq:queue:islandora-indexing-fcrepo-content
    +node.delete.stream=activemq:queue:islandora-indexing-fcrepo-delete
    +media.stream=activemq:queue:islandora-indexing-fcrepo-media
    +file.stream=activemq:queue:islandora-indexing-fcrepo-file
    +file.delete.stream=activemq:queue:islandora-indexing-fcrepo-file-delete
    +milliner.baseUrl=http://localhost/milliner
    +

    +

    Blueprinting Karaf Derivative Connectors

    +

    For those services in Crayfish we have set up to provide derivatives to Islandora resources, we need connector blueprints to tell the derivative connector how to route incoming requests, run conversions, and return outgoing derivatives.

    +

    Our blueprints are going to look largely similar between services, with only a few properties changing between them. Largely, these mainly just need to match the ActiveMQ queues we established in the previous configuration, and route to the correct Crayfish service.

    +

    /opt/karaf/deploy/ca.islandora.alpaca.connector.ocr.blueprint.xml | karaf:karaf/644 +

    <?xml version="1.0" encoding="UTF-8"?>
    +<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
    +       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    +       xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
    +       xsi:schemaLocation="
    +       http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0 http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.1.0.xsd
    +       http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
    +       http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd">
    +
    +  <cm:property-placeholder id="properties" persistent-id="ca.islandora.alpaca.connector.ocr" update-strategy="reload" >
    +    <cm:default-properties>
    +      <cm:property name="error.maxRedeliveries" value="5"/>
    +      <cm:property name="in.stream" value="activemq:queue:islandora-connector-ocr"/>
    +      <cm:property name="derivative.service.url" value="http://localhost/hypercube"/>
    +    </cm:default-properties>
    +  </cm:property-placeholder>
    +
    +  <reference id="broker" interface="org.apache.camel.Component" filter="(osgi.jndi.service.name=fcrepo/Broker)"/>
    +
    +  <bean id="http" class="org.apache.camel.component.http4.HttpComponent"/>
    +  <bean id="https" class="org.apache.camel.component.http4.HttpComponent"/>
    +
    +  <camelContext id="IslandoraConnectorOCR" xmlns="http://camel.apache.org/schema/blueprint">
    +    <package>ca.islandora.alpaca.connector.derivative</package>
    +  </camelContext>
    +
    +</blueprint>
    +

    +

    /opt/karaf/deploy/ca.islandora.alpaca.connector.houdini.blueprint.xml | karaf:karaf/644 +

    <?xml version="1.0" encoding="UTF-8"?>
    +<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
    +       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    +       xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
    +       xsi:schemaLocation="
    +       http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0 http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.1.0.xsd
    +       http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
    +       http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd">
    +
    +  <cm:property-placeholder id="properties" persistent-id="ca.islandora.alpaca.connector.houdini" update-strategy="reload" >
    +    <cm:default-properties>
    +      <cm:property name="error.maxRedeliveries" value="5"/>
    +      <cm:property name="in.stream" value="activemq:queue:islandora-connector-houdini"/>
    +      <cm:property name="derivative.service.url" value="http://localhost/houdini/convert"/>
    +    </cm:default-properties>
    +  </cm:property-placeholder>
    +
    +  <reference id="broker" interface="org.apache.camel.Component" filter="(osgi.jndi.service.name=fcrepo/Broker)"/>
    +
    +  <bean id="http" class="org.apache.camel.component.http4.HttpComponent"/>
    +  <bean id="https" class="org.apache.camel.component.http4.HttpComponent"/>
    +
    +  <camelContext id="IslandoraConnectorHoudini" xmlns="http://camel.apache.org/schema/blueprint">
    +    <package>ca.islandora.alpaca.connector.derivative</package>
    +  </camelContext>
    +
    +</blueprint>
    +

    +

    /opt/karaf/deploy/ca.islandora.alpaca.connector.homarus.blueprint.xml | karaf:karaf/644 +

    <?xml version="1.0" encoding="UTF-8"?>
    +<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
    +       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    +       xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
    +       xsi:schemaLocation="
    +       http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0 http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.1.0.xsd
    +       http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
    +       http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd">
    +
    +  <cm:property-placeholder id="properties" persistent-id="ca.islandora.alpaca.connector.homarus" update-strategy="reload" >
    +    <cm:default-properties>
    +      <cm:property name="error.maxRedeliveries" value="5"/>
    +      <cm:property name="in.stream" value="activemq:queue:islandora-connector-homarus"/>
    +      <cm:property name="derivative.service.url" value="http://localhost/homarus/convert"/>
    +    </cm:default-properties>
    +  </cm:property-placeholder>
    +
    +  <reference id="broker" interface="org.apache.camel.Component" filter="(osgi.jndi.service.name=fcrepo/Broker)"/>
    +
    +  <bean id="http" class="org.apache.camel.component.http4.HttpComponent"/>
    +  <bean id="https" class="org.apache.camel.component.http4.HttpComponent"/>
    +
    +  <camelContext id="IslandoraConnectorHomarus" xmlns="http://camel.apache.org/schema/blueprint">
    +    <package>ca.islandora.alpaca.connector.derivative</package>
    +  </camelContext>
    +
    +</blueprint>
    +

    +

    /opt/karaf/deploy/ca.islandora.alpaca.connector.fits.blueprint.xml | karaf:karaf/644 +

    <?xml version="1.0" encoding="UTF-8"?>
    +<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
    +       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    +       xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
    +       xsi:schemaLocation="
    +       http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0 http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.1.0.xsd
    +       http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
    +       http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd">
    +
    +  <cm:property-placeholder id="properties" persistent-id="ca.islandora.alpaca.connector.fits" update-strategy="reload" >
    +    <cm:default-properties>
    +      <cm:property name="error.maxRedeliveries" value="5"/>
    +      <cm:property name="in.stream" value="activemq:queue:islandora-connector-fits"/>
    +      <cm:property name="derivative.service.url" value="http://localhost/crayfits"/>
    +    </cm:default-properties>
    +  </cm:property-placeholder>
    +
    +  <reference id="broker" interface="org.apache.camel.Component" filter="(osgi.jndi.service.name=fcrepo/Broker)"/>
    +
    +  <bean id="http" class="org.apache.camel.component.http4.HttpComponent"/>
    +  <bean id="https" class="org.apache.camel.component.http4.HttpComponent"/>
    +
    +  <camelContext id="IslandoraConnectorfits" xmlns="http://camel.apache.org/schema/blueprint">
    +    <package>ca.islandora.alpaca.connector.derivative</package>
    +  </camelContext>
    +
    +</blueprint>
    +

    +

    Installing the Required Karaf Features

    +

    Before we can configure the features we’re going to use, they need to be installed. Some of these installations may take some time.

    +
    /opt/karaf/bin/client feature:install camel-blueprint
    +/opt/karaf/bin/client feature:install activemq-blueprint
    +/opt/karaf/bin/client feature:install fcrepo-service-activemq
    +# This again should not be strictly necessary, since this isn't the triplestore
    +# we're using, but is being included here to resolve the aforementioned
    +# missing link in the dependency chain.
    +/opt/karaf/bin/client feature:install jena
    +/opt/karaf/bin/client feature:install fcrepo-camel
    +/opt/karaf/bin/client feature:install fcrepo-indexing-triplestore
    +/opt/karaf/bin/client feature:install islandora-http-client
    +/opt/karaf/bin/client feature:install islandora-indexing-triplestore
    +/opt/karaf/bin/client feature:install islandora-indexing-fcrepo
    +/opt/karaf/bin/client feature:install islandora-connector-derivative
    +
    + +

    At this point, Karaf components should be up and running, but it's a good idea to double-check that this is the case. We can do this from within the Karaf client by taking a look at its component list.

    +
    # Until this point, we've been running Karaf commands from outside; we can hop
    +# into the client, however, and run commands from directly within.
    +/opt/karaf/bin/client
    +# This takes us into the Karaf client so we can run commands.
    +la | grep islandora
    +la | grep fcrepo
    +# It may be a good idea to use this to look up to the other components we
    +# installed.
    +logout
    +
    +

    For the above la | grep commands, components that are running should be listed as Active.

    + +
    +
    + + + Last update: + January 4, 2024 + + + +
    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/installation/manual/installing-solr/index.html b/installation/manual/installing-solr/index.html new file mode 100644 index 000000000..67085337b --- /dev/null +++ b/installation/manual/installing-solr/index.html @@ -0,0 +1,2753 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Installing Solr - Islandora + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + + + + + +
    +
    + + + + + + + + + + + + + +

    Installing Solr

    +
    +

    Needs Maintenance

    +

    The manual installation documentation is in need of attention. We are aware that some components no longer work as documented here. If you are interested in helping us improve the documentation, please see Contributing.

    +
    +

    In this section, we will install:

    + +

    Solr 8

    +

    Downloading and Placing Solr

    +

    The Solr binaries can be found at the Solr downloads page; the most recent stable release of Solr 8 should be used.

    +

    # While generally we download tarballs as .tar.gz files without version
    +# information, the Solr installer is a bit particular in that it expects a .tgz
    +# file with the same name as the extracted folder it contains. It's odd, and we
    +# can't really get around it.
    +cd
    +wget SOLR_DOWNLOAD_LINK
    +tar -xzvf SOLR_TARBALL
    +
    +- SOLR_DOWNLOAD_LINK: NOTICE: This will depend on a few different things, not least of all the current version of Solr. The link to the .tgz for the binary on the downloads page will take you to a list of mirrors that Solr can be downloaded from, and provide you with a preferred mirror at the top. This preferred mirror should be used as the SOLR_DOWNLOAD_LINK. +- SOLR_TARBALL: The filename that was downloaded, e.g., solr-8.9.0.tgz

    +

    Running the Solr Installer

    +

    Solr includes an installer that does most of the heavy lifting of ensuring we have a Solr user, a location where Solr lives, and configurations in place to ensure it’s running on boot.

    +

    sudo UNTARRED_SOLR_FOLDER/bin/install_solr_service.sh SOLR_TARBALL
    +
    +- UNTARRED_SOLR_FOLDER: This will likely simply be solr-VERSION, where VERSION is the version number that was downloaded.

    +

    The port that Solr runs on can potentially be configured at this point, but we'll expect it to be running on 8983.

    +

    Wait until the command output reaches:

    +
    Started Solr server on port 8983 (pid=****). Happy searching!
    +systemd[1]: Started LSB: Controls Apache Solr as a Service.
    +
    +

    After which you can press q to quit the output (this won't kill Solr so it's safe).

    +

    You can check if Solr is running correctly by going to http://localhost:8983/solr

    +

    Increasing the Open File Limit (Optional)

    +

    Solr's installation guide recommends that you increase the open file limit so that operations aren't disrupted while Solr is trying to access things in its index. This limit can be increased while the system is running, but doing so won't persist after a reboot. You can hard-increase this limit using your system's sysctl file:

    +

    /etc/sysctl.conf

    +

    Add the following line to the end of the file:

    +
    fs.file-max = 65535
    +
    +

    Then apply your new configuration.

    +
    sudo sysctl -p
    +
    +

    Creating a New Solr Core

    +

    Initially, our new Solr core will contain a configuration copied from the example included with the installation, so that we have something to work with when we configure this on the Drupal side. We’ll later update this with generated configurations we create in Drupal.

    +

    cd /opt/solr
    +sudo mkdir -p /var/solr/data/SOLR_CORE/conf
    +sudo cp -r example/files/conf/* /var/solr/data/SOLR_CORE/conf
    +sudo chown -R solr:solr /var/solr
    +sudo -u solr bin/solr create -c SOLR_CORE -p 8983
    +
    +- SOLR_CORE: islandora8

    +

    You should see an output similar to this: +

    WARNING: Using _default configset with data driven schema functionality. NOT RECOMMENDED for production use.
    +         To turn off: bin/solr config -c islandora8 -p 8983 -action set-user-property -property update.autoCreateFields -value false
    +
    +Created new core 'islandora8'
    +

    +

    Installing search_api_solr

    +

    Rather than use an out-of-the-box configuration that won’t be suitable for our purposes, we’re going to use the Drupal search_api_solr module to generate one for us. This will also require us to install the module so we can create these configurations using Drush.

    +
    cd /opt/drupal
    +sudo -u www-data composer require drupal/search_api_solr:^4.2
    +drush -y en search_api_solr
    +
    +

    You should see an output similar to this: +

    The following module(s) will be enabled: search_api_solr, language, search_api
    +
    + // Do you want to continue?: yes.
    +
    + [success] Successfully enabled: search_api_solr, language, search_api
    +

    +

    Configuring search_api_solr

    +

    Before we can create configurations to use with Solr, the core we created earlier needs to be referenced in Drupal.

    +

    Log in to the Drupal site at /user using the sitewide administrator username and password (if using defaults from previous chapters this should be islandora and islandora), then navigate to /admin/config/search/search-api/add-server.

    +

    Fill out the server addition form using the following options:

    +

    Adding a Solr Search Server

    +

    Configuring the Standard Solr Connector

    +

    Setting the Solr Install Directory

    +
      +
    • SERVER_NAME: islandora8
        +
      • This is completely arbitrary, and is simply used to differentiate this search server configuration from all others. Write down or otherwise pay attention to the machine_name generated next to the server name you type in; this will be used in the next step.
      • +
      +
    • +
    +

    As a recap for this configuration:

    +
      +
    • Server name should be an arbitrary identifier for this server
    • +
    • Enabled should be checked
    • +
    • Backend should be set to Solr
    • +
    • Under CONFIGURE SOLR BACKEND, Solr Connector should be set to Standard
    • +
    • Under CONFIGURE STANDARD SOLR CONNECTOR:
        +
      • HTTP protocol is simply set to http since we've set this up on the same machine Drupal lives on. On a production installation, Solr should likely be installed behind an HTTPS connection.
      • +
      • Solr host can be set to localhost since, again, this is set up on the same machine Drupal lives on. On a production installation, this may vary, especially if parts of the installation live on different severs
      • +
      • Solr port should be set to the port Solr was installed on, which is 8983 by default
      • +
      • Solr path should be set to the configured path to the instance of Solr; in a default installation, there is only one Solr instance, and it lives at /
      • +
      • Solr core should be the name of the Solr core you created earlier, which is why it's listed as SOLR_CORE here
      • +
      +
    • +
    • Under ADVANCED SERVER CONFIGURATION, solr.install.dir should be set to the path where we installed Solr, which this guide has established at /opt/solr
    • +
    +

    Click Save to create the server configuration.

    +

    NOTICE + You can ignore the error about an incompatible Solr schema; we're going to set this up in the next step. In fact, if you refresh the page after restarting Solr in the next step, you should see the error disappear.

    +

    Generating and Applying Solr Configurations

    +

    Now that our core is in place and our Drupal-side configurations exist, we’re ready to generate Solr configuration files to connect this site to our search engine.

    +

    cd /opt/drupal
    +drush solr-gsc SERVER_MACHINE_NAME /opt/drupal/solrconfig.zip
    +unzip -d ~/solrconfig solrconfig.zip
    +sudo cp ~/solrconfig/* /var/solr/data/SOLR_CORE/conf
    +sudo systemctl restart solr
    +
    +- SERVER_MACHINE_NAME: This should be the machine_name that was automatically generated when creating the configuration in the above step.

    +

    Adding an Index

    +

    In order for content to be indexed back into Solr, a search index needs to be added to our server. Navigate to /admin/config/search/search-api/add-index and check off the things you'd like to be indexed.

    +

    NOTICE + You should come back here later and reconfigure this after completing the last step in this guide. The default indexing configuration is pretty permissive, and you may want to restrict, for example, indexed content to just Islandora-centric bundles. This guide doesn't set up the index's fields either, which are going to be almost wholly dependent on the needs of your installation. Once you complete that configuration later on, re-index Solr from the configuration page of the index we're creating here.

    +

    Adding a Search Index

    +

    Specifying the Solr Server

    +

    Click Save to add your index and kick off indexing of existing items.

    + +
    +
    + + + Last update: + January 4, 2024 + + + +
    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/installation/manual/installing-tomcat-and-cantaloupe/index.html b/installation/manual/installing-tomcat-and-cantaloupe/index.html new file mode 100644 index 000000000..2645be835 --- /dev/null +++ b/installation/manual/installing-tomcat-and-cantaloupe/index.html @@ -0,0 +1,2778 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Installing Tomcat and Cantaloupe - Islandora + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + + + + + +
    +
    + + + + + + + + + + + + + +

    Installing Tomcat and Cantaloupe

    +
    +

    Needs Maintenance

    +

    The manual installation documentation is in need of attention. We are aware that some components no longer work as documented here. If you are interested in helping us improve the documentation, please see Contributing.

    +
    +

    In this section, we will install:

    +
      +
    • Tomcat 9, the Java servlet container that will serve up some Java applications on various endpoints, including, importantly, Fedora
    • +
    • Cantaloupe 5, the image tileserver - running in Tomcat - that will be used to serve up large images in a web-accessible fashion
    • +
    +

    Tomcat 9

    +

    Installing OpenJDK 11

    +

    Tomcat runs in a Java runtime environment, so we'll need one to continue. In our case, OpenJDK 11 is open-source, free to use, and can fairly simply be installed using apt-get:

    +
    sudo apt-get -y install openjdk-11-jdk openjdk-11-jre
    +
    +

    The installation of OpenJDK via apt-get establishes it as the de-facto Java runtime environment to be used on the system, so no further configuration is required.

    +

    The resultant location of the java JRE binary (and therefore, the correct value of JAVA_HOME when it’s referenced) will vary based on the specifics of the machine it’s being installed on; that being said, you can find its exact location using update-alternatives:

    +

    update-alternatives --list java
    +
    +Take a note of this path as we will need it later.

    +

    Creating a tomcat User

    +

    Apache Tomcat, and all its processes, will be owned and managed by a specific user for the purposes of keeping parts of the stack segregated and accountable.

    +
    sudo addgroup tomcat
    +sudo adduser tomcat --ingroup tomcat --home /opt/tomcat --shell /usr/bin
    +
    +

    You will be prompted to create a password for the tomcat user; all the other information as part of the adduser command can be ignored.

    +

    Downloading and Placing Tomcat 9

    +

    Tomcat 9 itself can be installed in several different ways; while it’s possible to install via apt-get, this doesn’t give us a great deal of control over exactly how we’re going to run and manage it; as a critical part of the stack, it is beneficial for our purposes to have a good frame of reference for the inner workings of Tomcat.

    +

    We’re going to download the latest version of Tomcat to /opt and set it up so that it runs automatically. Bear in mind that with the following commands, this is going to be entirely relative to the current version of Tomcat 9, which we’ll try to mitigate as we go.

    +

    cd /opt
    +sudo wget -O tomcat.tar.gz TOMCAT_TARBALL_LINK
    +sudo tar -zxvf tomcat.tar.gz
    +sudo mv /opt/TOMCAT_DIRECTORY/* /opt/tomcat
    +sudo chown -R tomcat:tomcat /opt/tomcat
    +
    +- TOMCAT_TARBALL_LINK: No default can be provided here; you should navigate to the Tomcat 9 downloads page and grab the link to the latest .tar.gz file under the “Core” section of “Binary Distributions”. It is highly recommended to grab the latest version of Tomcat 9, as it will come with associated security patches and fixes. +- TOMCAT_DIRECTORY: This will also depend entirely on the exact version of tomcat downloaded - for example, apache-tomcat-9.0.50. Again, ls /opt can be used to find this.

    +

    Creating a setenv.sh Script

    +

    When Tomcat runs, some configuration needs to be pre-established as a series of environment variables that will be used by the script that runs it.

    +

    /opt/tomcat/bin/setenv.sh | tomcat:tomcat/755 +

    export CATALINA_HOME="/opt/tomcat"
    +export JAVA_HOME="PATH_TO_JAVA_HOME"
    +export JAVA_OPTS="-Djava.awt.headless=true -server -Xmx1500m -Xms1000m"
    +
    +- PATH_TO_JAVA_HOME: This will vary a bit depending on the environment, but will likely live in /usr/lib/jvm somewhere (e.g., /usr/lib/jvm/java-11-openjdk-amd64); again, in an Ubunutu environment you can check a part of this using update-alternatives --list java, which will give you the path to the JRE binary within the Java home. Note that update-alternatives --list java will give you the path to the binary, so for PATH_TO_JAVA_HOME delete the /bin/java at the end to get the Java home directory, so it should look something like this: +
    export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
    +

    +

    Creating the Tomcat Service

    +

    Tomcat includes two shell scripts we’re going to make use of - startup.sh and shutdown.sh - which are light wrappers on top of a third script, catalina.sh, which manages spinning up and shutting down the Tomcat server.

    +

    Debian and Ubuntu use systemctl to manage services; we’re going to create a .service file that can run these shell scripts.

    +

    /etc/systemd/system/tomcat.service | root:root/755 +

    [Unit]
    +Description=Tomcat
    +
    +[Service]
    +Type=forking
    +ExecStart=/opt/tomcat/bin/startup.sh
    +ExecStop=/opt/tomcat/bin/shutdown.sh
    +SyslogIdentifier=tomcat
    +
    +[Install]
    +WantedBy=multi-user.target
    +

    +

    Enabling and Starting Tomcat

    +

    We’re going to both enable and start Tomcat. Enabling Tomcat will ensure that it starts on boot, the timing of which is defined by the [Install] section’s WantedBy statement, which specifies what it should start after. This is separate from starting it, which we need to do now in order to get Tomcat up and running without requiring a reboot.

    +
    sudo systemctl enable tomcat
    +sudo systemctl start tomcat
    +
    +

    We can check that Tomcat has started by running sudo systemctl status tomcat | grep Active; we should see that Tomcat is active (running), which is the correct result of startup.sh finishing its run successfully.

    +

    Installing Cantaloupe 5

    +

    Since version 5, Cantaloupe is released as a standalone Java application and is no longer deployed in Tomcat via a .war file. Even so, we can still fine-tune how it runs and even install it as a service.

    +

    Downloading Cantaloupe

    +

    Releases of Cantaloupe live on the Cantaloupe release page; the latest version can be found here as a .zip file.

    +

    sudo wget -O /opt/cantaloupe.zip CANTALOUPE_RELEASE_URL
    +sudo unzip /opt/cantaloupe.zip
    +
    +- CANTALOUPE_RELEASE_URL: It’s recommended we grab the latest version of Cantaloupe 5. This can be found on the above-linked release page, as the .zip version; for example, https://github.com/cantaloupe-project/cantaloupe/releases/download/v5.0.3/cantaloupe-5.0.3.zip - make sure not to download the source code zip file as that isn't compiled for running out-of-the-box.

    +

    Creating a Cantaloupe Configuration

    +

    Cantaloupe pulls its configuration from a file called cantaloupe.properties; there are also some other files that can contain instructions for Cantaloupe while it’s running; specifically, we’re going to copy over the delegates.rb file, which can also contain custom configuration. We won’t make use of this file; we’re just copying it over for demonstration purposes.

    +

    Creating these files from scratch is not recommended; rather, we’re going to take the default cantaloupe configurations and plop them into their own folder so we can work with them.

    +

    sudo mkdir /opt/cantaloupe_config
    +sudo cp CANTALOUPE_VER/cantaloupe.properties.sample /opt/cantaloupe_config/cantaloupe.properties
    +sudo cp CANTALOUPE_VER/delegates.rb.sample /opt/cantaloupe_config/delegates.rb
    +
    +- CANTALOUPE_VER: This will depend on the exact version of Cantaloupe downloaded; in the above example release, this would be cantaloupe-5.0.3

    +

    The out-of-the-box configuration will work fine for our purposes, but it’s highly recommended that you take a look through the cantaloupe.properties and see what changes can be made; specifically, logging to actual logfiles isn’t set up by default, so you may want to take a peek at the log.application.SyslogAppender or log.application.RollingFileAppender, as well as changing the logging level.

    +

    Installing and configuring Cantaloupe as a service

    +

    Since it is a standalone application, we can configure Cantaloupe as a systemd service like we did with Tomcat, so it can start on boot:

    +

    /etc/systemd/system/cantaloupe.service | root:root/755 +

    [Unit]
    +Description=Cantaloupe
    +
    +[Service]
    +ExecStart=java -cp /opt/CANTALOUPE_VER/CANTALOUPE_VER.jar -Dcantaloupe.config=/opt/cantaloupe_config/cantaloupe.properties -Xmx1500m -Xms1000m edu.illinois.library.cantaloupe.StandaloneEntry
    +SyslogIdentifier=cantaloupe
    +
    +[Install]
    +WantedBy=multi-user.target
    +
    +- CANTALOUPE_VER: This will depend on the exact version of Cantaloupe downloaded; in the above example release, this would be cantaloupe-5.0.3

    +

    We can now enable the service and run it:

    +
    sudo systemctl enable cantaloupe
    +sudo systemctl start cantaloupe
    +
    +

    We can check the service status with sudo systemctl status cantaloupe | grep Active and the splash screen of Cantaloupe should be available at http://localhost:8182

    + +
    +
    + + + Last update: + January 4, 2024 + + + +
    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/installation/manual/installing_composer_drush_and_drupal/index.html b/installation/manual/installing_composer_drush_and_drupal/index.html index 3a5205e95..4798ad292 100644 --- a/installation/manual/installing_composer_drush_and_drupal/index.html +++ b/installation/manual/installing_composer_drush_and_drupal/index.html @@ -1,2783 +1,15 @@ - - - - - - - - - - - - - - - - - - - - - - - - Installing Composer, Drush, and Drupal - Islandora - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - Skip to content - - -
    -
    - -
    - - - - -
    - - -
    - -
    - - - - - - -
    -
    - - - -
    -
    -
    - - - - -
    -
    -
    - - - - - - - -
    -
    - - - - - - - - - - - - - -

    Installing Composer, Drush, and Drupal

    -
    -

    Needs Maintenance

    -

    The manual installation documentation is in need of attention. We are aware that some components no longer work as documented here. If you are interested in helping us improve the documentation, please see Contributing.

    -
    -

    In this section, we will install:

    -
      -
    • Composer at its current latest version, the package manager that will allow us to install PHP applications
    • -
    • Either the Islandora Starter Site, or the Drupal recommended-project, which will install, among other things:
        -
      • Drush 10 at its latest version, the command-line PHP application for running tasks in Drupal
      • -
      • Drupal 9 at its latest version, the content management system Islandora uses for content modelling and front-end display
      • -
      -
    • -
    -

    Install Composer

    -

    Download and install Composer 2.x

    -

    Composer provides PHP code that we can use to install it. After downloading and running the installer, we’re going to move the generated executable to a place in $PATH, removing its extension:

    -
    curl "https://getcomposer.org/installer" > composer-install.php
    -chmod +x composer-install.php
    -php composer-install.php
    -sudo mv composer.phar /usr/local/bin/composer
    -
    -

    Download and Scaffold Drupal

    -

    At this point, you have the option of using the Islandora Starter Site, with its pre-selected modules -and configurations which function "out of the box," or build a clean stock Drupal via the Drupal Recommended Project and install -Islandora modules as you desire.

    -

    Option 1: Create a project using the Islandora Starter Site

    -

    Navigate to the folder where you want to put your Islandora project (in our case /var/www), and -create the Islandora Starter Site:

    -
    cd /var/www
    -composer create-project islandora/islandora-starter-site
    -
    -

    This will install all PHP dependencies, including Drush, and scaffold the site.

    -

    Drush is not accessible via $PATH, but is available using the command composer exec -- drush

    - -

    Navigate to the folder where you want to put your Drupal project (in our case /var/www), and -create the Drupal Recommended Project:

    -
    cd /var/www
    -composer create-project drupal/recommended-project my-project
    -
    -

    Make the new webroot accessible in Apache

    -

    Before we can proceed with the actual site installation, we’re going to need to make our new Drupal installation the default web-accessible location Apache serves up. This will include an appropriate ports.conf file, and replacing the default enabled site.

    -
    -

    Notice

    -

    Out of the box, these files will contain support for SSL, which we will not be setting up in this guide (and therefore removing with these overwritten configurations), but which are absolutely indispensable to a production site. This guide does not recommend any particular SSL certificate authority or installation method, but you may find DigitalOcean's tutorial helpful.

    -
    -

    /etc/apache2/ports.conf | root:root/644 -

    Listen 80
    -

    -

    Remove everything but the "Listen 80" line. You can leave the comments in if you want.

    -

    /etc/apache2/sites-enabled/000-default.conf | root:root/777 -

    <VirtualHost *:80>
    -  ServerName SERVER_NAME
    -  DocumentRoot "/opt/drupal/web"
    -  <Directory "/opt/drupal/web">
    -    Options Indexes FollowSymLinks MultiViews
    -    AllowOverride all
    -    Require all granted
    -  </Directory>
    -  # Ensure some logging is in place.
    -  ErrorLog "/var/log/apache2/localhost_error.log"
    -  CustomLog "/var/log/apache2/localhost_access.log" combined
    -</VirtualHost>
    -
    -- SERVER_NAME: localhost - - For a development environment hosted on your own machine or a VM, localhost should suffice. Realistically, this should be the domain or IP address the server will be accessed at.

    -

    Restart the Apache 2 service to apply these changes:

    -
    sudo systemctl restart apache2
    -
    -

    Prepare the PostgreSQL database

    -

    PostgreSQL roles are directly tied to users. We’re going to ensure a user is in place, create a role for them in PostgreSQL, and create a database for them that we can use to install Drupal.

    -

    # Run psql as the postgres user, the only user currently with any PostgreSQL
    -# access.
    -sudo -u postgres psql
    -# Then, run these commands within psql itself:
    -create database DRUPAL_DB encoding 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' TEMPLATE template0;
    -create user DRUPAL_DB_USER with encrypted password 'DRUPAL_DB_PASSWORD';
    -grant all privileges on database DRUPAL_DB to DRUPAL_DB_USER;
    -# Then, quit psql.
    -\q
    -
    -- DRUPAL_DB: drupal9 - - This will be used as the core database that Drupal is installed into -- DRUPAL_DB_USER: drupal - - Specifically, this is the user that will connect to the PostgreSQL database being created, not the user that will be logging into Drupal -- DRUPAL_DB_PASSWORD: drupal - - This should be a secure password; it’s recommended to use a password generator to create this such as the one provided by random.org

    -

    Install Drupal using Drush

    -

    The Drupal installation process can be done through the GUI in a series of form steps, or can be done quickly using Drush's site-install command. It can be invoked with the full list of parameters (such as --db-url and --site-name), but if parameters are missing, they will be asked of you interactively.

    -

    Option 1: Site install the Starter Site with existing configs

    -

    Follow the instructions in the README of the Islandora Starter Site. -The steps are not reproduced here to remove redundancy. When this installation is done, you'll have a starter site ready-to-go. Once you set up the external services in the next sections, you'll need to configure Drupal to know where they are.

    - -

    cd /var/www/drupal
    -drush -y site-install standard --db-url="pgsql://DRUPAL_DB_USER:DRUPAL_DB_PASSWORD@127.0.0.1:5432/DRUPAL_DB" --site-name="SITE_NAME" --account-name=DRUPAL_LOGIN --account-pass=DRUPAL_PASS
    -
    -This uses the same parameters from the above step, as well as:

    -
      -
    • SITE_NAME: Islandora 2.0
        -
      • This is arbitrary, and is simply used to title the site on the home page
      • -
      -
    • -
    • DRUPAL_LOGIN: islandora
        -
      • The Drupal administrative username to use
      • -
      -
    • -
    • DRUPAL_PASS: islandora
        -
      • The password to use for the Drupal administrative user
      • -
      -
    • -
    -

    Congratulations, you have a Drupal site! It currently isn’t really configured to do anything, but we’ll get those portions set up in the coming sections.

    - -
    -
    - - - Last update: - November 1, 2023 - - - -
    - - - - - - -
    -
    - - -
    - -
    - - - -
    -
    -
    -
    - - - - - - - - - \ No newline at end of file + + + + Redirecting... + + + + + + +Redirecting... + + diff --git a/installation/manual/installing_crayfish/index.html b/installation/manual/installing_crayfish/index.html index 4c2400694..6a6b66b9e 100644 --- a/installation/manual/installing_crayfish/index.html +++ b/installation/manual/installing_crayfish/index.html @@ -1,3011 +1,15 @@ - - - - - - - - - - - - - - - - - - - - - - - - Installing Crayfish - Islandora - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - Skip to content - - -
    -
    - -
    - - - - -
    - - -
    - -
    - - - - - - -
    -
    - - - -
    -
    -
    - - - - -
    -
    -
    - - - - - - - -
    -
    - - - - - - - - - - - - - -

    Installing Crayfish

    -
    -

    Needs Maintenance

    -

    The manual installation documentation is in need of attention. We are aware that some components no longer work as documented here. If you are interested in helping us improve the documentation, please see Contributing.

    -
    -

    In this section, we will install:

    -
      -
    • Islandora/Crayfish, the suite of microservices that power the backend of Islandora 2.0
    • -
    • Indvidual microservices underneath Crayfish
    • -
    -

    Crayfish 2.0

    -

    Installing Prerequisites

    -

    Some packages need to be installed before we can proceed with installing Crayfish; these packages are used by the microservices within Crayfish. These include:

    -
      -
    • Imagemagick, which will be used for image processing. We'll be using the LYRASIS build of imagemagick here, which supports JP2 files.
    • -
    • Tesseract, which will be used for optical character recognition; note that by default Tesseract can only understand English; several other individual Tesseract language packs can be installed using apt-get, and a list of available packs can be procured with sudo apt-cache search tesseract-ocr
    • -
    • FFMPEG, which will be used for video processing
    • -
    • Poppler, which will be used for generating PDFs
    • -
    -
    sudo add-apt-repository -y ppa:lyrasis/imagemagick-jp2
    -sudo apt-get update
    -sudo apt-get -y install imagemagick tesseract-ocr ffmpeg poppler-utils
    -
    -

    NOTICE: If you get the sudo: apt-add-repository: command not found, run sudo apt-get install software-properties-common in order to make the command available.

    -

    Cloning and Installing Crayfish

    -

    We’re going to clone Crayfish to /opt, and individually run composer install against each of the microservice subdirectories.

    -
    cd /opt
    -sudo git clone https://github.com/Islandora/Crayfish.git crayfish
    -sudo chown -R www-data:www-data crayfish
    -sudo -u www-data composer install -d crayfish/Homarus
    -sudo -u www-data composer install -d crayfish/Houdini
    -sudo -u www-data composer install -d crayfish/Hypercube
    -sudo -u www-data composer install -d crayfish/Milliner
    -sudo -u www-data composer install -d crayfish/Recast
    -
    -

    Preparing Logging

    -

    Not much needs to happen here; Crayfish opts for a simple logging approach, with one .log file for each component. We’ll create a folder where each logfile can live.

    -
    sudo mkdir /var/log/islandora
    -sudo chown www-data:www-data /var/log/islandora
    -
    -

    Configuring Crayfish Components

    -

    Each Crayfish component requires one or more .yaml file(s) to ensure everything is wired up correctly.

    -

    NOTICE

    -

    The following configuration files represent somewhat sensible defaults; you should take consideration of the logging levels in use, as this can vary in desirability from installation to installation. Also note that in all cases, http URLs are being used, as this guide does not deal with setting up https support. In a production installation, this should not be the case. These files also assume a connection to a PostgreSQL database; use a pdo_mysql driver and the appropriate 3306 port if using MySQL.

    -

    Homarus (Audio/Video derivatives)

    -

    /opt/crayfish/Homarus/cfg/config.yaml | www-data:www-data/644 -

    ---
    -homarus:
    -  executable: ffmpeg
    -  mime_types:
    -    valid:
    -      - video/mp4
    -      - video/x-msvideo
    -      - video/ogg
    -      - audio/x-wav
    -      - audio/mpeg
    -      - audio/aac
    -      - image/jpeg
    -      - image/png
    -    default: video/mp4
    -  mime_to_format:
    -    valid:
    -      - video/mp4_mp4
    -      - video/x-msvideo_avi
    -      - video/ogg_ogg
    -      - audio/x-wav_wav
    -      - audio/mpeg_mp3
    -      - audio/aac_m4a
    -      - image/jpeg_image2pipe
    -      - image/png_image2pipe
    -    default: mp4
    -fedora_resource:
    -  base_url: http://localhost:8080/fcrepo/rest
    -log:
    -  level: NOTICE
    -  file: /var/log/islandora/homarus.log
    -syn:
    -  enable: true
    -  config: /opt/fcrepo/config/syn-settings.xml
    -

    -

    Houdini (Image derivatives)

    -

    Currently the Houdini microservice uses a different system (Symfony) than the other microservices, this requires different configuration.

    -

    /opt/crayfish/Houdini/config/services.yaml | www-data:www-data/644 -

    # This file is the entry point to configure your own services.
    -# Files in the packages/ subdirectory configure your dependencies.
    -# Put parameters here that don't need to change on each machine where the app is deployed
    -# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
    -parameters:
    -    app.executable: /usr/local/bin/convert
    -    app.formats.valid:
    -        - image/jpeg
    -        - image/png
    -        - image/tiff
    -        - image/jp2
    -    app.formats.default: image/jpeg
    -
    -services:
    -    # default configuration for services in *this* file
    -    _defaults:
    -        autowire: true      # Automatically injects dependencies in your services.
    -        autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
    -
    -    # makes classes in src/ available to be used as services
    -    # this creates a service per class whose id is the fully-qualified class name
    -    App\Islandora\Houdini\:
    -        resource: '../src/*'
    -        exclude: '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'
    -
    -    # controllers are imported separately to make sure services can be injected
    -    # as action arguments even if you don't extend any base controller class
    -    App\Islandora\Houdini\Controller\HoudiniController:
    -        public: false
    -        bind:
    -            $formats: '%app.formats.valid%'
    -            $default_format: '%app.formats.default%'
    -            $executable: '%app.executable%'
    -        tags: ['controller.service_arguments']
    -
    -    # add more service definitions when explicit configuration is needed
    -    # please note that last definitions always *replace* previous ones
    -

    -

    /opt/crayfish/Houdini/config/packages/crayfish_commons.yml | www-data:www-data/644 -

    crayfish_commons:
    -  fedora_base_uri: 'http://localhost:8080/fcrepo/rest'
    -  syn_config: '/opt/fcrepo/config/syn-settings.xml'
    -

    -

    /opt/crayfish/Houdini/config/packages/monolog.yml | www-data:www-data/644 -

    monolog:
    -
    -  handlers:
    -
    -    houdini:
    -      type: rotating_file
    -      path: /var/log/islandora/Houdini.log
    -      level: DEBUG
    -      max_files: 1
    -

    -

    The below files are two versions of the same file to enable or disable JWT token authentication.

    -

    /opt/crayfish/Houdini/config/packages/security.yml | www-data:www-data/644

    -

    Enabled JWT token authentication: -

    security:
    -
    -    # https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
    -    providers:
    -        jwt_user_provider:
    -            id: Islandora\Crayfish\Commons\Syn\JwtUserProvider
    -
    -    firewalls:
    -        dev:
    -            pattern: ^/(_(profiler|wdt)|css|images|js)/
    -            security: false
    -        main:
    -            anonymous: false
    -            # Need stateless or it reloads the User based on a token.
    -            stateless: true
    -
    -            provider: jwt_user_provider
    -            guard:
    -                authenticators:
    -                    - Islandora\Crayfish\Commons\Syn\JwtAuthenticator
    -
    -            # activate different ways to authenticate
    -            # https://symfony.com/doc/current/security.html#firewalls-authentication
    -
    -            # https://symfony.com/doc/current/security/impersonating_user.html
    -            # switch_user: true
    -
    -
    -    # Easy way to control access for large sections of your site
    -    # Note: Only the *first* access control that matches will be used
    -    access_control:
    -        # - { path: ^/admin, roles: ROLE_ADMIN }
    -        # - { path: ^/profile, roles: ROLE_USER }
    -

    -

    Disabled JWT token authentication: -

    security:
    -
    -    # https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
    -    providers:
    -        jwt_user_provider:
    -            id: Islandora\Crayfish\Commons\Syn\JwtUserProvider
    -
    -    firewalls:
    -        dev:
    -            pattern: ^/(_(profiler|wdt)|css|images|js)/
    -            security: false
    -        main:
    -            anonymous: true
    -            # Need stateless or it reloads the User based on a token.
    -            stateless: true
    -

    -

    Hypercube (OCR)

    -

    /opt/crayfish/Hypercube/cfg/config.yaml | www-data:www-data/644 -

    ---
    -hypercube:
    -  tesseract_executable: tesseract
    -  pdftotext_executable: pdftotext
    -fedora_resource:
    -  base_url: http://localhost:8080/fcrepo/rest
    -log:
    -  level: NOTICE
    -  file: /var/log/islandora/hypercube.log
    -syn:
    -  enable: true
    -  config: /opt/fcrepo/config/syn-settings.xml
    -

    -

    Milliner (Fedora indexing)

    -

    /opt/crayfish/Milliner/cfg/config.yaml | www-data:www-data/644 -

    ---
    -fedora_base_url: http://localhost:8080/fcrepo/rest
    -drupal_base_url: http://localhost
    -modified_date_predicate: http://schema.org/dateModified
    -strip_format_jsonld: true
    -debug: false
    -db.options:
    -  driver: pdo_pgsql
    -  host: 127.0.0.1
    -  port: 5432
    -  dbname: CRAYFISH_DB
    -  user: CRAYFISH_DB_USER
    -  password: CRAYFISH_DB_PASSWORD
    -log:
    -  level: NOTICE
    -  file: /var/log/islandora/milliner.log
    -syn:
    -  enable: true
    -  config: /opt/fcrepo/config/syn-settings.xml
    -

    -

    Recast (Drupal to Fedora URI re-writing)

    -

    /opt/crayfish/Recast/cfg/config.yaml | www-data:www-data/644 -

    ---
    -fedora_resource:
    -  base_url: http://localhost:8080/fcrepo/rest
    -drupal_base_url: http://localhost
    -debug: false
    -log:
    -  level: NOTICE
    -  file: /var/log/islandora/recast.log
    -syn:
    -  enable: true
    -  config: /opt/fcrepo/config/syn-settings.xml
    -namespaces:
    --
    -  acl: "http://www.w3.org/ns/auth/acl#"
    -  fedora: "http://fedora.info/definitions/v4/repository#"
    -  ldp: "http://www.w3.org/ns/ldp#"
    -  memento: "http://mementoweb.org/ns#"
    -  pcdm: "http://pcdm.org/models#"
    -  pcdmuse: "http://pcdm.org/use#"
    -  webac: "http://fedora.info/definitions/v4/webac#"
    -  vcard: "http://www.w3.org/2006/vcard/ns#"
    -

    -

    Creating Apache Configurations for Crayfish Components

    -

    Finally, we need appropriate Apache configurations for Crayfish; these will allow other services to connect to Crayfish components via their HTTP endpoints.

    -

    Each endpoint we need to be able to connect to will get its own .conf file, which we will then enable.

    -

    NOTICE

    -

    These configurations would potentially have collisions with Drupal routes, if any are created in Drupal with the same name. If this is a concern, it would likely be better to reserve a subdomain or another port specifically for Crayfish. For the purposes of this installation guide, these endpoints will suffice.

    -

    /etc/apache2/conf-available/Homarus.conf | root:root/644 -

    Alias "/homarus" "/opt/crayfish/Homarus/src"
    -<Directory "/opt/crayfish/Homarus/src">
    -  FallbackResource /homarus/index.php
    -  Require all granted
    -  DirectoryIndex index.php
    -  SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
    -</Directory>
    -

    -

    /etc/apache2/conf-available/Houdini.conf | root:root/644 -

    Alias "/houdini" "/opt/crayfish/Houdini/public"
    -<Directory "/opt/crayfish/Houdini/public">
    -  FallbackResource /houdini/index.php
    -  Require all granted
    -  DirectoryIndex index.php
    -  SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
    -</Directory>
    -

    -

    /etc/apache2/conf-available/Hypercube.conf | root:root/644 -

    Alias "/hypercube" "/opt/crayfish/Hypercube/src"
    -<Directory "/opt/crayfish/Hypercube/src">
    -  FallbackResource /hypercube/index.php
    -  Require all granted
    -  DirectoryIndex index.php
    -  SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
    -</Directory>
    -

    -

    /etc/apache2/conf-available/Milliner.conf | root:root/644 -

    Alias "/milliner" "/opt/crayfish/Milliner/src"
    -<Directory "/opt/crayfish/Milliner/src">
    -  FallbackResource /milliner/index.php
    -  Require all granted
    -  DirectoryIndex index.php
    -  SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
    -</Directory>
    -

    -

    /etc/apache2/conf-available/Recast.conf | root:root/644 -

    Alias "/recast" "/opt/crayfish/Recast/src"
    -<Directory "/opt/crayfish/Recast/src">
    -  FallbackResource /recast/index.php
    -  Require all granted
    -  DirectoryIndex index.php
    -  SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
    -</Directory>
    -

    -

    Enabling Each Crayfish Component Apache Configuration

    -

    Enabling each of these configurations involves creating a symlink to them in the conf-enabled directory; the standardized method of doing this in Apache is with a2enconf.

    -
    sudo a2enconf Homarus Houdini Hypercube Milliner Recast
    -
    -

    Restarting the Apache Service

    -

    Finally, to get these new endpoints up and running, we need to restart the Apache service.

    -
    sudo systemctl restart apache2
    -
    - -
    -
    - - - Last update: - November 1, 2023 - - - -
    - - - - - - -
    -
    - - -
    - -
    - - - -
    -
    -
    -
    - - - - - - - - - \ No newline at end of file + + + + Redirecting... + + + + + + +Redirecting... + + diff --git a/installation/manual/installing_fedora_syn_and_blazegraph/index.html b/installation/manual/installing_fedora_syn_and_blazegraph/index.html index a82967c34..3047934b8 100644 --- a/installation/manual/installing_fedora_syn_and_blazegraph/index.html +++ b/installation/manual/installing_fedora_syn_and_blazegraph/index.html @@ -1,3408 +1,15 @@ - - - - - - - - - - - - - - - - - - - - - - - - Installing Fedora, Syn, and Blazegraph - Islandora - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - Skip to content - - -
    -
    - -
    - - - - -
    - - -
    - -
    - - - - - - -
    -
    - - - -
    -
    -
    - - - - -
    -
    -
    - - - - - - - -
    -
    - - - - - - - - - - - - - -

    Installing Fedora, Syn, and Blazegraph

    -

    In this section, we will install:

    -
      -
    • Fedora 6, the back-end repository that Islandora will use
    • -
    • Syn, the authentication broker that will manage communication with Fedora
    • -
    • Blazegraph, the resource index layer on top of Fedora for managing discoverability via RDF
    • -
    -

    Fedora 6

    -

    Stop the Tomcat Service

    -

    We're going to stop the Tomcat service while working on setting up Fedora to prevent any autodeploy misconfigurations.

    -
    sudo systemctl stop tomcat
    -
    -

    Creating a Working Space for Fedora

    -

    Fedora’s configuration and data won’t live with Tomcat itself; rather, we’re going to prepare a space for them to make them easier to manage.

    -
    sudo mkdir -p /opt/fcrepo/data/objects
    -sudo mkdir /opt/fcrepo/config
    -sudo chown -R tomcat:tomcat /opt/fcrepo
    -
    -

    Creating a Database for Fedora

    -

    The method for creating the database here will closely mimic the method we used to create our database for Drupal.

    -
    sudo -u postgres psql
    -create database FEDORA_DB encoding 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' TEMPLATE template0;
    -create user FEDORA_DB_USER with encrypted password 'FEDORA_DB_PASSWORD';
    -grant all privileges on database FEDORA_DB to FEDORA_DB_USER;
    -\q
    -
    -
      -
    • FEDORA_DB: fcrepo
        -
      • This will be used as the database Fedora will store the repository in.
      • -
      -
    • -
    • FEDORA_DB_USER: fedora
    • -
    • FEDORA_DB_PASSWORD: fedora
        -
      • Again, this should be a secure password of some kind; leaving it as fedora is not recommended.
      • -
      -
    • -
    -

    Adding a Fedora Configuration

    -

    The Fedora configuration is going to come in a few different chunks that need to be in place before Fedora will be functional. We’re going to place several files outright, with mildly modified parameters according to our configuration.

    -

    The basics of these configuration files have been pulled largely from the templates in Islandora-Devops/islandora-playbook internal Fedora role; you may consider referencing the playbook’s templates directory for more details.

    -

    Namespace prefixes

    -

    i8_namespaces.yml is a list of namespaces used by Islandora that may not necessarily be present in Fedora; we add them here to ensure we can use them in queries.

    -

    /opt/fcrepo/config/i8_namespaces.yml | tomcat:tomcat/644 -

    # Islandora 8/Fedora namespaces
    -#
    -# This file contains ALL the prefix mappings, if a URI
    -# does not appear in this file it will be displayed as 
    -# the full URI in Fedora. 
    -acl: http://www.w3.org/ns/auth/acl#
    -bf: http://id.loc.gov/ontologies/bibframe/
    -cc: http://creativecommons.org/ns#
    -dc: http://purl.org/dc/elements/1.1/
    -dcterms: http://purl.org/dc/terms/
    -dwc: http://rs.tdwg.org/dwc/terms/
    -ebucore: http://www.ebu.ch/metadata/ontologies/ebucore/ebucore#
    -exif: http://www.w3.org/2003/12/exif/ns#
    -fedoraconfig: http://fedora.info/definitions/v4/config#
    -fedoramodel: info:fedora/fedora-system:def/model#
    -foaf: http://xmlns.com/foaf/0.1/
    -geo: http://www.w3.org/2003/01/geo/wgs84_pos#
    -gn: http://www.geonames.org/ontology#
    -iana: http://www.iana.org/assignments/relation/
    -islandorarelsext: http://islandora.ca/ontology/relsext#
    -islandorarelsint: http://islandora.ca/ontology/relsint#
    -ldp: http://www.w3.org/ns/ldp#
    -memento: http://mementoweb.org/ns#
    -nfo: http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#
    -ore: http://www.openarchives.org/ore/terms/
    -owl: http://www.w3.org/2002/07/owl#
    -premis: http://www.loc.gov/premis/rdf/v1#
    -prov: http://www.w3.org/ns/prov#
    -rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#
    -rdfs: http://www.w3.org/2000/01/rdf-schema#
    -rel: http://id.loc.gov/vocabulary/relators/
    -schema: http://schema.org/
    -skos: http://www.w3.org/2004/02/skos/core#
    -test: info:fedora/test/
    -vcard: http://www.w3.org/2006/vcard/ns#
    -webac: http://fedora.info/definitions/v4/webac#
    -xml: http://www.w3.org/XML/1998/namespace
    -xmlns: http://www.w3.org/2000/xmlns/
    -xs: http://www.w3.org/2001/XMLSchema
    -xsi: http://www.w3.org/2001/XMLSchema-instance
    -

    -

    Allowed External Content Hosts

    -

    We have Fedora provide metadata for some resources that are contained in Drupal. Fedora needs to know to allow access to these External Content hosts.

    -

    We create a file /opt/fcrepo/config/allowed_external_hosts.txt | tomcat:tomcat/644 -

    http://localhost:8000/
    -

    -

    Note: the trailing backslash is important here. For more information on Fedora's External Content and configuring it, see the Fedora Wiki pages

    -

    Fedora configuration properties file

    -

    Fedora 6 now allows you to put all your configuration properties into a single file. We use 0640 permissions as you will want to put your database credentials in here.

    -

    /opt/fcrepo/config/fcrepo.properties | tomcat:tomcat/640 -

    fcrepo.home=FCREPO_HOME
    -# External content using path defined above.
    -fcrepo.external.content.allowed=/opt/fcrepo/config/allowed_external_hosts.txt
    -# Namespace registry using path defined above.
    -fcrepo.namespace.registry=/opt/fcrepo/config/i8_namespaces.yml
    -fcrepo.auth.principal.header.enabled=true
    -# The principal header is the syn-setting.xml "config" element's "header" attribute
    -fcrepo.auth.principal.header.name=X-Islandora
    -# false to use manual versioning, true to create a version on each change
    -fcrepo.autoversioning.enabled=true
    -fcrepo.db.url=FCREPO_DB_URL
    -fcrepo.db.user=FCREPO_DB_USERNAME
    -fcrepo.db.password=FCREPO_DB_PASSWORD
    -fcrepo.ocfl.root=FCREPO_OCFL_ROOT
    -fcrepo.ocfl.temp=FCREPO_TEMP_ROOT
    -fcrepo.ocfl.staging=FCREPO_STAGING_ROOT
    -# Can be sha512 or sha256
    -fcrepo.persistence.defaultDigestAlgorithm=sha512
    -# Jms moved from 61616 to allow external ActiveMQ to use that port
    -fcrepo.dynamic.jms.port=61626
    -# Same as above
    -fcrepo.dynamic.stomp.port=61623
    -fcrepo.velocity.runtime.log=FCREPO_VELOCITY_LOG
    -fcrepo.jms.baseUrl=FCREPO_JMS_BASE
    -

    -
      -
    • FCREPO_HOME - The home directory for all Fedora generated output and state. Unless otherwise specified, all logs, metadata, binaries, and internally generated indexes, etc. It would default to the Tomcat starting directory. A good default would be /opt/fcrepo
    • -
    • -

      FCREPO_DB_URL - This parameter allows you to set the database connection url. In general the format is as follows:

      -

      jdbc:<database_type>://<database_host>:<database_port>/<database_name>

      -

      Fedora currently supports H2, PostgresQL 12.3, MariaDB 10.5.3, and MySQL 8.0

      -

      So using the default ports for the supported databases here are the values we typically use:

      -
        -
      • PostgresQL: jdbc:postgresql://localhost:5432/fcrepo
      • -
      • MariaDB: jdbc:mariadb://localhost:3306/fcrepo
      • -
      • MySQL: jdbc:mysql://localhost:3306/fcrepo
      • -
      -
    • -
    • -

      FCREPO_DB_USERNAME - The database username

      -
    • -
    • FCREPO_DB_PASSWORD - The database password
    • -
    • FCREPO_OCFL_ROOT - Sets the root directory of the OCFL. Defaults to FCREPO_HOME/data/ocfl-root if not set.
    • -
    • FCREPO_TEMP_ROOT - Sets the temp directory used by OCFL. Defaults to FCREPO_HOME/data/temp if not set.
    • -
    • FCREPO_STAGING_ROOT - Sets the staging directory used by OCFL. Defaults to FCREPO_HOME/data/staging if not set.
    • -
    • FCREPO_VELOCITY_LOG - The Fedora HTML template code uses Apache Velocity, which generates a runtime log called velocity.log. Defaults to FCREPO_HOME/logs/velocity. A good choice might be /opt/tomcat/logs/velocity.log
    • -
    • FCREPO_JMS_BASE - This specifies the baseUrl to use when generating JMS messages. You can specify the hostname with or without port and with or without path. If your system is behind a NAT firewall you may need this to avoid your message consumers trying to access the system on an invalid port. If this system property is not set, the host, port and context from the user's request will be used in the emitted JMS messages. If your Alpaca is on the same machine as your Fedora and you use the islandora-indexing-fcrepo, you could use http://localhost:8080/fcrepo/rest.
    • -
    -

    Check the Lyrasis Wiki to find all of Fedora's properties

    -

    Adding the Fedora Variables to JAVA_OPTS

    -

    We need our Tomcat JAVA_OPTS to include references to our repository configuration.

    -

    /opt/tomcat/bin/setenv.sh

    -

    Before:

    -
    -

    3 | export JAVA_OPTS="-Djava.awt.headless=true -server -Xmx1500m -Xms1000m"

    -
    -

    After:

    -
    -

    3 | export JAVA_OPTS="-Djava.awt.headless=true -Dfcrepo.config.file=/opt/fcrepo/config/fcrepo.properties -DconnectionTimeout=-1 -server -Xmx1500m -Xms1000m"

    -
    -

    Ensuring Tomcat Users Are In Place

    -

    While not strictly necessary, we can use the tomcat-users.xml file to give us direct access to the Fedora endpoint. Fedora defines, out of the box, a fedoraAdmin and fedoraUser role that can be reflected in the users list for access. The following file will also include the base tomcat user. As always, these default passwords should likely not stay as the defaults.

    -

    /opt/tomcat/conf/tomcat-users.xml | tomcat:tomcat/600 -

    <?xml version="1.0" encoding="UTF-8"?>
    -<tomcat-users xmlns="http://tomcat.apache.org/xml"
    -              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    -              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
    -              version="1.0">
    -  <role rolename="tomcat"/>
    -  <role rolename="fedoraAdmin"/>
    -  <role rolename="fedoraUser"/>
    -  <user username="tomcat" password="TOMCAT_PASSWORD" roles="tomcat"/>
    -  <user username="fedoraAdmin" password="FEDORA_ADMIN_PASSWORD" roles="fedoraAdmin"/>
    -  <user username="fedoraUser" password="FEDORA_USER_PASSWORD" roles="fedoraUser"/>
    -</tomcat-users>
    -

    -
      -
    • TOMCAT_PASSWORD: tomcat
    • -
    • FEDORA_ADMIN_PASSWORD: islandora
    • -
    • FEDORA_USER_PASSWORD: islandora
    • -
    -

    Downloading and Placing the Latest Release

    -

    Fedora .war files are packaged up as releases on the official GitHub repository. You should download the most recent stable release.

    -
    sudo wget -O fcrepo.war FCREPO_WAR_URL
    -sudo mv fcrepo.war /opt/tomcat/webapps
    -sudo chown tomcat:tomcat /opt/tomcat/webapps/fcrepo.war
    -
    -
      -
    • FCREPO_WAR_URL: This can be found at the fcrepo downloads page; the file you're looking for is:
        -
      • Tagged in green as the 'Latest release'
      • -
      • Named "fcrepo-webapp-VERSION.war"
      • -
      -
    • -
    -

    Start the Tomcat Service

    -

    As before, start the Tomcat service to get Fedora up and running.

    -
    sudo systemctl start tomcat
    -
    -

    Note: sometimes it takes a while for Fedora and Tomcat to start up, usually it shouldn't take longer than 5 minutes.

    -

    Once it starts up, Fedora REST API should be available at http://localhost:8080/fcrepo/rest. The username is fedoraAdmin and we defined the password before as FEDORA_ADMIN_PASSWORD (default: "islandora").

    -

    Syn

    -

    Downloading the Syn JAR File

    -

    A compiled JAR of Syn can be found on the Syn releases page. We’re going to add this to the list libraries accessible to Tomcat.

    -
    sudo wget -P /opt/tomcat/lib SYN_JAR_URL
    -# Ensure the library has the correct permissions.
    -sudo chown -R tomcat:tomcat /opt/tomcat/lib
    -sudo chmod -R 640 /opt/tomcat/lib
    -
    -
      -
    • SYN_JAR_URL: The latest stable release of the Syn JAR from the releases page. Specifically, the JAR compiled as -all.jar is required.
    • -
    -

    Generating an SSL Key for Syn

    -

    For Islandora and Fedora to talk to each other, an SSL key needs to be generated for use with Syn. We’re going to make a spot where such keys can live, and generate one.

    -
    sudo mkdir /opt/keys
    -sudo openssl genrsa -out "/opt/keys/syn_private.key" 2048
    -sudo openssl rsa -pubout -in "/opt/keys/syn_private.key" -out "/opt/keys/syn_public.key"
    -sudo chown www-data:www-data /opt/keys/syn*
    -
    -

    Placing the Syn Settings

    -

    Syn sites and tokens belong in a settings file that we’re going to reference in Tomcat.

    -

    /opt/fcrepo/config/syn-settings.xml | tomcat:tomcat/600 -

    <config version='1' header='X-Islandora'>
    -  <site algorithm='RS256' encoding='PEM' anonymous='true' default='true' path='/opt/keys/syn_public.key'/>
    -  <token user='islandora' roles='fedoraAdmin'>ISLANDORA_SYN_TOKEN</token>
    -</config>
    -

    -
      -
    • ISLANDORA_SYN_TOKEN: islandora
        -
      • This should be a secure generated token rather than this default; it will be configured on the Drupal side later.
      • -
      -
    • -
    -

    Adding the Syn Valve to Tomcat

    -

    Referencing the valve we’ve created in our syn-settings.xml involves creating a <Valve> entry in Tomcat’s context.xml:

    -

    There are two options here:

    -

    1. Enable the Syn Valve for all of Tomcat.

    -

    /opt/tomcat/conf/context.xml

    -

    Before:

    -
    -

    29 | -->

    -

    30 | </Context>

    -
    -

    After:

    -
    -

    29 | -->

    -

    30 | <Valve className="ca.islandora.syn.valve.SynValve" pathname="/opt/fcrepo/config/syn-settings.xml"/>

    -

    31 | </Context>

    -
    -

    2. Enable the Syn Valve for only Fedora.

    -

    Create a new file at

    -

    /opt/tomcat/conf/Catalina/localhost/fcrepo.xml

    -
    <Context>
    -    <Valve className="ca.islandora.syn.valve.SynValve" pathname="/opt/fcrepo/config/syn-settings.xml"/>
    -</Context>
    -
    -

    Your Fedora web application needs to be deployed in Tomcat with the name fcrepo.war. Otherwise, change the name of the above XML file to match the deployed web application's name.

    -

    Restarting Tomcat

    -

    Finally, restart tomcat to apply the new configurations.

    -
    sudo systemctl restart tomcat
    -
    -

    Note: sometimes it takes a while for Fedora and Tomcat to start up, usually it shouldn't take longer than 5 minutes.

    -

    Note: after installing the Syn valve, you'll no longer be able to manually create/edit or delete objects via Fedora Web UI. All communication with Fedora will now be handled from the Islandora module in Drupal.

    -

    Redhat logging

    -

    Redhat systems have stopped generating an all inclusive catalina.out, the catalina.<date>.log does not include web application's log statements. To get Fedora log statements flowing, you can create your own LogBack configuration file and point to it.

    -

    /opt/fcrepo/config/fcrepo-logback.xml | tomcat:tomcat/644 -

    <?xml version="1.0" encoding="UTF-8"?>
    -<!DOCTYPE configuration>
    -<configuration>
    -  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    -    <encoder>
    -      <pattern>%p %d{HH:mm:ss.SSS} [%thread] \(%c{0}\) %m%n</pattern>
    -    </encoder>
    -  </appender>
    -
    -  <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    -    <file>${catalina.base}/logs/fcrepo.log</file>
    -    <append>true</append>
    -    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
    -      <fileNamePattern>${catalina.base}/logs/fcrepo.%d{yyyy-MM-dd}.log.%i</fileNamePattern>
    -      <maxFileSize>10MB</maxFileSize>
    -      <maxHistory>30</maxHistory>
    -      <totalSizeCap>2GB</totalSizeCap>
    -    </rollingPolicy>
    -    <encoder>
    -      <pattern>%p %d{HH:mm:ss.SSS} [%thread] \(%c{0}\) %m%n</pattern>
    -    </encoder>
    -  </appender>
    -
    -  <logger name="org.fcrepo.auth" additivity="false" level="${fcrepo.log.auth:-null}">
    -    <appender-ref ref="STDOUT"/>
    -    <appender-ref ref="FILE"/>
    -  </logger>
    -  <logger name="org.fcrepo.config" additivity="false" level="${fcrepo.log.config:-null}">
    -    <appender-ref ref="STDOUT"/>
    -    <appender-ref ref="FILE"/>
    -  </logger>
    -  <logger name="org.fcrepo.event" additivity="false" level="${fcrepo.log.event:-null}">
    -    <appender-ref ref="STDOUT"/>
    -    <appender-ref ref="FILE"/>
    -  </logger>
    -  <logger name="org.fcrepo.http.api" additivity="false" level="${fcrepo.log.http.api:-null}">
    -    <appender-ref ref="STDOUT"/>
    -    <appender-ref ref="FILE"/>
    -  </logger>
    -  <logger name="org.fcrepo.http.commons" additivity="false" level="${fcrepo.log.http.commons:-null}">
    -    <appender-ref ref="STDOUT"/>
    -    <appender-ref ref="FILE"/>
    -  </logger>
    -  <logger name="org.fcrepo.jms" additivity="false" level="${fcrepo.log.jms:-null}">
    -    <appender-ref ref="STDOUT"/>
    -    <appender-ref ref="FILE"/>
    -  </logger>
    -  <logger name="org.fcrepo.kernel" additivity="false" level="${fcrepo.log.kernel:-null}">
    -    <appender-ref ref="STDOUT"/>
    -    <appender-ref ref="FILE"/>
    -  </logger>
    -  <logger name="org.fcrepo.persistence" additivity="false" level="${fcrepo.log.persistence:-null}">
    -    <appender-ref ref="STDOUT"/>
    -    <appender-ref ref="FILE"/>
    -  </logger>
    -  <logger name="org.fcrepo.search" additivity="false" level="${fcrepo.log.search:-null}">
    -    <appender-ref ref="STDOUT"/>
    -    <appender-ref ref="FILE"/>
    -  </logger>
    -  <logger name="org.fcrepo.storage" additivity="false" level="${fcrepo.log.storage:-null}">
    -    <appender-ref ref="STDOUT"/>
    -    <appender-ref ref="FILE"/>
    -  </logger>
    -  <logger name="org.fcrepo" additivity="false" level="${fcrepo.log:-INFO}">
    -    <appender-ref ref="STDOUT"/>
    -    <appender-ref ref="FILE"/>
    -  </logger>
    -
    -  <root level="${fcrepo.log.root:-WARN}">
    -    <appender-ref ref="STDOUT"/>
    -    <appender-ref ref="FILE"/>
    -  </root>
    -</configuration>
    -

    -

    Then alter your $JAVA_OPTS like above to include -

    -Dlogback.configurationFile=/opt/fcrepo/config/fcrepo-logback.xml
    -

    -

    This will generate a log file at ${catalina.base}/logs/fcrepo.log and will rotate each day or if the logs reaches 10MB. It will maintain 30 days of old logs, or 2GB whichever comes first.

    -

    Blazegraph 2

    -

    Creating a Working Space for Blazegraph

    -

    Blazegraph needs a space for configurations and data; we’re going to create this space in /opt.

    -
    sudo mkdir -p /opt/blazegraph/data
    -sudo mkdir /opt/blazegraph/conf
    -sudo chown -R tomcat:tomcat /opt/blazegraph
    -
    -

    Downloading and Placing the Blazegraph WAR

    -

    The Blazegraph .war file can be found in a few different places, but to ensure we’re able to easily wget it, we’re going to use the maven.org repository link to grab it.

    -
    cd /opt
    -sudo wget -O blazegraph.war BLAZEGRAPH_WARFILE_LINK
    -sudo mv blazegraph.war /opt/tomcat/webapps
    -sudo chown tomcat:tomcat /opt/tomcat/webapps/blazegraph.war
    -
    -
      -
    • BLAZEGRAPH_WAR_URL: You can find a link to this at the Maven repository for Blazegraph; you’ll want to click the link for the latest version of Blazegraph 2.1.x, then get the link to the .war file within that version folder.
    • -
    -

    Once this is downloaded, give it a moment to expand before moving on to the next step.

    -

    Configuring Logging

    -

    We would like to have an appropriate logging configuration for Blazegraph, which can be useful for looking at incoming traffic and determining if anything has gone wrong with Blazegraph. Our logger isn’t going to be much different than the default logger; it can be made more or less verbose by changing the default WARN levels. There are several other loggers that can be enabled, like a SPARQL query trace or summary query evaluation log; if these are desired they should be added in. Consult the Blazegraph documentation for more details.

    -

    /opt/blazegraph/conf/log4j.properties | tomcat:tomcat/644 -

    log4j.rootCategory=WARN, dest1
    -
    -# Loggers.
    -log4j.logger.com.bigdata=WARN
    -log4j.logger.com.bigdata.btree=WARN
    -
    -# Normal data loader (single threaded).
    -#log4j.logger.com.bigdata.rdf.store.DataLoader=INFO
    -
    -# dest1
    -log4j.appender.dest1=org.apache.log4j.ConsoleAppender
    -log4j.appender.dest1.layout=org.apache.log4j.PatternLayout
    -log4j.appender.dest1.layout.ConversionPattern=%-5p: %F:%L: %m%n
    -#log4j.appender.dest1.layout.ConversionPattern=%-5p: %r %l: %m%n
    -#log4j.appender.dest1.layout.ConversionPattern=%-5p: %m%n
    -#log4j.appender.dest1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
    -#log4j.appender.dest1.layout.ConversionPattern=%-4r(%d) [%t] %-5p %c(%l:%M) %x - %m%n
    -
    -# Rule execution log. This is a formatted log file (comma delimited).
    -log4j.logger.com.bigdata.relation.rule.eval.RuleLog=INFO,ruleLog
    -log4j.additivity.com.bigdata.relation.rule.eval.RuleLog=false
    -log4j.appender.ruleLog=org.apache.log4j.FileAppender
    -log4j.appender.ruleLog.Threshold=ALL
    -log4j.appender.ruleLog.File=/var/log/blazegraph/rules.log
    -log4j.appender.ruleLog.Append=true
    -log4j.appender.ruleLog.BufferedIO=false
    -log4j.appender.ruleLog.layout=org.apache.log4j.PatternLayout
    -log4j.appender.ruleLog.layout.ConversionPattern=%m
    -

    -

    Adding a Blazegraph Configuration

    -

    Our configuration will be built from a few different files that we will eventually reference in JAVA_OPTS and directly apply to Blazegraph; these include most of the functional pieces Blazegraph requires, as well as a generalized configuration for the islandora namespace it will use. As with most large configurations like this, these should likely be tuned to your preferences, and the following files only represent sensible defaults.

    -

    /opt/blazegraph/conf/RWStore.properties | tomcat:tomcat/644 -

    com.bigdata.journal.AbstractJournal.file=/opt/blazegraph/data/blazegraph.jnl
    -com.bigdata.journal.AbstractJournal.bufferMode=DiskRW
    -com.bigdata.service.AbstractTransactionService.minReleaseAge=1
    -com.bigdata.journal.Journal.groupCommit=false
    -com.bigdata.btree.writeRetentionQueue.capacity=4000
    -com.bigdata.btree.BTree.branchingFactor=128
    -com.bigdata.journal.AbstractJournal.initialExtent=209715200
    -com.bigdata.journal.AbstractJournal.maximumExtent=209715200
    -com.bigdata.rdf.sail.truthMaintenance=false
    -com.bigdata.rdf.store.AbstractTripleStore.quads=true
    -com.bigdata.rdf.store.AbstractTripleStore.statementIdentifiers=false
    -com.bigdata.rdf.store.AbstractTripleStore.textIndex=false
    -com.bigdata.rdf.store.AbstractTripleStore.axiomsClass=com.bigdata.rdf.axioms.NoAxioms
    -com.bigdata.namespace.kb.lex.com.bigdata.btree.BTree.branchingFactor=400
    -com.bigdata.namespace.kb.spo.com.bigdata.btree.BTree.branchingFactor=1024
    -com.bigdata.journal.Journal.collectPlatformStatistics=false
    -

    -

    /opt/blazegraph/conf/blazegraph.properties | tomcat:tomcat/644 -

    com.bigdata.rdf.store.AbstractTripleStore.textIndex=false
    -com.bigdata.rdf.store.AbstractTripleStore.axiomsClass=com.bigdata.rdf.axioms.OwlAxioms
    -com.bigdata.rdf.sail.isolatableIndices=false
    -com.bigdata.rdf.store.AbstractTripleStore.justify=true
    -com.bigdata.rdf.sail.truthMaintenance=true
    -com.bigdata.rdf.sail.namespace=islandora
    -com.bigdata.rdf.store.AbstractTripleStore.quads=false
    -com.bigdata.namespace.islandora.lex.com.bigdata.btree.BTree.branchingFactor=400
    -com.bigdata.journal.Journal.groupCommit=false
    -com.bigdata.namespace.islandora.spo.com.bigdata.btree.BTree.branchingFactor=1024
    -com.bigdata.rdf.store.AbstractTripleStore.geoSpatial=false
    -com.bigdata.rdf.store.AbstractTripleStore.statementIdentifiers=false
    -

    -

    /opt/blazegraph/conf/inference.nt | tomcat:tomcat/644 -

    <http://pcdm.org/models#memberOf> <http://www.w3.org/2002/07/owl#inverseOf> <http://pcdm.org/models#hasMember> .
    -<http://pcdm.org/models#fileOf> <http://www.w3.org/2002/07/owl#inverseOf> <http://pcdm.org/models#hasFile> .
    -

    -

    Specifying the RWStore.properties in JAVA_OPTS

    -

    In order to enable our configuration when Tomcat starts, we need to reference the location of RWStore.properties in the JAVA_OPTS environment variable that Tomcat uses.

    -

    /opt/tomcat/bin/setenv.sh

    -

    Before:

    -
    -

    3 | export JAVA_OPTS="-Djava.awt.headless=true -Dfcrepo.config.file=/opt/fcrepo/config/fcrepo.properties -DconnectionTimeout=-1 -server -Xmx1500m -Xms1000m"

    -
    -

    After:

    -
    -

    3 | export JAVA_OPTS="-Djava.awt.headless=true -Dfcrepo.config.file=/opt/fcrepo/config/fcrepo.properties -DconnectionTimeout=-1 -Dcom.bigdata.rdf.sail.webapp.ConfigParams.propertyFile=/opt/blazegraph/conf/RWStore.properties -Dlog4j.configuration=file:/opt/blazegraph/conf/log4j.properties -server -Xmx1500m -Xms1000m"

    -
    -

    Restarting Tomcat

    -

    Finally, restart Tomcat to pick up the changes we’ve made.

    -
    sudo systemctl restart tomcat
    -
    -

    Installing Blazegraph Namespaces and Inference

    -

    The two other files we created, blazegraph.properties and inference.nt, contain information that Blazegraph requires in order to establish and correctly use the datasets Islandora will send to it. First, we need to create a dataset - contained in blazegraph.properties - and then we need to inform that dataset of the inference set we have contained in inference.nt.

    -

    curl -X POST -H "Content-Type: text/plain" --data-binary @/opt/blazegraph/conf/blazegraph.properties http://localhost:8080/blazegraph/namespace
    -
    -If this worked correctly, Blazegraph should respond with "CREATED: islandora" to let us know it created the islandora namespace. -
    curl -X POST -H "Content-Type: text/plain" --data-binary @/opt/blazegraph/conf/inference.nt http://localhost:8080/blazegraph/namespace/islandora/sparql
    -
    -If this worked correctly, Blazegraph should respond with some XML letting us know it added the 2 entries from inference.nt to the namespace.

    - -
    -
    - - - Last update: - November 1, 2023 - - - -
    - - - - - - -
    -
    - - -
    - -
    - - - -
    -
    -
    -
    - - - - - - - - - \ No newline at end of file + + + + Redirecting... + + + + + + +Redirecting... + + diff --git a/installation/manual/installing_karaf_and_alpaca/index.html b/installation/manual/installing_karaf_and_alpaca/index.html index ef0b2810d..34dcb49f2 100644 --- a/installation/manual/installing_karaf_and_alpaca/index.html +++ b/installation/manual/installing_karaf_and_alpaca/index.html @@ -1,3059 +1,15 @@ - - - - - - - - - - - - - - - - - - - - - - - - Installing Karaf and Alpaca - Islandora - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - Skip to content - - -
    -
    - -
    - - - - -
    - - -
    - -
    - - - - - - -
    -
    - - - -
    -
    -
    - - - - -
    -
    -
    - - - - - - - -
    -
    - - - - - - - - - - - - - -

    Installing Karaf and Alpaca

    -
    -

    Needs Maintenance

    -

    The manual installation documentation is in need of attention. We are aware that some components no longer work as documented here. If you are interested in helping us improve the documentation, please see Contributing.

    -
    -

    In this section, we will install:

    -
      -
    • Apache ActiveMQ, a messaging server that will be used to handle communication between Alpaca and other components
    • -
    • Apache Karaf, the Java application runtime that Alpaca will be deployed in
    • -
    • Islandora/Alpaca, a suite of Java middleware applications that will handle communication between various components of Islandora.
    • -
    -

    ActiveMQ 5

    -

    Installing ActiveMQ

    -

    In our case, the default installation method for ActiveMQ via apt-get will suffice.

    -
    sudo apt-get -y install activemq
    -
    -

    This will give us:

    -
      -
    • A base configuration at /var/lib/activemq/conf
    • -
    • A data storage directory at /var/lib/activemq/data
    • -
    • The base ActiveMQ installation at /usr/share/activemq
    • -
    • An activemq service that will be run on boot
    • -
    • A user, activemq, who will be in charge of the ActiveMQ service
    • -
    -

    Take note of the version of ActiveMQ we're going to be installing. It needs to match a Karaf blueprint we'll create later. Check the version with

    -
    sudo apt-cache policy activemq
    -
    -

    Write down the version listed under Installed:.

    -

    Karaf 4

    -

    Creating a Karaf User

    -

    Karaf, as well as its processes and service, will be owned by a user in charge of ensuring this portion of the stack is segregated and that the service is running.

    -
    sudo addgroup karaf
    -sudo adduser karaf --ingroup karaf --home /opt/karaf --shell /usr/bin
    -
    -

    As always, you will be prompted for a password, which you should create at this time. All other options can be left blank.

    -

    Downloading and Placing Karaf

    -

    Since there’s no apt-get installer for Karaf, we’re going to manually download and install it directly from its binary installer.

    -

    cd /opt
    -sudo wget -O karaf.tar.gz KARAF_TARBALL_LINK
    -sudo tar -xzvf karaf.tar.gz
    -sudo chown -R karaf:karaf KARAF_DIRECTORY
    -sudo mv KARAF_DIRECTORY/* /opt/karaf
    -
    -- KARAF_TARBALL_LINK: It’s recommended to get the most recent version of Karaf 4.2.x. This will depend on the current version of Karaf, which can be found on the Karaf downloads page under “Karaf Runtime”. Like Solr, you can’t directly wget these links, but clicking on the .tar.gz link for the binary distribution will bring you to a list of mirrors, as well as provide you with a recommended mirror you can use here. -- KARAF_DIRECTORY: This will depend on the exact version being used, but will likely be /opt/apache-karaf-VERSION, where VERSION is the current Karaf version number.

    -

    Configuring Karaf Logging

    -

    We’re going to apply some basic logging to our Karaf installation that should suffice for an example. In a production installation, you may want to play around with some of these values for more personally useful logging.

    -
    sudo mkdir /var/log/karaf
    -sudo chown karaf:karaf /var/log/karaf
    -
    -

    /opt/karaf/etc/org.pos4j.pax.logging.cfg | karaf:karaf/644 -

    # Root logger
    -log4j.rootLogger=INFO, out, osgi:*
    -log4j.throwableRenderer=org.apache.log4j.OsgiThrowableRenderer
    -
    -# File appender
    -log4j.appender.out=org.apache.log4j.RollingFileAppender
    -log4j.appender.out.layout=org.apache.log4j.PatternLayout
    -log4j.appender.out.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name    } - %X{bundle.version} | %m%n
    -log4j.appender.out.file=/var/log/karaf/karaf.log
    -log4j.appender.out.append=true
    -log4j.appender.out.maxFileSize=1MB
    -log4j.appender.out.maxBackupIndex=10
    -
    -# Camel Logger
    -log4j.appender.camel=org.apache.log4j.RollingFileAppender
    -log4j.appender.camel.layout=org.apache.log4j.PatternLayout
    -log4j.appender.camel.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.na    me} - %X{bundle.version} | %m%n
    -log4j.appender.camel.file=/var/log/karaf/camel.log
    -log4j.appender.camel.append=false
    -log4j.appender.camel.maxFileSize=1MB
    -log4j.appender.camel.maxBackupIndex=10
    -
    -log4j.logger.org.apache.camel=INFO, camel
    -
    -# Islandora Logger
    -log4j.appender.islandora=org.apache.log4j.RollingFileAppender
    -log4j.appender.islandora.layout=org.apache.log4j.PatternLayout
    -log4j.appender.islandora.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundl    e.name} - %X{bundle.version} | %m%n
    -log4j.appender.islandora.file=/var/log/karaf/islandora.log
    -log4j.appender.islandora.append=false
    -log4j.appender.islandora.maxFileSize=1MB
    -log4j.appender.islandora.maxBackupIndex=10
    -
    -log4j.logger.ca.islandora.camel=INFO, islandora
    -

    -

    Creating a setenv.sh Script for Karaf

    -

    Similar to Tomcat, our Karaf service is going to rely on a setenv shell script to determine environment variables Karaf needs in place when running. For now, this will simply be the path to JAVA_HOME, but this also accepts many other parameters you can find in the default setenv script.

    -

    /opt/karaf/bin/setenv | karaf:karaf/755 -

    #!/bin/sh
    -export JAVA_HOME="PATH_TO_JAVA_HOME"
    -
    -- PATH_TO_JAVA_HOME: This will be the same JAVA_HOME we used when installing Tomcat , and can be found using the same method (i.e., still /usr/lib/jvm/java-11-openjdk-amd64 if that's what it was before).

    -

    Initializing Karaf

    -

    We’re going to start Karaf, then run the installer to put our configurations in place and generate a Karaf service. Once these are installed, we’re going to stop Karaf, as from there on out its start/stop management should be handled via that service.

    -

    First we need to enable the default Karaf user in /opt/karaf/etc/users.properties:

    -

    Before:

    -
    -

    32 | # karaf = karaf,_g_:admingroup

    -

    33 | # _g_\:admingroup = group,admin,manager,viewer,systembundles,ssh

    -
    -

    After:

    -
    -

    32 | karaf = karaf,_g_:admingroup

    -

    33 | _g_\:admingroup = group,admin,manager,viewer,systembundles,ssh

    -
    -

    Save the file and close it, then:

    -
    sudo -u karaf /opt/karaf/bin/start
    -# You may want to wait a bit for Karaf to start.
    -# If you're not sure whether or not it's running, you can always run:
    -# ps aux | grep karaf
    -# to see if the server is up and running.
    -/opt/karaf/bin/client feature:install wrapper
    -/opt/karaf/bin/client wrapper:install
    -/opt/karaf/bin/stop
    -
    -

    Creating and Starting the Karaf Service

    -

    Installing the Karaf wrapper generates several service files that can be used on different types of systems. For Debian and Ubuntu installation we want to enable the karaf.service service so that Karaf is properly started on boot.

    -
    sudo systemctl enable /opt/karaf/bin/karaf.service
    -sudo systemctl start karaf
    -
    -

    We can check if the service started correctly with:

    -
    sudo systemctl status karaf
    -
    -

    Press Q to close the status.

    -

    Alpaca 1.0.x

    -

    Adding the Required Karaf Repositories

    -

    Karaf features can be installed from several different types of sources, but the fastest and easiest way to do so is from existing repository URLs that we can just plug into Karaf to provide us feature lists prepared and ready for installation. Like most interactions with Karaf, we can add these repositories using its built-in client.

    -
    -

    Notice

    -

    These repositories are updated consistently, and their updates include revised dependency lists. Commonly, when repositories are out of date or otherwise mismatched, feature installation can result in an Unable to resolve root: missing requirement error; for this reason, this guide recommends using recently-updated versions of these repositories. That being said, if such errors occur despite installing the latest versions of these features, the maintainer of the features repository should be informed.

    -
    -

    For the Karaf features we’re going to install, we need a few different repositories to be added to the list:

    -

    /opt/karaf/bin/client repo-add mvn:org.apache.activemq/activemq-karaf/ACTIVEMQ_KARAF_VERSION/xml/features
    -/opt/karaf/bin/client repo-add mvn:org.apache.camel.karaf/apache-camel/APACHE_CAMEL_VERSION/xml/features
    -/opt/karaf/bin/client repo-add mvn:ca.islandora.alpaca/islandora-karaf/ISLANDORA_KARAF_VERSION/xml/features
    -# XXX: This shouldn't be strictly necessary, but appears to be a missing
    -# upstream dependency for some fcrepo features.
    -/opt/karaf/bin/client repo-add mvn:org.apache.jena/jena-osgi-features/JENA_OSGI_VERSION/xml/features
    -
    -- ACTIVEMQ_KARAF_VERSION: The version of ActiveMQ we wrote down at the beginning of this chapter when installing ActiveMQ via apt-get -- APACHE_CAMEL_VERSION: The latest version of Apache Camel 2.x.x; you can find this listed at the apache-camel repository page (e.g., 2.25.4 at the time of writing) -- ISLANDORA_KARAF_VERSION: The latest version of Islandora Karaf 1.x; you can find this listed at the islandora-karaf repository page (e.g., 1.0.5 at the time of writing) -- JENA_OSGI_VERSION: The latest version of the Apache Jena 3.x OSGi features; you can find this listed at the jena-osgi-features repository page (e.g., 3.17.0 at the time of writing)

    -

    Configuring Karaf Features

    -

    Our installed Karaf features require configuration files to know exactly where to route things coming and going from them.

    -

    /opt/karaf/etc/ca.islandora.alpaca.http.client.cfg | karaf:karaf/644 -

    token.value=ISLANDORA_SYN_TOKEN
    -
    -- ISLANDORA_SYN_TOKEN: This should be the same token that was established during the installation of Syn in your syn-settings.xml file

    -

    /opt/karaf/etc/org.fcrepo.camel.indexing.triplestore.cfg | karaf:karaf/644 -

    input.stream=activemq:topic:fedora
    -triplestore.reindex.stream=activemq:queue:triplestore.reindex
    -triplestore.baseUrl=http://localhost:8080/blazegraph/namespace/islandora/sparql
    -

    -

    /opt/karaf/etc/ca.islandora.alpaca.indexing.triplestore.cfg | karaf:karaf/644 -

    error.maxRedeliveries=10
    -index.stream=activemq:queue:islandora-indexing-triplestore-index
    -delete.stream=activemq:queue:islandora-indexing-triplestore-delete
    -triplestore.baseUrl=http://localhost:8080/blazegraph/namespace/islandora/sparql
    -

    -

    /opt/karaf/etc/ca.islandora.alpaca.indexing.fcrepo.cfg | karaf:karaf/644 -

    error.maxRedeliveries=5
    -node.stream=activemq:queue:islandora-indexing-fcrepo-content
    -node.delete.stream=activemq:queue:islandora-indexing-fcrepo-delete
    -media.stream=activemq:queue:islandora-indexing-fcrepo-media
    -file.stream=activemq:queue:islandora-indexing-fcrepo-file
    -file.delete.stream=activemq:queue:islandora-indexing-fcrepo-file-delete
    -milliner.baseUrl=http://localhost/milliner
    -

    -

    Blueprinting Karaf Derivative Connectors

    -

    For those services in Crayfish we have set up to provide derivatives to Islandora resources, we need connector blueprints to tell the derivative connector how to route incoming requests, run conversions, and return outgoing derivatives.

    -

    Our blueprints are going to look largely similar between services, with only a few properties changing between them. Largely, these mainly just need to match the ActiveMQ queues we established in the previous configuration, and route to the correct Crayfish service.

    -

    /opt/karaf/deploy/ca.islandora.alpaca.connector.ocr.blueprint.xml | karaf:karaf/644 -

    <?xml version="1.0" encoding="UTF-8"?>
    -<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
    -       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    -       xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
    -       xsi:schemaLocation="
    -       http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0 http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.1.0.xsd
    -       http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
    -       http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd">
    -
    -  <cm:property-placeholder id="properties" persistent-id="ca.islandora.alpaca.connector.ocr" update-strategy="reload" >
    -    <cm:default-properties>
    -      <cm:property name="error.maxRedeliveries" value="5"/>
    -      <cm:property name="in.stream" value="activemq:queue:islandora-connector-ocr"/>
    -      <cm:property name="derivative.service.url" value="http://localhost/hypercube"/>
    -    </cm:default-properties>
    -  </cm:property-placeholder>
    -
    -  <reference id="broker" interface="org.apache.camel.Component" filter="(osgi.jndi.service.name=fcrepo/Broker)"/>
    -
    -  <bean id="http" class="org.apache.camel.component.http4.HttpComponent"/>
    -  <bean id="https" class="org.apache.camel.component.http4.HttpComponent"/>
    -
    -  <camelContext id="IslandoraConnectorOCR" xmlns="http://camel.apache.org/schema/blueprint">
    -    <package>ca.islandora.alpaca.connector.derivative</package>
    -  </camelContext>
    -
    -</blueprint>
    -

    -

    /opt/karaf/deploy/ca.islandora.alpaca.connector.houdini.blueprint.xml | karaf:karaf/644 -

    <?xml version="1.0" encoding="UTF-8"?>
    -<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
    -       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    -       xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
    -       xsi:schemaLocation="
    -       http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0 http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.1.0.xsd
    -       http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
    -       http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd">
    -
    -  <cm:property-placeholder id="properties" persistent-id="ca.islandora.alpaca.connector.houdini" update-strategy="reload" >
    -    <cm:default-properties>
    -      <cm:property name="error.maxRedeliveries" value="5"/>
    -      <cm:property name="in.stream" value="activemq:queue:islandora-connector-houdini"/>
    -      <cm:property name="derivative.service.url" value="http://localhost/houdini/convert"/>
    -    </cm:default-properties>
    -  </cm:property-placeholder>
    -
    -  <reference id="broker" interface="org.apache.camel.Component" filter="(osgi.jndi.service.name=fcrepo/Broker)"/>
    -
    -  <bean id="http" class="org.apache.camel.component.http4.HttpComponent"/>
    -  <bean id="https" class="org.apache.camel.component.http4.HttpComponent"/>
    -
    -  <camelContext id="IslandoraConnectorHoudini" xmlns="http://camel.apache.org/schema/blueprint">
    -    <package>ca.islandora.alpaca.connector.derivative</package>
    -  </camelContext>
    -
    -</blueprint>
    -

    -

    /opt/karaf/deploy/ca.islandora.alpaca.connector.homarus.blueprint.xml | karaf:karaf/644 -

    <?xml version="1.0" encoding="UTF-8"?>
    -<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
    -       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    -       xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
    -       xsi:schemaLocation="
    -       http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0 http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.1.0.xsd
    -       http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
    -       http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd">
    -
    -  <cm:property-placeholder id="properties" persistent-id="ca.islandora.alpaca.connector.homarus" update-strategy="reload" >
    -    <cm:default-properties>
    -      <cm:property name="error.maxRedeliveries" value="5"/>
    -      <cm:property name="in.stream" value="activemq:queue:islandora-connector-homarus"/>
    -      <cm:property name="derivative.service.url" value="http://localhost/homarus/convert"/>
    -    </cm:default-properties>
    -  </cm:property-placeholder>
    -
    -  <reference id="broker" interface="org.apache.camel.Component" filter="(osgi.jndi.service.name=fcrepo/Broker)"/>
    -
    -  <bean id="http" class="org.apache.camel.component.http4.HttpComponent"/>
    -  <bean id="https" class="org.apache.camel.component.http4.HttpComponent"/>
    -
    -  <camelContext id="IslandoraConnectorHomarus" xmlns="http://camel.apache.org/schema/blueprint">
    -    <package>ca.islandora.alpaca.connector.derivative</package>
    -  </camelContext>
    -
    -</blueprint>
    -

    -

    /opt/karaf/deploy/ca.islandora.alpaca.connector.fits.blueprint.xml | karaf:karaf/644 -

    <?xml version="1.0" encoding="UTF-8"?>
    -<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
    -       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    -       xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
    -       xsi:schemaLocation="
    -       http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0 http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.1.0.xsd
    -       http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
    -       http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd">
    -
    -  <cm:property-placeholder id="properties" persistent-id="ca.islandora.alpaca.connector.fits" update-strategy="reload" >
    -    <cm:default-properties>
    -      <cm:property name="error.maxRedeliveries" value="5"/>
    -      <cm:property name="in.stream" value="activemq:queue:islandora-connector-fits"/>
    -      <cm:property name="derivative.service.url" value="http://localhost/crayfits"/>
    -    </cm:default-properties>
    -  </cm:property-placeholder>
    -
    -  <reference id="broker" interface="org.apache.camel.Component" filter="(osgi.jndi.service.name=fcrepo/Broker)"/>
    -
    -  <bean id="http" class="org.apache.camel.component.http4.HttpComponent"/>
    -  <bean id="https" class="org.apache.camel.component.http4.HttpComponent"/>
    -
    -  <camelContext id="IslandoraConnectorfits" xmlns="http://camel.apache.org/schema/blueprint">
    -    <package>ca.islandora.alpaca.connector.derivative</package>
    -  </camelContext>
    -
    -</blueprint>
    -

    -

    Installing the Required Karaf Features

    -

    Before we can configure the features we’re going to use, they need to be installed. Some of these installations may take some time.

    -
    /opt/karaf/bin/client feature:install camel-blueprint
    -/opt/karaf/bin/client feature:install activemq-blueprint
    -/opt/karaf/bin/client feature:install fcrepo-service-activemq
    -# This again should not be strictly necessary, since this isn't the triplestore
    -# we're using, but is being included here to resolve the aforementioned
    -# missing link in the dependency chain.
    -/opt/karaf/bin/client feature:install jena
    -/opt/karaf/bin/client feature:install fcrepo-camel
    -/opt/karaf/bin/client feature:install fcrepo-indexing-triplestore
    -/opt/karaf/bin/client feature:install islandora-http-client
    -/opt/karaf/bin/client feature:install islandora-indexing-triplestore
    -/opt/karaf/bin/client feature:install islandora-indexing-fcrepo
    -/opt/karaf/bin/client feature:install islandora-connector-derivative
    -
    - -

    At this point, Karaf components should be up and running, but it's a good idea to double-check that this is the case. We can do this from within the Karaf client by taking a look at its component list.

    -
    # Until this point, we've been running Karaf commands from outside; we can hop
    -# into the client, however, and run commands from directly within.
    -/opt/karaf/bin/client
    -# This takes us into the Karaf client so we can run commands.
    -la | grep islandora
    -la | grep fcrepo
    -# It may be a good idea to use this to look up to the other components we
    -# installed.
    -logout
    -
    -

    For the above la | grep commands, components that are running should be listed as Active.

    - -
    -
    - - - Last update: - November 1, 2023 - - - -
    - - - - - - -
    -
    - - -
    - -
    - - - -
    -
    -
    -
    - - - - - - - - - \ No newline at end of file + + + + Redirecting... + + + + + + +Redirecting... + + diff --git a/installation/manual/installing_solr/index.html b/installation/manual/installing_solr/index.html index e30c0669f..583f9ca24 100644 --- a/installation/manual/installing_solr/index.html +++ b/installation/manual/installing_solr/index.html @@ -1,2753 +1,15 @@ - - - - - - - - - - - - - - - - - - - - - - - - Installing Solr - Islandora - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - Skip to content - - -
    -
    - -
    - - - - -
    - - -
    - -
    - - - - - - -
    -
    - - - -
    -
    -
    - - - - -
    -
    -
    - - - - - - - -
    -
    - - - - - - - - - - - - - -

    Installing Solr

    -
    -

    Needs Maintenance

    -

    The manual installation documentation is in need of attention. We are aware that some components no longer work as documented here. If you are interested in helping us improve the documentation, please see Contributing.

    -
    -

    In this section, we will install:

    - -

    Solr 8

    -

    Downloading and Placing Solr

    -

    The Solr binaries can be found at the Solr downloads page; the most recent stable release of Solr 8 should be used.

    -

    # While generally we download tarballs as .tar.gz files without version
    -# information, the Solr installer is a bit particular in that it expects a .tgz
    -# file with the same name as the extracted folder it contains. It's odd, and we
    -# can't really get around it.
    -cd
    -wget SOLR_DOWNLOAD_LINK
    -tar -xzvf SOLR_TARBALL
    -
    -- SOLR_DOWNLOAD_LINK: NOTICE: This will depend on a few different things, not least of all the current version of Solr. The link to the .tgz for the binary on the downloads page will take you to a list of mirrors that Solr can be downloaded from, and provide you with a preferred mirror at the top. This preferred mirror should be used as the SOLR_DOWNLOAD_LINK. -- SOLR_TARBALL: The filename that was downloaded, e.g., solr-8.9.0.tgz

    -

    Running the Solr Installer

    -

    Solr includes an installer that does most of the heavy lifting of ensuring we have a Solr user, a location where Solr lives, and configurations in place to ensure it’s running on boot.

    -

    sudo UNTARRED_SOLR_FOLDER/bin/install_solr_service.sh SOLR_TARBALL
    -
    -- UNTARRED_SOLR_FOLDER: This will likely simply be solr-VERSION, where VERSION is the version number that was downloaded.

    -

    The port that Solr runs on can potentially be configured at this point, but we'll expect it to be running on 8983.

    -

    Wait until the command output reaches:

    -
    Started Solr server on port 8983 (pid=****). Happy searching!
    -systemd[1]: Started LSB: Controls Apache Solr as a Service.
    -
    -

    After which you can press q to quit the output (this won't kill Solr so it's safe).

    -

    You can check if Solr is running correctly by going to http://localhost:8983/solr

    -

    Increasing the Open File Limit (Optional)

    -

    Solr's installation guide recommends that you increase the open file limit so that operations aren't disrupted while Solr is trying to access things in its index. This limit can be increased while the system is running, but doing so won't persist after a reboot. You can hard-increase this limit using your system's sysctl file:

    -

    /etc/sysctl.conf

    -

    Add the following line to the end of the file:

    -
    fs.file-max = 65535
    -
    -

    Then apply your new configuration.

    -
    sudo sysctl -p
    -
    -

    Creating a New Solr Core

    -

    Initially, our new Solr core will contain a configuration copied from the example included with the installation, so that we have something to work with when we configure this on the Drupal side. We’ll later update this with generated configurations we create in Drupal.

    -

    cd /opt/solr
    -sudo mkdir -p /var/solr/data/SOLR_CORE/conf
    -sudo cp -r example/files/conf/* /var/solr/data/SOLR_CORE/conf
    -sudo chown -R solr:solr /var/solr
    -sudo -u solr bin/solr create -c SOLR_CORE -p 8983
    -
    -- SOLR_CORE: islandora8

    -

    You should see an output similar to this: -

    WARNING: Using _default configset with data driven schema functionality. NOT RECOMMENDED for production use.
    -         To turn off: bin/solr config -c islandora8 -p 8983 -action set-user-property -property update.autoCreateFields -value false
    -
    -Created new core 'islandora8'
    -

    -

    Installing search_api_solr

    -

    Rather than use an out-of-the-box configuration that won’t be suitable for our purposes, we’re going to use the Drupal search_api_solr module to generate one for us. This will also require us to install the module so we can create these configurations using Drush.

    -
    cd /opt/drupal
    -sudo -u www-data composer require drupal/search_api_solr:^4.2
    -drush -y en search_api_solr
    -
    -

    You should see an output similar to this: -

    The following module(s) will be enabled: search_api_solr, language, search_api
    -
    - // Do you want to continue?: yes.
    -
    - [success] Successfully enabled: search_api_solr, language, search_api
    -

    -

    Configuring search_api_solr

    -

    Before we can create configurations to use with Solr, the core we created earlier needs to be referenced in Drupal.

    -

    Log in to the Drupal site at /user using the sitewide administrator username and password (if using defaults from previous chapters this should be islandora and islandora), then navigate to /admin/config/search/search-api/add-server.

    -

    Fill out the server addition form using the following options:

    -

    Adding a Solr Search Server

    -

    Configuring the Standard Solr Connector

    -

    Setting the Solr Install Directory

    -
      -
    • SERVER_NAME: islandora8
        -
      • This is completely arbitrary, and is simply used to differentiate this search server configuration from all others. Write down or otherwise pay attention to the machine_name generated next to the server name you type in; this will be used in the next step.
      • -
      -
    • -
    -

    As a recap for this configuration:

    -
      -
    • Server name should be an arbitrary identifier for this server
    • -
    • Enabled should be checked
    • -
    • Backend should be set to Solr
    • -
    • Under CONFIGURE SOLR BACKEND, Solr Connector should be set to Standard
    • -
    • Under CONFIGURE STANDARD SOLR CONNECTOR:
        -
      • HTTP protocol is simply set to http since we've set this up on the same machine Drupal lives on. On a production installation, Solr should likely be installed behind an HTTPS connection.
      • -
      • Solr host can be set to localhost since, again, this is set up on the same machine Drupal lives on. On a production installation, this may vary, especially if parts of the installation live on different severs
      • -
      • Solr port should be set to the port Solr was installed on, which is 8983 by default
      • -
      • Solr path should be set to the configured path to the instance of Solr; in a default installation, there is only one Solr instance, and it lives at /
      • -
      • Solr core should be the name of the Solr core you created earlier, which is why it's listed as SOLR_CORE here
      • -
      -
    • -
    • Under ADVANCED SERVER CONFIGURATION, solr.install.dir should be set to the path where we installed Solr, which this guide has established at /opt/solr
    • -
    -

    Click Save to create the server configuration.

    -

    NOTICE - You can ignore the error about an incompatible Solr schema; we're going to set this up in the next step. In fact, if you refresh the page after restarting Solr in the next step, you should see the error disappear.

    -

    Generating and Applying Solr Configurations

    -

    Now that our core is in place and our Drupal-side configurations exist, we’re ready to generate Solr configuration files to connect this site to our search engine.

    -

    cd /opt/drupal
    -drush solr-gsc SERVER_MACHINE_NAME /opt/drupal/solrconfig.zip
    -unzip -d ~/solrconfig solrconfig.zip
    -sudo cp ~/solrconfig/* /var/solr/data/SOLR_CORE/conf
    -sudo systemctl restart solr
    -
    -- SERVER_MACHINE_NAME: This should be the machine_name that was automatically generated when creating the configuration in the above step.

    -

    Adding an Index

    -

    In order for content to be indexed back into Solr, a search index needs to be added to our server. Navigate to /admin/config/search/search-api/add-index and check off the things you'd like to be indexed.

    -

    NOTICE - You should come back here later and reconfigure this after completing the last step in this guide. The default indexing configuration is pretty permissive, and you may want to restrict, for example, indexed content to just Islandora-centric bundles. This guide doesn't set up the index's fields either, which are going to be almost wholly dependent on the needs of your installation. Once you complete that configuration later on, re-index Solr from the configuration page of the index we're creating here.

    -

    Adding a Search Index

    -

    Specifying the Solr Server

    -

    Click Save to add your index and kick off indexing of existing items.

    - -
    -
    - - - Last update: - November 1, 2023 - - - -
    - - - - - - -
    -
    - - -
    - -
    - - - -
    -
    -
    -
    - - - - - - - - - \ No newline at end of file + + + + Redirecting... + + + + + + +Redirecting... + + diff --git a/installation/manual/installing_tomcat_and_cantaloupe/index.html b/installation/manual/installing_tomcat_and_cantaloupe/index.html index 7a75c64b2..4568762ff 100644 --- a/installation/manual/installing_tomcat_and_cantaloupe/index.html +++ b/installation/manual/installing_tomcat_and_cantaloupe/index.html @@ -1,2778 +1,15 @@ - - - - - - - - - - - - - - - - - - - - - - - - Installing Tomcat and Cantaloupe - Islandora - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - Skip to content - - -
    -
    - -
    - - - - -
    - - -
    - -
    - - - - - - -
    -
    - - - -
    -
    -
    - - - - -
    -
    -
    - - - - - - - -
    -
    - - - - - - - - - - - - - -

    Installing Tomcat and Cantaloupe

    -
    -

    Needs Maintenance

    -

    The manual installation documentation is in need of attention. We are aware that some components no longer work as documented here. If you are interested in helping us improve the documentation, please see Contributing.

    -
    -

    In this section, we will install:

    -
      -
    • Tomcat 9, the Java servlet container that will serve up some Java applications on various endpoints, including, importantly, Fedora
    • -
    • Cantaloupe 5, the image tileserver - running in Tomcat - that will be used to serve up large images in a web-accessible fashion
    • -
    -

    Tomcat 9

    -

    Installing OpenJDK 11

    -

    Tomcat runs in a Java runtime environment, so we'll need one to continue. In our case, OpenJDK 11 is open-source, free to use, and can fairly simply be installed using apt-get:

    -
    sudo apt-get -y install openjdk-11-jdk openjdk-11-jre
    -
    -

    The installation of OpenJDK via apt-get establishes it as the de-facto Java runtime environment to be used on the system, so no further configuration is required.

    -

    The resultant location of the java JRE binary (and therefore, the correct value of JAVA_HOME when it’s referenced) will vary based on the specifics of the machine it’s being installed on; that being said, you can find its exact location using update-alternatives:

    -

    update-alternatives --list java
    -
    -Take a note of this path as we will need it later.

    -

    Creating a tomcat User

    -

    Apache Tomcat, and all its processes, will be owned and managed by a specific user for the purposes of keeping parts of the stack segregated and accountable.

    -
    sudo addgroup tomcat
    -sudo adduser tomcat --ingroup tomcat --home /opt/tomcat --shell /usr/bin
    -
    -

    You will be prompted to create a password for the tomcat user; all the other information as part of the adduser command can be ignored.

    -

    Downloading and Placing Tomcat 9

    -

    Tomcat 9 itself can be installed in several different ways; while it’s possible to install via apt-get, this doesn’t give us a great deal of control over exactly how we’re going to run and manage it; as a critical part of the stack, it is beneficial for our purposes to have a good frame of reference for the inner workings of Tomcat.

    -

    We’re going to download the latest version of Tomcat to /opt and set it up so that it runs automatically. Bear in mind that with the following commands, this is going to be entirely relative to the current version of Tomcat 9, which we’ll try to mitigate as we go.

    -

    cd /opt
    -sudo wget -O tomcat.tar.gz TOMCAT_TARBALL_LINK
    -sudo tar -zxvf tomcat.tar.gz
    -sudo mv /opt/TOMCAT_DIRECTORY/* /opt/tomcat
    -sudo chown -R tomcat:tomcat /opt/tomcat
    -
    -- TOMCAT_TARBALL_LINK: No default can be provided here; you should navigate to the Tomcat 9 downloads page and grab the link to the latest .tar.gz file under the “Core” section of “Binary Distributions”. It is highly recommended to grab the latest version of Tomcat 9, as it will come with associated security patches and fixes. -- TOMCAT_DIRECTORY: This will also depend entirely on the exact version of tomcat downloaded - for example, apache-tomcat-9.0.50. Again, ls /opt can be used to find this.

    -

    Creating a setenv.sh Script

    -

    When Tomcat runs, some configuration needs to be pre-established as a series of environment variables that will be used by the script that runs it.

    -

    /opt/tomcat/bin/setenv.sh | tomcat:tomcat/755 -

    export CATALINA_HOME="/opt/tomcat"
    -export JAVA_HOME="PATH_TO_JAVA_HOME"
    -export JAVA_OPTS="-Djava.awt.headless=true -server -Xmx1500m -Xms1000m"
    -
    -- PATH_TO_JAVA_HOME: This will vary a bit depending on the environment, but will likely live in /usr/lib/jvm somewhere (e.g., /usr/lib/jvm/java-11-openjdk-amd64); again, in an Ubunutu environment you can check a part of this using update-alternatives --list java, which will give you the path to the JRE binary within the Java home. Note that update-alternatives --list java will give you the path to the binary, so for PATH_TO_JAVA_HOME delete the /bin/java at the end to get the Java home directory, so it should look something like this: -
    export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
    -

    -

    Creating the Tomcat Service

    -

    Tomcat includes two shell scripts we’re going to make use of - startup.sh and shutdown.sh - which are light wrappers on top of a third script, catalina.sh, which manages spinning up and shutting down the Tomcat server.

    -

    Debian and Ubuntu use systemctl to manage services; we’re going to create a .service file that can run these shell scripts.

    -

    /etc/systemd/system/tomcat.service | root:root/755 -

    [Unit]
    -Description=Tomcat
    -
    -[Service]
    -Type=forking
    -ExecStart=/opt/tomcat/bin/startup.sh
    -ExecStop=/opt/tomcat/bin/shutdown.sh
    -SyslogIdentifier=tomcat
    -
    -[Install]
    -WantedBy=multi-user.target
    -

    -

    Enabling and Starting Tomcat

    -

    We’re going to both enable and start Tomcat. Enabling Tomcat will ensure that it starts on boot, the timing of which is defined by the [Install] section’s WantedBy statement, which specifies what it should start after. This is separate from starting it, which we need to do now in order to get Tomcat up and running without requiring a reboot.

    -
    sudo systemctl enable tomcat
    -sudo systemctl start tomcat
    -
    -

    We can check that Tomcat has started by running sudo systemctl status tomcat | grep Active; we should see that Tomcat is active (running), which is the correct result of startup.sh finishing its run successfully.

    -

    Installing Cantaloupe 5

    -

    Since version 5, Cantaloupe is released as a standalone Java application and is no longer deployed in Tomcat via a .war file. Even so, we can still fine-tune how it runs and even install it as a service.

    -

    Downloading Cantaloupe

    -

    Releases of Cantaloupe live on the Cantaloupe release page; the latest version can be found here as a .zip file.

    -

    sudo wget -O /opt/cantaloupe.zip CANTALOUPE_RELEASE_URL
    -sudo unzip /opt/cantaloupe.zip
    -
    -- CANTALOUPE_RELEASE_URL: It’s recommended we grab the latest version of Cantaloupe 5. This can be found on the above-linked release page, as the .zip version; for example, https://github.com/cantaloupe-project/cantaloupe/releases/download/v5.0.3/cantaloupe-5.0.3.zip - make sure not to download the source code zip file as that isn't compiled for running out-of-the-box.

    -

    Creating a Cantaloupe Configuration

    -

    Cantaloupe pulls its configuration from a file called cantaloupe.properties; there are also some other files that can contain instructions for Cantaloupe while it’s running; specifically, we’re going to copy over the delegates.rb file, which can also contain custom configuration. We won’t make use of this file; we’re just copying it over for demonstration purposes.

    -

    Creating these files from scratch is not recommended; rather, we’re going to take the default cantaloupe configurations and plop them into their own folder so we can work with them.

    -

    sudo mkdir /opt/cantaloupe_config
    -sudo cp CANTALOUPE_VER/cantaloupe.properties.sample /opt/cantaloupe_config/cantaloupe.properties
    -sudo cp CANTALOUPE_VER/delegates.rb.sample /opt/cantaloupe_config/delegates.rb
    -
    -- CANTALOUPE_VER: This will depend on the exact version of Cantaloupe downloaded; in the above example release, this would be cantaloupe-5.0.3

    -

    The out-of-the-box configuration will work fine for our purposes, but it’s highly recommended that you take a look through the cantaloupe.properties and see what changes can be made; specifically, logging to actual logfiles isn’t set up by default, so you may want to take a peek at the log.application.SyslogAppender or log.application.RollingFileAppender, as well as changing the logging level.

    -

    Installing and configuring Cantaloupe as a service

    -

    Since it is a standalone application, we can configure Cantaloupe as a systemd service like we did with Tomcat, so it can start on boot:

    -

    /etc/systemd/system/cantaloupe.service | root:root/755 -

    [Unit]
    -Description=Cantaloupe
    -
    -[Service]
    -ExecStart=java -cp /opt/CANTALOUPE_VER/CANTALOUPE_VER.jar -Dcantaloupe.config=/opt/cantaloupe_config/cantaloupe.properties -Xmx1500m -Xms1000m edu.illinois.library.cantaloupe.StandaloneEntry
    -SyslogIdentifier=cantaloupe
    -
    -[Install]
    -WantedBy=multi-user.target
    -
    -- CANTALOUPE_VER: This will depend on the exact version of Cantaloupe downloaded; in the above example release, this would be cantaloupe-5.0.3

    -

    We can now enable the service and run it:

    -
    sudo systemctl enable cantaloupe
    -sudo systemctl start cantaloupe
    -
    -

    We can check the service status with sudo systemctl status cantaloupe | grep Active and the splash screen of Cantaloupe should be available at http://localhost:8182

    - -
    -
    - - - Last update: - November 1, 2023 - - - -
    - - - - - - -
    -
    - - -
    - -
    - - - -
    -
    -
    -
    - - - - - - - - - \ No newline at end of file + + + + Redirecting... + + + + + + +Redirecting... + + diff --git a/installation/manual/introduction/index.html b/installation/manual/introduction/index.html index 1dd79e89f..46e1e8a0f 100644 --- a/installation/manual/introduction/index.html +++ b/installation/manual/introduction/index.html @@ -16,7 +16,7 @@ - + @@ -481,7 +481,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -939,7 +939,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -953,7 +953,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -967,7 +967,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -981,7 +981,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -995,7 +995,7 @@
  • - + Installing Solr
  • @@ -1009,7 +1009,7 @@
  • - + Installing Crayfish
  • @@ -1023,7 +1023,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -1037,7 +1037,7 @@
  • - + Configuring Drupal
  • @@ -1135,7 +1135,7 @@
  • - + Modify or Create a Content Type
  • @@ -1163,7 +1163,7 @@
  • - + Create or Update a View
  • @@ -1281,7 +1281,7 @@
  • - + Content models
  • @@ -1309,7 +1309,7 @@
  • - + Linked data
  • @@ -1323,7 +1323,7 @@
  • - + Metadata harvesting
  • @@ -1461,7 +1461,7 @@
  • - + File viewers
  • @@ -1753,7 +1753,7 @@
  • - + Stack Overview
  • @@ -1954,7 +1954,7 @@
  • - + Alpaca Tips
  • @@ -2023,7 +2023,7 @@
  • - + Resizing a VM
  • @@ -2037,7 +2037,7 @@
  • - + Updating Drupal
  • @@ -2065,7 +2065,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2289,7 +2289,7 @@
  • - + Creating GitHub Issues
  • @@ -2359,7 +2359,7 @@
  • - + Documentation Style Guide
  • @@ -2609,7 +2609,7 @@

    TroubleshootingNovember 1, 2023 + January 4, 2024 diff --git a/installation/manual/preparing-a-webserver/index.html b/installation/manual/preparing-a-webserver/index.html new file mode 100644 index 000000000..f784c7c09 --- /dev/null +++ b/installation/manual/preparing-a-webserver/index.html @@ -0,0 +1,2740 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Preparing a LAPP Webserver - Islandora + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    + +
    +
    + + + +
    +
    + + + + + + + + + + + + + +

    Preparing a LAPP Server

    +
    +

    Needs Maintenance

    +

    The manual installation documentation is in need of attention. We are aware that some components no longer work as documented here. If you are interested in helping us improve the documentation, please see Contributing.

    +
    +

    In this section, we will install:

    +
      +
    • Apache 2, the webserver that will deliver webpages to end users
    • +
    • PHP 7, the runtime code interpreter that Drupal will use to generate webpages and other services via apache, as well as that Drush and Composer will use to run tasks from the command line
    • +
    • Several modules for PHP 7 which are required to run the PHP code that Drupal and other applications will be executing
    • +
    • PostgreSQL 10, the database that Drupal will use for storage (as well as other applications down the line)
    • +
    +

    Apache 2

    +

    Install Apache 2

    +

    Apache can typically be installed and configured outright by your operating system’s package manager:

    +
    sudo apt-get -y install apache2 apache2-utils
    +
    +

    This will install:

    +
      +
    • A systemd service that will ensure Apache can be stopped and started, and will run when the machine is powered on
    • +
    • A set of Apache configurations in /etc/apache2, including the basic configuration, ports configuration, enabled mods, and enabled sites
    • +
    • An Apache webroot in /var/www/html, configured to be the provided server on port :80 in /etc/apache2/sites-enabled/000-default.conf; we’ll make changes and additions to this file later
    • +
    • A user and group, www-data, which we will use to read/write web documents.
    • +
    +

    Enable Apache Mods

    +

    We’re going to enable a couple of Apache mods that Drupal highly recommends installing, and which are de-facto considered required by Islandora:

    +
    sudo a2enmod ssl
    +sudo a2enmod rewrite
    +sudo systemctl restart apache2
    +
    +

    Add the Current User to the www-data Group

    +

    Since the user we are currently logged in as is going to work quite a bit inside the Drupal directory, we want to give it group permissions to anything the www-data group has access to. When we run composer, www-data will also be caching data in our own home directory, so we want this group modification to go in both directions.

    +

    N.B. This code block uses backticks, not single quotes; this is an important distinction as backticks have special meaning in bash.

    +

    Note If doing this in the terminal, replace "whoami" with your username and remove the backticks

    +
    sudo usermod -a -G www-data `whoami`
    +sudo usermod -a -G `whoami` www-data
    +# Immediately log back in to apply the new group.
    +sudo su `whoami`
    +
    +

    PHP 7.4

    +

    Install PHP 7.4

    +

    If you're running Debian 11 you should be able to install PHP 7.4 from the apt packages directly:

    +
    sudo apt-get -y install php7.4 php7.4-cli php7.4-common php7.4-curl php7.4-dev php7.4-gd php7.4-imap php7.4-json php7.4-mbstring php7.4-opcache php7.4-xml php7.4-yaml php7.4-zip libapache2-mod-php7.4 php-pgsql php-redis php-xdebug unzip
    +
    +

    If you're running Debian 10, the repository for the PHP 7.4 packages needs to be installed first:

    +
    sudo apt-get -y install lsb-release apt-transport-https ca-certificates
    +sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
    +echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
    +sudo apt-get update
    +sudo apt-get -y install php7.4 php7.4-cli php7.4-common php7.4-curl php7.4-dev php7.4-gd php7.4-imap php7.4-json php7.4-mbstring php7.4-opcache php7.4-xml php7.4-yaml php7.4-zip libapache2-mod-php7.4 php-pgsql php-redis php-xdebug unzip
    +
    +

    This will install a series of PHP configurations and mods in /etc/php/7.4, including:

    +
      +
    • A mods-available folder (from which everything is typically enabled by default)
    • +
    • A configuration for PHP when run from Apache in the apache2 folder
    • +
    • A configuration for PHP when run from the command line - including when run via Drush - in the cli folder
    • +
    • unzip, which is important for PHP’s zip module to function correctly despite it not being a direct dependency of the module. We will also need to unzip some things later, so this is convenient to have in place early in the installation process.
    • +
    +

    PostgreSQL 11

    +

    Install PostgreSQL 11

    +

    PostgreSQL can generally be easily installed using your operating system’s package manager. It is typically sensible to install the version the system recognizes as up-to-date. We’re simply going to install the database software:

    +
    sudo apt-get -y install postgresql
    +
    +

    This will install:

    +
      +
    • A user at the system level named postgres; this will be the only user, by default, that has permission to run the psql binary and have access to Postgres configurations
    • +
    • A binary executable at /usr/bin/psql, which anyone - even root - will get kicked out of the moment they run it, since only the postgres user has permission to run any Postgres commands
    • +
    • A series of configurations that live in /etc/postgresql/11/main which can be used to modify how PostgreSQL works.
    • +
    +

    Configure Postgresql 11 For Use With Drupal

    +

    A modification needs to be made to the PostgreSQL configuration in order for Drupal to properly install and function. This change can be made to the main configuration file at /etc/postgresql/11/main/postgresql.conf:

    +

    Before:

    +
    +

    558 | #bytea_output = ‘hex’ # hex, escape

    +
    +

    After:

    +
    +

    558 | bytea_output = ‘escape’

    +
    +

    (Remove the "# hex, escape" comment and change the value from "hex" to "escape")

    +

    The postgresql service should be restarted to accept the new configuration:

    +
    sudo systemctl restart postgresql
    +
    + +
    +
    + + + Last update: + January 4, 2024 + + + +
    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/installation/manual/preparing_a_webserver/index.html b/installation/manual/preparing_a_webserver/index.html index 23e616d4b..7f40bdf8b 100644 --- a/installation/manual/preparing_a_webserver/index.html +++ b/installation/manual/preparing_a_webserver/index.html @@ -1,2740 +1,15 @@ - - - - - - - - - - - - - - - - - - - - - - - - Preparing a LAPP Webserver - Islandora - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - Skip to content - - -
    -
    - -
    - - - - -
    - - -
    - -
    - - - - - - -
    -
    - - - -
    -
    -
    - - - - -
    -
    -
    - - - -
    -
    - -
    -
    - - - -
    -
    - - - - - - - - - - - - - -

    Preparing a LAPP Server

    -
    -

    Needs Maintenance

    -

    The manual installation documentation is in need of attention. We are aware that some components no longer work as documented here. If you are interested in helping us improve the documentation, please see Contributing.

    -
    -

    In this section, we will install:

    -
      -
    • Apache 2, the webserver that will deliver webpages to end users
    • -
    • PHP 7, the runtime code interpreter that Drupal will use to generate webpages and other services via apache, as well as that Drush and Composer will use to run tasks from the command line
    • -
    • Several modules for PHP 7 which are required to run the PHP code that Drupal and other applications will be executing
    • -
    • PostgreSQL 10, the database that Drupal will use for storage (as well as other applications down the line)
    • -
    -

    Apache 2

    -

    Install Apache 2

    -

    Apache can typically be installed and configured outright by your operating system’s package manager:

    -
    sudo apt-get -y install apache2 apache2-utils
    -
    -

    This will install:

    -
      -
    • A systemd service that will ensure Apache can be stopped and started, and will run when the machine is powered on
    • -
    • A set of Apache configurations in /etc/apache2, including the basic configuration, ports configuration, enabled mods, and enabled sites
    • -
    • An Apache webroot in /var/www/html, configured to be the provided server on port :80 in /etc/apache2/sites-enabled/000-default.conf; we’ll make changes and additions to this file later
    • -
    • A user and group, www-data, which we will use to read/write web documents.
    • -
    -

    Enable Apache Mods

    -

    We’re going to enable a couple of Apache mods that Drupal highly recommends installing, and which are de-facto considered required by Islandora:

    -
    sudo a2enmod ssl
    -sudo a2enmod rewrite
    -sudo systemctl restart apache2
    -
    -

    Add the Current User to the www-data Group

    -

    Since the user we are currently logged in as is going to work quite a bit inside the Drupal directory, we want to give it group permissions to anything the www-data group has access to. When we run composer, www-data will also be caching data in our own home directory, so we want this group modification to go in both directions.

    -

    N.B. This code block uses backticks, not single quotes; this is an important distinction as backticks have special meaning in bash.

    -

    Note If doing this in the terminal, replace "whoami" with your username and remove the backticks

    -
    sudo usermod -a -G www-data `whoami`
    -sudo usermod -a -G `whoami` www-data
    -# Immediately log back in to apply the new group.
    -sudo su `whoami`
    -
    -

    PHP 7.4

    -

    Install PHP 7.4

    -

    If you're running Debian 11 you should be able to install PHP 7.4 from the apt packages directly:

    -
    sudo apt-get -y install php7.4 php7.4-cli php7.4-common php7.4-curl php7.4-dev php7.4-gd php7.4-imap php7.4-json php7.4-mbstring php7.4-opcache php7.4-xml php7.4-yaml php7.4-zip libapache2-mod-php7.4 php-pgsql php-redis php-xdebug unzip
    -
    -

    If you're running Debian 10, the repository for the PHP 7.4 packages needs to be installed first:

    -
    sudo apt-get -y install lsb-release apt-transport-https ca-certificates
    -sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
    -echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
    -sudo apt-get update
    -sudo apt-get -y install php7.4 php7.4-cli php7.4-common php7.4-curl php7.4-dev php7.4-gd php7.4-imap php7.4-json php7.4-mbstring php7.4-opcache php7.4-xml php7.4-yaml php7.4-zip libapache2-mod-php7.4 php-pgsql php-redis php-xdebug unzip
    -
    -

    This will install a series of PHP configurations and mods in /etc/php/7.4, including:

    -
      -
    • A mods-available folder (from which everything is typically enabled by default)
    • -
    • A configuration for PHP when run from Apache in the apache2 folder
    • -
    • A configuration for PHP when run from the command line - including when run via Drush - in the cli folder
    • -
    • unzip, which is important for PHP’s zip module to function correctly despite it not being a direct dependency of the module. We will also need to unzip some things later, so this is convenient to have in place early in the installation process.
    • -
    -

    PostgreSQL 11

    -

    Install PostgreSQL 11

    -

    PostgreSQL can generally be easily installed using your operating system’s package manager. It is typically sensible to install the version the system recognizes as up-to-date. We’re simply going to install the database software:

    -
    sudo apt-get -y install postgresql
    -
    -

    This will install:

    -
      -
    • A user at the system level named postgres; this will be the only user, by default, that has permission to run the psql binary and have access to Postgres configurations
    • -
    • A binary executable at /usr/bin/psql, which anyone - even root - will get kicked out of the moment they run it, since only the postgres user has permission to run any Postgres commands
    • -
    • A series of configurations that live in /etc/postgresql/11/main which can be used to modify how PostgreSQL works.
    • -
    -

    Configure Postgresql 11 For Use With Drupal

    -

    A modification needs to be made to the PostgreSQL configuration in order for Drupal to properly install and function. This change can be made to the main configuration file at /etc/postgresql/11/main/postgresql.conf:

    -

    Before:

    -
    -

    558 | #bytea_output = ‘hex’ # hex, escape

    -
    -

    After:

    -
    -

    558 | bytea_output = ‘escape’

    -
    -

    (Remove the "# hex, escape" comment and change the value from "hex" to "escape")

    -

    The postgresql service should be restarted to accept the new configuration:

    -
    sudo systemctl restart postgresql
    -
    - -
    -
    - - - Last update: - November 1, 2023 - - - -
    - - - - - - -
    -
    - - -
    - -
    - - - -
    -
    -
    -
    - - - - - - - - - \ No newline at end of file + + + + Redirecting... + + + + + + +Redirecting... + + diff --git a/installation/playbook/index.html b/installation/playbook/index.html index dcc50414f..c78ce3c88 100644 --- a/installation/playbook/index.html +++ b/installation/playbook/index.html @@ -481,7 +481,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -1032,7 +1032,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -1046,7 +1046,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -1060,7 +1060,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -1074,7 +1074,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -1088,7 +1088,7 @@
  • - + Installing Solr
  • @@ -1102,7 +1102,7 @@
  • - + Installing Crayfish
  • @@ -1116,7 +1116,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -1130,7 +1130,7 @@
  • - + Configuring Drupal
  • @@ -1228,7 +1228,7 @@
  • - + Modify or Create a Content Type
  • @@ -1256,7 +1256,7 @@
  • - + Create or Update a View
  • @@ -1374,7 +1374,7 @@
  • - + Content models
  • @@ -1402,7 +1402,7 @@
  • - + Linked data
  • @@ -1416,7 +1416,7 @@
  • - + Metadata harvesting
  • @@ -1554,7 +1554,7 @@
  • - + File viewers
  • @@ -1846,7 +1846,7 @@
  • - + Stack Overview
  • @@ -2047,7 +2047,7 @@
  • - + Alpaca Tips
  • @@ -2116,7 +2116,7 @@
  • - + Resizing a VM
  • @@ -2130,7 +2130,7 @@
  • - + Updating Drupal
  • @@ -2158,7 +2158,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2382,7 +2382,7 @@
  • - + Creating GitHub Issues
  • @@ -2452,7 +2452,7 @@
  • - + Documentation Style Guide
  • @@ -2900,7 +2900,7 @@

    Help&par Last update: - November 1, 2023 + January 4, 2024 diff --git a/installation/site-template/index.html b/installation/site-template/index.html index 5d955fc3f..f32123282 100644 --- a/installation/site-template/index.html +++ b/installation/site-template/index.html @@ -481,7 +481,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -889,7 +889,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -903,7 +903,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -917,7 +917,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -931,7 +931,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -945,7 +945,7 @@
  • - + Installing Solr
  • @@ -959,7 +959,7 @@
  • - + Installing Crayfish
  • @@ -973,7 +973,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -987,7 +987,7 @@
  • - + Configuring Drupal
  • @@ -1085,7 +1085,7 @@
  • - + Modify or Create a Content Type
  • @@ -1113,7 +1113,7 @@
  • - + Create or Update a View
  • @@ -1231,7 +1231,7 @@
  • - + Content models
  • @@ -1259,7 +1259,7 @@
  • - + Linked data
  • @@ -1273,7 +1273,7 @@
  • - + Metadata harvesting
  • @@ -1411,7 +1411,7 @@
  • - + File viewers
  • @@ -1703,7 +1703,7 @@
  • - + Stack Overview
  • @@ -1904,7 +1904,7 @@
  • - + Alpaca Tips
  • @@ -1973,7 +1973,7 @@
  • - + Resizing a VM
  • @@ -1987,7 +1987,7 @@
  • - + Updating Drupal
  • @@ -2015,7 +2015,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2239,7 +2239,7 @@
  • - + Creating GitHub Issues
  • @@ -2309,7 +2309,7 @@
  • - + Documentation Style Guide
  • @@ -2484,7 +2484,7 @@

    Usage& Last update: - November 1, 2023 + January 4, 2024 diff --git a/models/audio/index.html b/models/audio/index.html index 6c6ba02d6..e9d475149 100644 --- a/models/audio/index.html +++ b/models/audio/index.html @@ -536,7 +536,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -896,7 +896,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -910,7 +910,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -924,7 +924,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -938,7 +938,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -952,7 +952,7 @@
  • - + Installing Solr
  • @@ -966,7 +966,7 @@
  • - + Installing Crayfish
  • @@ -980,7 +980,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -994,7 +994,7 @@
  • - + Configuring Drupal
  • @@ -1092,7 +1092,7 @@
  • - + Modify or Create a Content Type
  • @@ -1120,7 +1120,7 @@
  • - + Create or Update a View
  • @@ -1238,7 +1238,7 @@
  • - + Content models
  • @@ -1266,7 +1266,7 @@
  • - + Linked data
  • @@ -1280,7 +1280,7 @@
  • - + Metadata harvesting
  • @@ -1418,7 +1418,7 @@
  • - + File viewers
  • @@ -1710,7 +1710,7 @@
  • - + Stack Overview
  • @@ -1911,7 +1911,7 @@
  • - + Alpaca Tips
  • @@ -1980,7 +1980,7 @@
  • - + Resizing a VM
  • @@ -1994,7 +1994,7 @@
  • - + Updating Drupal
  • @@ -2022,7 +2022,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2246,7 +2246,7 @@
  • - + Creating GitHub Issues
  • @@ -2316,7 +2316,7 @@
  • - + Documentation Style Guide
  • @@ -2458,7 +2458,7 @@

    DerivativesThe Audio media is tagged with the "Original File" term (a term with External URI http://pcdm.org/use#OriginalFile)

  • The media's parent node is tagged with the "Audio" model (a term with External URI http://purl.org/coar/resource_type/c_18cc)
  • -

    The mimetype formats allowed by Homarus are configured in Homarus itself - see Installing Crayfish

    +

    The mimetype formats allowed by Homarus are configured in Homarus itself - see Installing Crayfish

    Display

    Drupal provides an "Audio" field formatter for file fields that displays a simple playable audio widget. It works but does not support captions/subtitles. Islandora provides an "Audio with captions" formatter that allows for captions.

    To use the captions feature out of the box, add the captions track as a WEBVTT file (.vtt) in the Audio media's "Track" field (see below regarding which Audio media to use). If you don't have the "Track" field (provided by Islandora Starter Site), create a field of type "Media Track" (a type provided by Islandora) on the same Media (or more broadly, same entity) as your audio file. Then use the Manage Display page to set your audio file field to render using the "Audio with captions" field formatter.

    @@ -2469,7 +2469,7 @@

    DisplayNovember 1, 2023 + January 4, 2024 diff --git a/models/video/index.html b/models/video/index.html index f8e014e15..03c3e012f 100644 --- a/models/video/index.html +++ b/models/video/index.html @@ -16,7 +16,7 @@ - + @@ -536,7 +536,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -896,7 +896,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -910,7 +910,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -924,7 +924,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -938,7 +938,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -952,7 +952,7 @@
  • - + Installing Solr
  • @@ -966,7 +966,7 @@
  • - + Installing Crayfish
  • @@ -980,7 +980,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -994,7 +994,7 @@
  • - + Configuring Drupal
  • @@ -1092,7 +1092,7 @@
  • - + Modify or Create a Content Type
  • @@ -1120,7 +1120,7 @@
  • - + Create or Update a View
  • @@ -1238,7 +1238,7 @@
  • - + Content models
  • @@ -1266,7 +1266,7 @@
  • - + Linked data
  • @@ -1280,7 +1280,7 @@
  • - + Metadata harvesting
  • @@ -1418,7 +1418,7 @@
  • - + File viewers
  • @@ -1710,7 +1710,7 @@
  • - + Stack Overview
  • @@ -1911,7 +1911,7 @@
  • - + Alpaca Tips
  • @@ -1980,7 +1980,7 @@
  • - + Resizing a VM
  • @@ -1994,7 +1994,7 @@
  • - + Updating Drupal
  • @@ -2022,7 +2022,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2246,7 +2246,7 @@
  • - + Creating GitHub Issues
  • @@ -2316,7 +2316,7 @@
  • - + Documentation Style Guide
  • @@ -2471,7 +2471,7 @@

    DisplayNovember 1, 2023 + January 4, 2024 diff --git a/placeholder/index.html b/placeholder/index.html index 9f576e217..3a02ec37a 100644 --- a/placeholder/index.html +++ b/placeholder/index.html @@ -475,7 +475,7 @@
  • - + 8.x-2.0 Release Notes
  • @@ -835,7 +835,7 @@
  • - + Preparing a LAPP Webserver
  • @@ -849,7 +849,7 @@
  • - + Installing Composer, Drush, and Drupal
  • @@ -863,7 +863,7 @@
  • - + Installing Tomcat and Cantaloupe
  • @@ -877,7 +877,7 @@
  • - + Installing Fedora, Syn, and Blazegraph
  • @@ -891,7 +891,7 @@
  • - + Installing Solr
  • @@ -905,7 +905,7 @@
  • - + Installing Crayfish
  • @@ -919,7 +919,7 @@
  • - + Installing Karaf and Alpaca
  • @@ -933,7 +933,7 @@
  • - + Configuring Drupal
  • @@ -1031,7 +1031,7 @@
  • - + Modify or Create a Content Type
  • @@ -1059,7 +1059,7 @@
  • - + Create or Update a View
  • @@ -1177,7 +1177,7 @@
  • - + Content models
  • @@ -1205,7 +1205,7 @@
  • - + Linked data
  • @@ -1219,7 +1219,7 @@
  • - + Metadata harvesting
  • @@ -1357,7 +1357,7 @@
  • - + File viewers
  • @@ -1649,7 +1649,7 @@
  • - + Stack Overview
  • @@ -1850,7 +1850,7 @@
  • - + Alpaca Tips
  • @@ -1919,7 +1919,7 @@
  • - + Resizing a VM
  • @@ -1933,7 +1933,7 @@
  • - + Updating Drupal
  • @@ -1961,7 +1961,7 @@
  • - + Adding back ?_format=jsonld
  • @@ -2185,7 +2185,7 @@
  • - + Creating GitHub Issues
  • @@ -2255,7 +2255,7 @@
  • - + Documentation Style Guide
  • @@ -2368,7 +2368,7 @@

    Placeholder pageNovember 1, 2023 + January 4, 2024 diff --git a/release_notes/8.x-2.0/index.html b/release_notes/8.x-2.0/index.html index f10fada0e..881e43d8c 100644 --- a/release_notes/8.x-2.0/index.html +++ b/release_notes/8.x-2.0/index.html @@ -13,17 +13,13 @@ - - - - - 8.x-2.0 Release Notes - Islandora + Islandora 2.0.0 Release Notes / Upgrade Instructions - Islandora @@ -105,7 +101,7 @@
    - 8.x-2.0 Release Notes + Islandora 2.0.0 Release Notes / Upgrade Instructions
    @@ -423,16 +419,14 @@ - - -
  • +
  • - + @@ -441,7 +435,7 @@ -