Skip to content

Commit

Permalink
Change 'defaults' to 'starter site' (#2176)
Browse files Browse the repository at this point in the history
* Change 'defaults' to 'starter site' except manual install.

* First pass at manual install instructions with/out starter site.

* Warn on manual install pages.

* Update starter-site page.

* Typos and updates to access control.
  • Loading branch information
rosiel authored Oct 14, 2022
1 parent 4dd57e0 commit 4228687
Show file tree
Hide file tree
Showing 43 changed files with 222 additions and 567 deletions.
8 changes: 4 additions & 4 deletions docs/concepts/collection.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@ Islandora provides:
- a "Children" tab on resources, which provides a management interface to access, re-order, add, or delete the members of a resource based on the Member Of field.
- a "Model" field (`field_model`) which can take various values including "Collection".

## Islandora Defaults features
## Islandora Starter Site features

[Islandora Defaults](../user-documentation/islandora_defaults_reference.md) is an optional collection 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](https://github.com/Islandora/islandora-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 Defaults provides:
Islandora Starter Site provides:

- a [Content Type](../user-documentation/content_types.md) "Repository Item" that uses the `field_member_of` field, so that users may add nodes of this type to a collection (or paged content, or compound resource),
- A [View](../tutorials/create_update_views.md) showing the members of the collection.
Expand Down Expand Up @@ -53,4 +53,4 @@ For more information see the video tutorial on [Batch Editing](https://youtu.be/

## Permissions on a Collection

No reliable access control methods currently allow you to assign people to administer and manage only specific collections.
No reliable access control methods currently allow you to assign people to administer and manage only specific collections.
2 changes: 1 addition & 1 deletion docs/concepts/node-concepts.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Islandora module is installed. All installation methods perform this migration,
| Newspaper | https://schema.org/Newspaper |

With Islandora alone, choosing a value from this list will have zero effects. The contingent behaviour
must be configured during repository implementation. Islandora Defaults provides an example of what
must be configured during repository implementation. Islandora Starter Site provides an example of what
behaviours are possible for these types.


Expand Down
4 changes: 2 additions & 2 deletions docs/concepts/node-media.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ uses Media (though our approach to [technical metadata] differs).
Configuration on Media types determines where uploaded files will be
stored - for example, the Drupal public or private filesystem, or through
a tool called [Flysystem] to another data store such as Fedora. Islandora
does not dictate where you put your files. Islandora Defaults, as a
full-featured example, sets all media types to store their files in Fedora.
does not dictate where you put your files. Islandora Starter Site
sets all media types to store their files in Fedora.
This can be overridden when creating media programmatically, such as for
[derivatives](derivatives.md).

Expand Down
16 changes: 16 additions & 0 deletions docs/concepts/starter-site.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Islandora Starter Site

The [Islandora Starter Site](https://github.com/Islandora/islandora-starter-site/) is an out-of-the-box deployment of Islandora. It is a complete exported Drupal site, that makes use of the Islandora modules and
configures them in a way that is illustrative and useful.

- For evaluators, it is intended to show off the features and capabilities of Islandora.
- For interest groups, it is intended to be a place to develop solutions to shared problems.
- For site builders, it is intended to be a starting point for configuring a site.

The Islandora Starter Site contains no code, only references to other modules and lots of Drupal configuration. A very motivated person could re-create the Starter Site just by installing and configuring modules. This means there's nothing tying you to using the Starter Site. There's also nothing tying you to doing things in a particular way. Also, it means that you won't be getting any "updates" - there's no code to update.

To experience the full Islandora Starter Site, it requires access to external services such as Solr,
Fedora, Alpaca, and Matomo. It is therefore suggested to deploy the Starter Site using one of our
two deployment platforms: [ISLE-DC](../../installation/docker-local) (using the `make starter` or `make starter_dev` commands), or
the [Islandora Playbook](../../installation/playbook) (using the `starter` (default) or `starter_dev` option in the Vagrantfile).

2 changes: 1 addition & 1 deletion docs/contributing/docs_style_guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

- Use a GitHub Pull Request to submit documentation.
- See the [Editing Documentation](https://islandora.github.io/documentation/contributing/editing-docs/) documentation page for information on creating a Pull Request.
- Make it clear if the documentation is based on a particular configuration (such as Islandora Defaults) or if it applies to any deployment of Islandora.
- 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](https://en.wikipedia.org/wiki/Markdown) format.
- Include a top-level heading for the whole page (using `#`)
- Please add Markdown headings (`#` and `##`) to the content sections.
Expand Down
12 changes: 0 additions & 12 deletions docs/contributing/releasing-islandora.md
Original file line number Diff line number Diff line change
Expand Up @@ -171,18 +171,6 @@ The `islandora` module depends on the `crayfish-commons` library, and must have
7. Run `composer update -W` again.
8. Commit and push the `composer.json` and `composer.lock` files to Github with a commit message of "Preparing for next development iteration".

### Release Islandora Defaults

The `islandora` module depends on `islandora`, `controlled_access_terms`, and `openseadragon`, and must have its dependencies updated before release.

1. Bump the dependency for those modules in `composer.json`.
2. Run `composer update -W`
4. Commit and push the `composer.json` and `composer.lock` files to Github.
5. Release the module by creating a new release for them in Github.
6. Put the dependencies back to `dev-8.x-1.x`
7. Run `composer update -W` again.
8. Commit and push the `composer.json` and `composer.lock` files to Github with a commit message of "Preparing for next development iteration".

**Note to module maintainers specifying composer requirements:** please familiarize yourself with the [Next Significant Release Modifiers](https://getcomposer.org/doc/articles/versions.md#next-significant-release-operators) so that module dependencies are as permissive as possible. Most often dependency versions should be tagged using the caret (^) so that bug-fixes and minor releases can be pulled in without updating their module’s composer file.

## Undoing a Release
Expand Down
6 changes: 3 additions & 3 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@
Islandora:

[//]: # (We should probably replace as many of the links in this section as possible with links to within this documentation, and make it clear which are internal links and which link out.)
- **Is native Drupal** - With Islandora, you can create preservation-ready digital resources using Drupal nodes, media, files, and taxonomy terms. A suite of customized Drupal resource types and configurations that illustrate Islandora's capabilities are packaged as the [Islandora Defaults module](https://github.com/Islandora/islandora_defaults).
- **Is native Drupal** - With Islandora, you can create preservation-ready digital resources using Drupal nodes, media, files, and taxonomy terms. A site with a ready-made suite of customized Drupal resource types and configurations that illustrate Islandora's capabilities is available as the [Islandora Starter Site module](https://github.com/Islandora/islandora-starter-site/).
- **Integrates with Fedora** - Drupal resources can be stored in Lyrasis's [Fedora Repository](https://wiki.duraspace.org/display/FF/Fedora+Repository+Home) (version 5.0 or greater) as binaries (files) and RDF metadata.
- **Uses microservices** - Islandora provides an architecture for messaging and integration with any number of microservices, that provide services outside of the Drupal framework. Islandora's [Crayfish](https://github.com/Islandora/crayfish) suite of microservices provides functionality for synchronizing resources into Fedora and for automatically generating helper files, called derivatives.
- **Can handle messages at scale** - Islandora created [Alpaca](https://github.com/Islandora/Alpaca), an integration middleware based on Apache Camel, to handle messaging and queueing at an enterprise scale. To the user, this means large batch uploads can be processed gracefully.

[//]: # (Allowing bulk uploads to be processed without affecting the server... would be the ideal right? but right now they're on the same server. Is just saying "scalability" ok?)

- **Offers digital preservation features** - Using a robust storage layer for preservation (Fedora), and generating technical metadata with FITS, are digital preservation tools provided by our automated installation methods. Community members have created additional features for doing [digital preservation using Islandora](https://github.com/mjordan/digital_preservation_using_islandora), which are not yet part of our automated setup.
- **Exposes data to harvesters** - Metadata about resources is available as linked data through the [JSON-LD serialization module](https://github.com/Islandora/jsonld), and can be made available through Drupal, Fedora, or a triplestore. Islandora also offers a [full configuration for exposing OAI-PMH](https://github.com/Islandora/islandora_defaults/tree/8.x-1.x/modules/islandora_oaipmh) so that metadata can be harvested by aggregators, and [IIIF support](https://github.com/Islandora/islandora/tree/8.x-1.x/modules/islandora_iiif) means images in Islandora can be viewed in any IIIF-compliant viewer.
- **Exposes data to harvesters** - Metadata about resources is available as linked data through the [JSON-LD serialization module](https://github.com/Islandora/jsonld), and can be made available through Drupal, Fedora, or a triplestore. Islandora Starter Site also offers a full configuration for exposing [OAI-PMH](user-documentation/metadata_harvesting/#oai-pmh) so that metadata can be harvested by aggregators, and [IIIF support](https://github.com/Islandora/islandora/tree/8.x-1.x/modules/islandora_iiif) means images in Islandora can be viewed in any IIIF-compliant viewer.
- **Offers flexibility** - As Islandora content is Drupal content, migrations and batch editing can be done through Drupal's built-in migrate framework and vocabularies can be created using Drupal taxonomies. Contributed Drupal modules such as [Solr Search API](https://www.drupal.org/project/search_api_solr) enable in-site search, and [Matomo Analytics](https://www.drupal.org/project/matomo) provides usage metrics for site analytics.
- **Is a community** - A [dedicated, active community of users and developers](https://groups.google.com/forum/#!forum/islandora) is working to push new features, collaborate on improvements, design custom solutions, and create extended functionality. Some of these for Islandora 8 take the form of [Recipes](https://github.com/Islandora-Labs/Islandora-Cookbook).

Expand All @@ -28,7 +28,7 @@ Try Islandora without installing anything at [sandbox.islandora.ca](https://sand

Login credentials for the sandbox can be found [here](https://github.com/Islandora/documentation/wiki/Sandbox.Islandora.ca-online-credentials).

Anyone can log in to this sandbox as an administrator and explore the interface! However, this site is refreshed periodically so your changes will not be permanent. This site uses Islandora Defaults, a way of setting up Islandora for demonstration purposes. This is not the only way that Islandora can be made to work! This sandbox includes, on top of Islandora Defaults, some sample content and configuration (such as views and blocks, and other Drupal modules like Views Bulk Edit) to increase its usefulness as a sandbox.
Anyone can log in to this sandbox as an administrator and explore the interface! However, this site is refreshed periodically so your changes will not be permanent. This site uses Islandora Install Profile, a way of setting up Islandora for demonstration purposes. This is not the only way that Islandora can be made to work! This sandbox includes some sample content and configuration (such as views and blocks) to increase its usefulness as a sandbox.

### Ansible Playbook

Expand Down
60 changes: 34 additions & 26 deletions docs/installation/manual/configuring_drupal.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# Configuring Drupal

!!! warning "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](../../../contributing/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
Expand All @@ -15,10 +18,11 @@ The below configuration will establish `localhost` as a trusted host pattern, bu

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

**Before**:
> 789 | 'driver' => 'pgsql',
> 790 | );
**Before** (at around line 789):
```
'driver' => 'pgsql',
);
```

**After**:
```
Expand All @@ -30,12 +34,12 @@ $settings['trusted_host_patterns'] = [
];
$settings['flysystem'] = [
'fedora' => [
'driver' => 'fedora',
'config' => [
'root' => 'http://localhost:8080/fcrepo/rest/',
],
],
'fedora' => [
'driver' => 'fedora',
'config' => [
'root' => 'http://localhost:8080/fcrepo/rest/',
],
],
];
```

Expand All @@ -48,41 +52,45 @@ drush -y cr

## Islandora

### Downloading Islandora
!!! note "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"](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.

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 turn a Drupal site into an Islandora site.
### Downloading Islandora

Islandora also provides an [`islandora_defaults`](https://github.com/Islandora/islandora_defaults) module that contains additional configurations considered an appropriate launching point for configuring a site. We're going to first enable the `islandora_defaults` module before doing any wiring on the front-end.
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.

```bash
cd /opt/drupal
# This is a convenience piece that will help speed up most of the rest of our
# process working with Composer and Drupal.
sudo -u www-data composer require zaporylie/composer-drupal-optimizations:^1.0
# 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 islandora/islandora_defaults:dev-8.x-1.x
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.x-dev
sudo -u www-data composer require drupal/rest_oai_pmh:^1.0
sudo -u www-data composer require drupal/facets:^1.3
sudo -u www-data composer require drupal/restui:^1.16
sudo -u www-data composer require drupal/rdfui:^1.0-beta1
sudo -u www-data composer require drupal/content_browser:^1.0@alpha
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
# Islandora also provides a theme called Carapace designed to work well out of
# the box with an Islandora site.
sudo -u www-data composer require islandora/carapace:dev-8.x-3.x
```

### Enabling Downloaded Components
Expand Down
Loading

0 comments on commit 4228687

Please sign in to comment.