PHPackages                             islandora/islandora-starter-site - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. islandora/islandora-starter-site

ActiveProject[Utility &amp; Helpers](/categories/utility)

islandora/islandora-starter-site
================================

Project template for Islandora sites.

1.10.1(2mo ago)46.0k20[3 PRs](https://github.com/Islandora-Devops/islandora-starter-site/pulls)GPL-2.0-or-laterPHPPHP ^8.3CI passing

Since Dec 6Pushed 1mo ago7 watchersCompare

[ Source](https://github.com/Islandora-Devops/islandora-starter-site)[ Packagist](https://packagist.org/packages/islandora/islandora-starter-site)[ Docs](https://www.islandora.ca)[ RSS](/packages/islandora-islandora-starter-site/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (84)Versions (47)Used By (0)

[![Asset 2](https://private-user-images.githubusercontent.com/467898/244402640-0c861461-8b7c-49ee-ab52-c371a1c2f7df.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ0MTc1ODEsIm5iZiI6MTc3NDQxNzI4MSwicGF0aCI6Ii80Njc4OTgvMjQ0NDAyNjQwLTBjODYxNDYxLThiN2MtNDllZS1hYjUyLWMzNzFhMWMyZjdkZi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMzI1JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDMyNVQwNTQxMjFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lN2Q1MDUzNDFmZTk3NzdhYmQyZTVjNWFjYWJlMzAwZmQ4OWFhMGRhOGI5YzJkNmQ4NGYzNmYzNmQ5Yzk0ODAwJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.lPRuyhS8GMy5hWPXXFGvqyBwAWQNOrpsCKXWGs1fa10)](https://private-user-images.githubusercontent.com/467898/244402640-0c861461-8b7c-49ee-ab52-c371a1c2f7df.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ0MTc1ODEsIm5iZiI6MTc3NDQxNzI4MSwicGF0aCI6Ii80Njc4OTgvMjQ0NDAyNjQwLTBjODYxNDYxLThiN2MtNDllZS1hYjUyLWMzNzFhMWMyZjdkZi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMzI1JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDMyNVQwNTQxMjFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lN2Q1MDUzNDFmZTk3NzdhYmQyZTVjNWFjYWJlMzAwZmQ4OWFhMGRhOGI5YzJkNmQ4NGYzNmYzNmQ5Yzk0ODAwJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.lPRuyhS8GMy5hWPXXFGvqyBwAWQNOrpsCKXWGs1fa10)

Islandora Starter Site
======================

[](#islandora-starter-site)

[![Minimum PHP Version](https://camo.githubusercontent.com/eb773fa94283cbea6c7b192d460983a781ae4a16409af56d109fe3e8e71ab6c9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253345253344253230372e342d3838393242462e7376673f7374796c653d666c61742d737175617265)](https://php.net/)[![Contribution Guidelines](https://camo.githubusercontent.com/00be726fac5762979d2c8a7428f28d9526d61eb290fc6d54b7031511d9445940/687474703a2f2f696d672e736869656c64732e696f2f62616467652f434f4e545249425554494e472d47756964656c696e65732d626c75652e737667)](./CONTRIBUTING.md)[![LICENSE](https://camo.githubusercontent.com/244607c741b08a9bfbaca45498deef0db2a598ac7f42ac1d0cba12fa91472379/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d47504c76322d626c75652e7376673f7374796c653d666c61742d737175617265)](./LICENSE)

A starting Drupal configuration for Islandora sites.

What is a Starter Site?
-----------------------

[](#what-is-a-starter-site)

The Starter Site is a ready-to-customize Drupal site that shows off Islandora's features. It can be used as a template for your site, but once you start using it, your site (and all its config) are managed by you. Like a template MS Word document, changes that are made to the template after you've started using it **cannot and will not** be automatically transferred into your copy (in this case, your Islandora site). If you need these kinds of services done for you, check out our [service providers](https://www.islandora.ca/service-providers). However, we will endeavour to document and communicate changes, should you wish to incorporate them.

The Starter site contains instructions to set up a Drupal site, but several features requre the presence of external services such as Fedora, Solr, and others (see installation instructions below).

The Starter Site uses semantic-like versioning now, but this is only for compatibility with the tools that install it. The Starter Site will change major versions whenever it requires something new from the tools that create its environment (Playbook/ISLE).

Quick Installation
------------------

[](#quick-installation)

To launch a fully-functioning Islandora Starter site as well as the (non-Drupal) tools and services that support it, try one of the Islandora deployment tools:

- [Islandora Playbook](https://github.com/Islandora-Devops/islandora-playbook) - Ansible-based, works locally with VirtualBox and Vagrant.
    - use the `starter` (default) or `starter_dev` option
- [ISLE-DC](https://github.com/Islandora-Devops/isle-dc) - Docker-based
    - use the `make starter` or `make starter_dev` option
- [ISLE Site Template](https://github.com/Islandora-Devops/isle-site-template) - Docker-based
    - The default installation instructions use the Starter Site.

Manual Installation
-------------------

[](#manual-installation)

The config files in the Starter Site assume a full suite of external services. If you do not need all the external services (such as Fedora) then you can skip them but you will also want to adjust the Drupal configs. Such a partial install is beyond the scope of this document.

Prerequisites
-------------

[](#prerequisites)

1. PHP and [Composer](https://getcomposer.org/) installed
2. A Database server installed and [configured for Drupal](https://www.drupal.org/docs/system-requirements/database-server-requirements)
    - The Starter Site installs drivers for MySQL/MariaDB/Percona (`mysql`), PostgreSQL (`pgsql`), and SQLite (`sqlite`). Using other (contrib) drivers would require additional installation/configuration, and is outside the scope of this document.
3. [Fedora Commons (FCRepo)](https://github.com/fcrepo/fcrepo) installed
    1. [Syn](https://github.com/Islandora/Syn/) installed and configured with a key.
4. Triplestore installed
5. Cantaloupe installed
    1. A IIIF URL is expected to be resolvable, and to accept full URLs as resource IDs. If the URL is not `http://127.0.0.1:8080/cantaloupe/iiif/2`, this will have to be set (see Usage step 5).
6. ActiveMQ/Alpaca/Crayfish installation
    1. ActiveMQ expected to be listening for STOMP messages at a `tcp` url. If not the default `tcp://127.0.0.1:61613`, this will have to be set (see Usage step 5)
    2. Queues (and underlying (micro)services) configured appropriately:

Queue NameDestination`islandora-connector-homarus`Homarus (Crayfish ffmpeg transcoding microservice)`islandora-indexing-fcrepo-delete`FCRepo indexer`islandora-indexing-triplestore-delete`Triplestore indexer`islandora-connector-houdini`Houdini (Crayfish imagemagick transformation microservice)`islandora-connector-ocr`Hypercube (Crayfish OCR microservice)`islandora-indexing-fcrepo-file-external`FCRepo indexer`islandora-indexing-fcrepo-media`FCRepo indexer`islandora-indexing-triplestore-index`Triplestore indexer`islandora-indexing-fcrepo-content`FCRepo indexer`islandora-connector-fits`CrayFits derivative processor7. A [Drupal-compatible web server](https://www.drupal.org/docs/system-requirements/web-server-requirements)
8. [FITS Web Service](https://projects.iq.harvard.edu/fits/downloads#fits-servlet) and [CrayFits](https://github.com/roblib/CrayFits) installed
    - Further details in the [`islandora_fits` module's](https://github.com/roblib/islandora_fits) README/documentation
9. A Solr server installed or available with a core set up
    - Further details on [Drupal's Search API Solr module](https://www.drupal.org/project/search_api_solr) page.
    - If not available at `127.0.0.1:8983`, or if the core name is not `ISLANDORA` its information will need to be set up (see Usage step 5)

Usage
-----

[](#usage)

1. Create a project based on this repository:

    ```
    composer create-project islandora/islandora-starter-site
    ```

    This should:

    1. Grab the code and all PHP dependencies,
    2. Scaffold the site, and have the `default` site's `settings.php` point at our included configuration for the next step.
2. Configure Flysystem's `fedora` scheme in the site's `settings.php`:

    ```
    $settings['flysystem'] = [
      'fedora' => [
        'driver' => 'fedora',
        'config' => [
          'root' => 'http://127.0.0.1:8080/fcrepo/rest/',
        ],
      ],
    ];
    ```

    Changing `http://127.0.0.1:8080` to point at your Fedora installation.
3. Install the site:

    ```
    composer exec -- drush site:install --existing-config
    ```

    After this step, you should configure your web server to serve `web/`directory as its document root.
4. Add (or otherwise create) a user to the `fedoraadmin` role; for example, giving the default `admin` user the role:

    ```
    composer exec -- drush user:role:add fedoraadmin admin
    ```
5. Configure the locations of external services.

Change the following Drupal configs to your values using any method (GUI, `drush cset`, config overrides in `settings.php`...):

ValueDrupal Config itemDefault Starter Site valueActiveMQ (broker)`islandora.settings broker_url``tcp://127.0.0.1:61613`Cantaloupe (for OpenSeadragon)`openseadragon.settings iiif_server``http://127.0.0.1:8080/cantaloupe/iiif/2`Cantaloupe (for Islandora IIIF)`islandora_iiif.settings iiif_server``http://127.0.0.1:8080/cantaloupe/iiif/2`Solr - URL`search_api.server.default_solr_server backend_config.connector_config.host``127.0.0.1`Solr - port`search_api.server.default_solr_server backend_config.connector_config.port``8983`Solr - core name`search_api.server.default_solr_server backend_config.connector_config.core``ISLANDORA`6. Make the Syn/JWT keys available to our configuration either by (or by some combination of):

    1. Symlinking the private key to `/opt/islandora/auth/private.key`; or,
    2. Setting the appropriate location as `key.key.islandora_rsa_key key_provider_settings.file_location`(using the methods listed in step 5 or at `/admin/config/system/keys/manage/islandora_rsa_key`)
7. Run the migrations tagged with `islandora` to populate some taxonomies, specifying the `--userid` targeting the user with the `fedoraadmin`role:

    ```
    composer exec -- drush migrate:import --userid=1 --tag=islandora
    ```

This should get you a starter Islandora site with:

- A basic node bundle to represent repository content
- A handful of media types that store content in Fedora
- RDF and JSON-LD mappings for miscellaneous entities to support storage in Fedora, Triplestore indexing and client requests.

### Post-installation cleanup

[](#post-installation-cleanup)

1. Uninstall the database driver modules you are not using; for example, if you are using `mysql` to use a MySQL-compatible database, you should be clear to uninstall the `pgsql` (PostgreSQL) and `sqlite` (SQLite) modules:

    ```
    composer exec -- drush pm:uninstall pgsql sqlite
    ```

### Known issues

[](#known-issues)

#### Warnings/errors during installation

[](#warningserrors-during-installation)

Some modules presently have some bad expectations as to the system state when `hook_install()` is invoked and as such, some messages are emitted:

```
$ composer exec -- drush site:install --existing-config --db-url=mysql://user:***@localhost/db

 You are about to:
 * DROP all tables in your 'db' database.

 Do you want to continue? (yes/no) [yes]:
 >

 [notice] Starting Drupal installation. This takes a while.
 [notice] Performed install task: install_select_language
 [notice] Performed install task: install_select_profile
 [notice] Performed install task: install_load_profile
 [notice] Performed install task: install_verify_requirements
 [notice] Performed install task: install_settings_form
 [notice] Performed install task: install_verify_database_ready
 [notice] Performed install task: install_base_system
 [notice] Performed install task: install_bootstrap_full
 [error]  The Flysystem driver is missing.
 [warning] Could not find required jsonld.settings to add default RDF namespaces.
 [notice] Performed install task: install_config_import_batch
 [notice] Performed install task: install_config_download_translations
 [notice] Performed install task: install_config_revert_install_changes
 [notice] Performed install task: install_configure_form
 [notice] Performed install task: install_finished
 [success] Installation complete.  User name: admin  User password: ***
$

```

There are two "unexpected" messages there:

- `[error]  The Flysystem driver is missing.`
    - Appears to be from [the `flysystem` module's `hook_install()` implementation](https://git.drupalcode.org/project/flysystem/-/blob/cf46f90fa6cda0e794318d04e5e8e6e148818c9a/flysystem.install#L27-32)where it tries to ensure that all schemes defined are in a state ready to be used; however, all the modules are not yet enabled (in the particular case, `islandora` is not actually enabled, so the `fedora` driver is unknown), and so leading to this message being emitted. The `islandora` module *is* enabled by the time the command exits, so this message should be ignorable.
- `[warning] Could not find required jsonld.settings to add default RDF namespaces.`
    - Appears to be from [the `islandora` module's `hook_install()` implementation](https://github.com/Islandora/islandora/blob/725b5592803564c9727e920b780247e45ecbc9a4/islandora.install#L8-L13)where it tries to alter the `jsonld` module's `jsonld.settings` config object to add some namespaces; however, because the configs are not yet installed when installing the modules with `--existing-config`, it fails to find the target configuration to alter it. As exported, the `jsonld.settings` already contains the alterations (at time of writing), so this warning should be ignorable.

In summary: These two messages seem to be ignorable.

#### Patches

[](#patches)

If a patch (external or internal) is necessary, it can be applied automatically by composer by using the [composer-patches plugin](https://github.com/cweagans/composer-patches). Any patches included in the Starter Site should be described fully in this section (including when they should be removed).

- None, presently.

### Ongoing Project Maintenance

[](#ongoing-project-maintenance)

It is anticipated that [Composer](https://getcomposer.org/) will be used to manage Drupal and its extensions, including Islandora's suite of modules. The Drupal project has already documented many of the interactions in this space, so we will just list and summarize them here:

[Using Composer to Install Drupal and Manage Dependencies](https://www.drupal.org/docs/develop/using-composer/manage-dependencies)

- The "install" describing:

    - Composer's `create-project` command, which we describe above being used to install using this "starter site" project; and,
    - The `drush site:install`/`drush si` command, described above being used to install Drupal via the command line.
- "manage\[ment\]", describing:

    - Composer's `require` command, used to add additional dependencies to your project
    - Updating, linking out to additional documentation for Drupal's core and modules:
        - [Updating Drupal core via Composer](https://www.drupal.org/docs/updating-drupal/updating-drupal-core-via-composer)
        - [Updating Modules and Themes using Composer](https://www.drupal.org/docs/updating-drupal/updating-modules-and-themes-using-composer)

    Generally, gets into using Composer's `update` command to update extensions according to the specifications in the `composer.json`, and Composer's `require` command to *change* those specifications when necessary to cross major version boundaries.

It is also recommended to monitor and/or subscribe to Drupal's security advisories to know when it might be necessary to update.

Documentation
-------------

[](#documentation)

Further documentation for this ecosystem is available on the [Islandora documentation site](https://islandora.github.io/documentation/).

Troubleshooting/Issues
----------------------

[](#troubleshootingissues)

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)

Development
-----------

[](#development)

If you would like to contribute, please get involved by attending our weekly [Tech Call](https://github.com/Islandora/islandora-community/wiki/Weekly-Open-Tech-Call). 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://github.com/Islandora/islandora-community/wiki/Onboarding-Checklist#contributor-license-agreements) or [Corporate Contributor License Agreement](https://github.com/Islandora/islandora-community/wiki/Onboarding-Checklist#contributor-license-agreements). Please see the [Contributor License Agreements](https://github.com/Islandora/islandora-community/wiki/Contributor-License-Agreements) page on the islandora-community wiki for more information.

We recommend using the [islandora-playbook](https://github.com/Islandora-Devops/islandora-playbook) to get started.

### General starter site development process

[](#general-starter-site-development-process)

For development of this starter site proper, we anticipate something of a particular flow being employed, to avoid having other features and modules creep into the base configurations. The expected flow should go something like:

1. Provisioning an environment making use of the starter site

    - It *may* be desirable to replace the environment's starter site installation with a repository clone of the starter site at this point to avoid otherwise manually copying changes out to a clone.
2. Importing the config of the starter site

    1. This should overwrite any configuration made by the provisioning process, including disabling any modules that should not be generally enabled, and installing those that *should* be.
    2. This might be done with a command in the starter site directory such as:

        ```
        composer exec -- drush config:import sync
        ```
3. Perform the desired changes, such as:

    - Using `composer` to manage dependencies:
        - If updating any Drupal extensions, this should be followed by running Drupal's update process, in case there are update hooks to run which might update configuration.
    - Performing configuration on the site
4. Export the site's config, to capture any changed configuration:

    ```
    composer exec -- drush config:export sync
    ```
5. Copying the `config/sync` directory (with its contents) and `composer.json`and `composer.lock` files into a clone of the starter site git repository, committing them, pushing to a fork and making a pull request.

    - If the environment's starter site installation was replaced with a repository clone, you should be able to skip the copying, and just commit your changes, push to a fork and make a pull request to the upstream repository.

Periodically, it is expected that releases will be published/minted/tagged on the original repository; however, it is important to note that automated updates across releases of this starter site is not planned to be supported. That said, we plan to include changelogs with instructions of how the changes introduced since the last release might be effected in derived site for those who wish to adopt altered/introduced functionality into their own site.

#### Development modules

[](#development-modules)

A few modules are included in our `require-dev` section but left uninstalled from the Drupal site, as they may be of general utility but especially development. Included are:

- [`config_inspector`](https://www.drupal.org/project/config_inspector/): Helps identify potential issues between the schemas defined and active configuration.
- [`devel`](https://www.drupal.org/project/devel): Blocks and tabs for miscellaneous tasks during development
- [`restui`](https://www.drupal.org/project/restui): Helper for configuration of the [core `rest` module](https://www.drupal.org/docs/8/core/modules/rest)

These modules might be [enabled via the GUI or CLI](https://www.drupal.org/docs/extending-drupal/installing-modules#s-step-2-enable-the-module); however, they should be disabled before performing any kind of config export, to avoid having their enabled state leak into configuration.

License
-------

[](#license)

[GPLv2](http://www.gnu.org/licenses/gpl-2.0.txt)

###  Health Score

57

—

FairBetter than 98% of packages

Maintenance87

Actively maintained with recent releases

Popularity31

Limited adoption so far

Community25

Small or concentrated contributor base

Maturity74

Established project with proven stability

 Bus Factor1

Top contributor holds 52.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~39 days

Recently: every ~168 days

Total

31

Last Release

76d ago

Major Versions

0.8.0 → 1.0.02023-07-28

PHP version history (2 changes)0.0.0PHP ^7.4 || ^8

1.10.1PHP ^8.3

### Community

Maintainers

![](https://www.gravatar.com/avatar/9e6875ca967e30c512a9e14c6f05bba3199759ff56393ccf338ffddea4549e93?d=identicon)[Islandora](/maintainers/Islandora)

---

Top Contributors

[![rosiel](https://avatars.githubusercontent.com/u/1943338?v=4)](https://github.com/rosiel "rosiel (201 commits)")[![adam-vessey](https://avatars.githubusercontent.com/u/607975?v=4)](https://github.com/adam-vessey "adam-vessey (67 commits)")[![aOelschlager](https://avatars.githubusercontent.com/u/41480572?v=4)](https://github.com/aOelschlager "aOelschlager (27 commits)")[![joecorall](https://avatars.githubusercontent.com/u/1189940?v=4)](https://github.com/joecorall "joecorall (20 commits)")[![renovate[bot]](https://avatars.githubusercontent.com/in/2740?v=4)](https://github.com/renovate[bot] "renovate[bot] (19 commits)")[![Natkeeran](https://avatars.githubusercontent.com/u/1827166?v=4)](https://github.com/Natkeeran "Natkeeran (9 commits)")[![alxp](https://avatars.githubusercontent.com/u/82412?v=4)](https://github.com/alxp "alxp (8 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (7 commits)")[![kylehuynh205](https://avatars.githubusercontent.com/u/7862086?v=4)](https://github.com/kylehuynh205 "kylehuynh205 (4 commits)")[![joshdentremont](https://avatars.githubusercontent.com/u/8143333?v=4)](https://github.com/joshdentremont "joshdentremont (3 commits)")[![nigelgbanks](https://avatars.githubusercontent.com/u/487373?v=4)](https://github.com/nigelgbanks "nigelgbanks (3 commits)")[![ajstanley](https://avatars.githubusercontent.com/u/494887?v=4)](https://github.com/ajstanley "ajstanley (3 commits)")[![t4k](https://avatars.githubusercontent.com/u/415179?v=4)](https://github.com/t4k "t4k (2 commits)")[![DonRichards](https://avatars.githubusercontent.com/u/2738244?v=4)](https://github.com/DonRichards "DonRichards (2 commits)")[![bibliophileaxe](https://avatars.githubusercontent.com/u/18718388?v=4)](https://github.com/bibliophileaxe "bibliophileaxe (2 commits)")[![willtp87](https://avatars.githubusercontent.com/u/688918?v=4)](https://github.com/willtp87 "willtp87 (1 commits)")[![kstapelfeldt](https://avatars.githubusercontent.com/u/467898?v=4)](https://github.com/kstapelfeldt "kstapelfeldt (1 commits)")[![seth-shaw-asu](https://avatars.githubusercontent.com/u/108362375?v=4)](https://github.com/seth-shaw-asu "seth-shaw-asu (1 commits)")

---

Tags

islandora

### Embed Badge

![Health badge](/badges/islandora-islandora-starter-site/health.svg)

```
[![Health](https://phpackages.com/badges/islandora-islandora-starter-site/health.svg)](https://phpackages.com/packages/islandora-islandora-starter-site)
```

###  Alternatives

[thunder/thunder-distribution

The thunder distribution

50634.8k3](/packages/thunder-thunder-distribution)[govcms/govcms

GovCMS Drupal Distribution

18997.1k3](/packages/govcms-govcms)[farmos/farmos

A web-based farm record keeping application.

1.2k6.7k1](/packages/farmos-farmos)[drupalwxt/wxt

Project template for Drupal 10 sites built with the WxT distribution.

29159.8k8](/packages/drupalwxt-wxt)[voidagency/vactory_starter_kit

Vactory is a custom Drupal profile which is developed and released by VOID Agency.

1019.7k](/packages/voidagency-vactory-starter-kit)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
