{"id":14968729,"url":"https://github.com/unlcms/project-herbie","last_synced_at":"2026-02-02T19:03:24.585Z","repository":{"id":34309105,"uuid":"176987199","full_name":"unlcms/project-herbie","owner":"unlcms","description":"Drupal 10 implementation at the University of Nebraska–Lincoln","archived":false,"fork":false,"pushed_at":"2026-01-27T19:48:19.000Z","size":12883,"stargazers_count":6,"open_issues_count":212,"forks_count":10,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-01-28T06:25:31.646Z","etag":null,"topics":["cms","drupal","drupal10","higher-education","highered","php","unlincoln"],"latest_commit_sha":null,"homepage":"https://cms.unl.edu","language":"Twig","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/unlcms.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-03-21T16:47:31.000Z","updated_at":"2026-01-27T19:48:24.000Z","dependencies_parsed_at":"2023-09-21T19:42:38.989Z","dependency_job_id":"4da4b425-ce62-4f41-8142-b65a22095b37","html_url":"https://github.com/unlcms/project-herbie","commit_stats":{"total_commits":1176,"total_committers":10,"mean_commits":117.6,"dds":0.5833333333333333,"last_synced_commit":"a53070bb702477f7e9a2bf32e4c5eef6c17a5a9c"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/unlcms/project-herbie","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unlcms%2Fproject-herbie","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unlcms%2Fproject-herbie/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unlcms%2Fproject-herbie/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unlcms%2Fproject-herbie/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/unlcms","download_url":"https://codeload.github.com/unlcms/project-herbie/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unlcms%2Fproject-herbie/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29017940,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-02T18:51:31.335Z","status":"ssl_error","status_checked_at":"2026-02-02T18:49:20.777Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cms","drupal","drupal10","higher-education","highered","php","unlincoln"],"created_at":"2024-09-24T13:40:27.837Z","updated_at":"2026-02-02T19:03:24.569Z","avatar_url":"https://github.com/unlcms.png","language":"Twig","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Drupal 10 at UNL (Project Herbie)\n\nA multisite installation hosted at https://cms.unl.edu/ developed by the [Digital Experience Group](https://ucomm.unl.edu/)\nand supported by DXG and ITS.\n\n## Requirements\n\nSee [Drupal System Requirements](https://www.drupal.org/docs/system-requirements)\n\nWhile it is possible to run Drupal on a variety of web servers, database servers, etc.,\nthe officially supported configuration at UNL is as follows:\n\n- Linux (any modern, supported distribution)\n- PHP 8.1 or greater\n- Apache 2.4 or greater\n- MariaDB 10.6 or greater\n\nLatest verified working configuration:\n\n- PHP 8.1.10\n- Apache 2.4.54\n- MariaDB 10.7.3\n\nComposer, PHP's dependency manager, is necessary to install this project.\nSee [Install Composer](https://getcomposer.org/doc/00-intro.md#installation-linux-unix-osx).\n\nNote: The instructions below refer to the [global composer installation](https://getcomposer.org/doc/00-intro.md#globally).\nIt may be necessary to replace `composer` with `php composer.phar` (or similar).\n\n### DDEV Support\n\nSee the _DDEV-README.md_ file in this project.\n\n## Production Environment \u0026 Deployment Procedure\n\nSee the important notes in the [DXG Wiki](https://git.unl.edu/dxg/internal-documentation/-/wikis/cms.unl.edu).\n\n## Installation\n\nNavigate to the project root and install the project:\n\n```\ncomposer install\n```\n\n### Install the UNLedu Web Framework\n\nThe [unl_five](https://github.com/unlcms/unl_five) theme requires the [UNLedu Web Framework](https://github.com/unl/wdntemplates).\n\nThere are two methods to install the UNLedu Web Framework:\n\n1. Automated\n2. Manual\n\n#### Automated\n\nThe unl/wdntemplates package is already downloaded to `/vendor/unl/wdntemplates`. Run the following command:\n\n```\ncomposer install-wdn\n```\n\nThis command will create a symlink of `/vendor/unl/wdntemplates/wdn` at `/web/wdn`.\n\nThe wdntemplates package is a Node.js project that uses Grunt. This command will also install\nthe Node.js project and run the default Grunt task.\n\nTo receive upstream updates, navigate to `vendor/unl/wdntemplates` and run `git pull`.\n\n#### Manual\n\nDownload the [UNLedu Web Framework sync set](https://wdn.unl.edu/downloads/wdn_includes.zip) to `/web/wdn`.\n\n### Install Drupal\n\n```\ncp web/sites/default/default.settings.php web/sites/default/settings.php\ncp web/sites/all/settings.php.sample web/sites/all/settings.php\n```\n\nEdit `web/sites/all/settings.php` and set the LDAP password.\n\nNavigate to _http://example.unl.edu/project-herbie/web/_ (or set up a virtual host, _cms-local.unl.edu_ is the recommended name) in your browser.\n(See [Installing Drupal](https://www.drupal.org/docs/installing-drupal))\n\nWhen asked to select an Installation Profile, select _Use existing configuration_.\n\nDecide if you want to run a multisite installation.  (See \"Running Multisite\" below.)\n\n## Common Settings for All Sites\n\nSettings that apply to all sites can be included in one of two places:\n\n1. `web/profiles/herbie/includes/settings.php.inc` which is committed to the repo.\n2. `web/sites/all/settings.php` which is not committed and is appropriate for sensitive info or environment specific overrides to things set in (1).  (A sample value can be committed to `web/sites/all/settings.php.sample`.)\n\n## Upgrading Drupal Core (or a module)\n\nRun this on a development site and commit composer.json, composer.lock, and any changes to `config/sync`.\nThe process is the same for a module, just change the project in the first composer command.\n```\ncomposer update \"drupal/core-*\" --with-all-dependencies\ndrush updatedb\ndrush cache:rebuild\ndrush config:export\n```\n\nRun on a deployment after updating code base:\n```\ncomposer install\n```\n\nRun on all sites:\n```\ndrush updatedb\ndrush cache:rebuild\n```\n\n## Configuration Management\n\nThis project uses Drupal Configuration Management to store the present/base/main configuration of a new site.\n\nAfter making changes, use `drush config:export` to export config to `config/sync` and commit.\nThis config is used during a site installation to instantiate a site.\n\n### Multisite-wide Config Changes\n\nImportant: **_Never use drush config:import_**. This multisite environment is not a single site that can have all of its\nconfiguration captured in config/sync. Each site may have custom content types and other configuration that would be\noverwritten/deleted by a config import. As noted previously, `config/sync` is only used as a\n\"distribution install profile\" during the creation of a new site.\n\nOnce again, with feeling, **_Never use drush config:import_**.\n\nOptions to deploy a configuration setting across sites:\n\n1. First check if the setting is part of a Feature. (Is the _State_ clean on `admin/config/development/features`?)\nIf not, update the Feature. (See \"Features\" section below.)\n2. Consider creating a new Feature for a package of configuration.\n3. Use `drush config:set` to change a config value. An example is `drush config:set unl_user.settings username_format myunl`.\n4. Alternatively, a non-editable config value (one that end-users shouldn't be able to change) can be set in `/profiles/herbie/includes/settings.php.inc` and committed.\n\n## Config Split\n\nThis project uses Config Split to manage configuration among production, stage, and development. Certain modules,\nsuch as Twig Xdebug and Config Inspector are only enabled on development.\n\nIn the development config split, a number of settings are enabled, disabled, or modified: Caching is disabled;\nTwig caching is disabled and Twig autoloading is enabled; debug cacheability headers are enabled;\nCSS and JS aggregation is disabled; and file permission hardening is disabled.  See\n/profiles/herbie/includes/settings.php.inc for more details. These settings can be overridden in settings.local.php.\n\n## Drush\n\nDrush can be run on the default site:\n```\nvendor/bin/drush \u003cdrush-commands\u003e\n```\nor on a specific site:\n```\nvendor/bin/drush -l https://cms-local.unl.edu/multisite1/ \u003cdrush-commands\u003e\n```\nor on all sites in a multisite installation:\n```\nphp drush-all-sites.php \u003cdrush-commands\u003e\n```\n\n## Features\n\nAre written to `web/modules/custom/features` and part of the `herbie` feature bundle.\n\n### Updating a Feature\n\nIn a development site, make the changes, bump the **Version** on `admin/config/development/features/edit/herbie_FEATURE` and click _Write_. Then commit changes.\n\n### Updating Multisite sites with the Feature update\n\nDeploy changes. Then run `php drush-all-sites.php fim herbie_FEATURE` where _herbie_FEATURE_ is the name of the feature.\n\n## Installing \u0026 Running Multisite\n\nThe [unl_multisite module](https://github.com/unlcms/unl_multisite) provides a web interface to run\na [Drupal multisite](https://www.drupal.org/docs/multisite-drupal) setup so additional sites can exist in\nsubdirectories such as http://example.unl.edu/site2. (This is not required to run the base site installation as a single site.)\n\nMuch of the setup that is detailed in the unl_multisite module's README file has been done in this project with\nComposer scripts. The following is what needs to be done manually.\n\n1. Create these files from the provided samples:\n\n```\ncp web/sites/example.sites.php web/sites/sites.php\ncp web/.htaccess-subsite-map.txt.sample web/.htaccess-subsite-map.txt\n```\n\n2. Add the following line to your Apache's configuration file (httpd.conf) where \u003cDRUPAL_ROOT\u003e is the file system path to the Drupal web root. Restart Apache afterward.\n\n```\nRewriteMap drupal_unl_multisite txt:\u003cDRUPAL_ROOT\u003e/.htaccess-subsite-map.txt\n```\n\n3. Set up a cron job on the server to execute `php web/modules/contrib/unl_multisite/cron.php` on a regular basis.\n\n4. Ensure the MySQL/MariaDB database user for the default site has privileges to create new databases.\n\n5. Enable the UNL Multisite module on the default site. It should only be enabled on the default site.\n\n### Multisite Troubleshooting\n\n- Drush and MariaDB 10.7+ don't work with a database port set if the host is localhost. If you are using localhost for the host, clear the port setting in settings.php.\n\n\n## Installing ImageMagick\n-  If you do not have ImageMagick software installed on your device, you can do so using the follwing commands. This software is necessary to process/add images.\n```\nbrew install imagemagick\nbrew install ghostscript\n```\n\nFor more infromation regaridng installation go to https://imagemagick.org/script/download.php\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funlcms%2Fproject-herbie","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funlcms%2Fproject-herbie","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funlcms%2Fproject-herbie/lists"}