Skip to main content
The Islandora plugin adds Islandora-specific behavior on top of the core sitectl workflow. The plugin binary is sitectl-isle. Direct plugin commands live under sitectl isle for ISLE-only operations such as cache warming, migration helpers, and fcrepo sync. Create, validate, healthcheck, verify, debug, set, converge, and component inspection are core sitectl commands that dispatch to the Islandora plugin through the active context. Because every Islandora site is also a Drupal-backed stack, the Islandora plugin includes the Drupal plugin. Shared service commands for MariaDB, Solr, and Traefik come from core sitectl and work against Islandora contexts automatically.

Create

Start a new Islandora site from the LibOps ISLE template:
The create flow:
1

Clone the template

sitectl-isle v1.0.1 clones libops/isle from its reviewed v1.0.0 template ref into your chosen directory. Pass --template-repo and --template-branch to use a different reviewed source. The template has since published v1.1.0; selecting that newer ref is an explicit downstream update until a later plugin release advances its default.
2

Configure a context

sitectl creates a local sitectl context for the new project directory.
3

Answer component questions

sitectl asks about each application component that requires a decision at create time, including fcrepo, Blazegraph, and IIIF. Cross-domain feature bundles can be selected with create flags. You can answer interactively or pre-supply answers with flags.
4

Apply component state

sitectl writes the file and Drupal config changes that reflect your component choices, so the first docker compose up starts the stack you asked for.
After create completes, review the generated changes and add your own Git remote before committing the checkout. The LibOps template defaults to a git-root Drupal codebase, Fedora superseded by Drupal private files, Blazegraph disabled, Triplet running locally, and the mergepdf and hOCR-search feature bundles enabled. Interactive create prompts let you opt into Fedora or Blazegraph and choose another IIIF implementation; create flags can override either feature-bundle default.

Component status

See which components are registered and how the project is currently configured:
sitectl component describe is a core command that dispatches to the Islandora plugin based on the active context. See Components for a full explanation of what each status value means.

Managed components

The Islandora plugin currently manages these application components directly: Review component changes through version control before promoting them. Some file mutations can run against remote contexts for QA or recovery, but the normal path is still to run them against the checkout you intend to commit. If a checkout has a dev-mode override generated by an older plugin release, rerun sitectl set dev-mode enabled (including any assistant flags you use). This regenerates Traefik development wiring with file-provider routes and removes the obsolete Docker-provider flags.

Updating ISLE

ISLE records each container image directly in Compose as a reviewed reference and retains an immutable digest where one is tracked. A shared environment tag is not an update interface. This also applies to Traefik: let sitectl bump propose its tracked Compose update with the other images instead of editing a separate runtime override. Use this operator sequence:
  1. In a development checkout, run sitectl bump with the intended update level and --dry-run, then run the reviewed bump without --dry-run. Read every intervening release note when crossing a major version.
  2. If Drupal dependencies need a targeted authoring change, enable dev mode and use sitectl drupal composer; commit both Composer manifests. If Search API Solr changed, refresh and review the tracked Solr configuration in development.
  3. Test the branch, including any component migration named by the release notes. Before production rollout, back up MariaDB, Drupal public/private files, and any enabled Fedora or Blazegraph state, and test the restore path.
  4. Merge the reviewed source changes and run sitectl deploy. It pulls images and rebuilds the Islandora/Drupal image while the current stack is online, then runs the ordered down/up rollout. The Drupal gate waits for installation and runs drush updb -y and drush cr; either failure stops the deploy before the final bounded full-stack start.
  5. Run sitectl mariadb upgrade after a MariaDB image change. Import reviewed Drupal config-sync changes explicitly with sitectl drupal drush cim -y.
  6. After configuration import, refresh the Drupal Solr config with --reindex when Solr, Search API Solr, or search-related Drupal configuration changed. The refresh is a no-op when generated, tracked, and runtime configuration already match. Finish with sitectl healthcheck, sitectl verify, and site-specific smoke tests before discarding backups.
Deploy runs database updates and cache rebuilds, but it does not import Drupal configuration or reindex Solr. Keep those as explicit, observable gates. Complete component-specific migration guidance before removing a repository or triplestore service.

Shared services and ingress

Islandora contexts use core service commands for shared infrastructure such as MariaDB, Solr, and Traefik status. Use the ingress component for TLS mode, domain, Cloudflare Origin CA, Let’s Encrypt, custom certificates, mkcert development certificates, trusted proxies, and upload/read timeout settings. The Islandora plugin supplies Drupal-specific route and override wiring where the stack needs it.

Component set

Turn a component on or off:
sitectl updates the relevant files and Drupal config sync files, then prompts for confirmation. Pass --yolo to skip confirmation in automation. Use enabled to move a distributed derivative service back into the base Compose stack, for example sitectl set homarus enabled. See derivative microservices for the managed endpoint list and feature bundles for cross-domain ownership and rollout guidance.

Sync

Copy the fcrepo database from one context to another:
This backs up fcrepo on the source, stages the artifact, and imports it into the target.

Validate

Check that the active context’s project configuration is valid:

Verify

After the site is online or after a site update, run verification checks for the Islandora stack. These checks are meant for CI and update validation: basic runtime status plus Islandora-specific functionality that should keep working.
Use --demo-objects only against disposable CI, preview, development, or staging sites because it creates demo content before checking that repository storage grew.

Drupal commands

Because the Islandora plugin includes the Drupal plugin, all sitectl drupal commands work against Islandora contexts: