Skip to content
dpc-sdpPublic

About

Tide is an API first, headless content management system custom built on Drupal to suit government needs.

Topics

Resources

Stars

9 stars

Watchers

11 watching

Forks

Repository files navigation

SDP logo

Tide is a Drupal 11 distribution focused on delivering an API first, headless Drupal content administration site.

Table of Contents

About the project

Tide distribution for building websites on the Single Digital Presence platform

Tide is a Drupal 11 distribution focused on delivering an API first, headless Drupal content administration site.

This package is merely a collection of all Tide modules that make up this distribution.

What is in this package

  • references to all Tide modules

Use

To install this package, add this custom repository to repositories section of your composer.json:

{
  "repositories": {        
      "dpc-sdp/tide": {
          "type": "vcs",
          "no-api": true,
          "url": "https://github.com/dpc-sdp/tide.git"
      }
  }
}

Require this package as any other Composer package:

composer require dpc-sdp/tide

Contributing

Open an issue on GitHub or submit a pull request with suggested changes.

Support

Digital Engagement, Department of Premier and Cabinet, Victoria, Australia is a maintainer of this package.

Development and maintenance

Local development is powered by DDEV with the ddev-drupal-contrib add-on. The profile repository is the project root; a disposable Drupal site is built into web/ and the profile is made available to it via per-file symlinks — code changes at the repository root take effect immediately, no sync step required.

The development build uses PHP 8.3, MariaDB 10.6 and Drupal 11.4.x, matching dpc-sdp/tide_core on develop. Its Drupal issue-fork repositories must also be declared in this project's composer.json, because Composer only reads repository definitions from the root package. The explicit tide_core Git repository also preserves the patch order declared on develop; some of its patches depend on earlier patches in the same package.

To build a fresh local development site in one step:

  1. Checkout this project.
  2. Run ddev build — stops DDEV, removes the generated web/ and vendor/ directories, starts the services, installs the dependencies, symlinks the profile and installs the site.

ddev build and ddev install-site replace the local database. Export any data you need with ddev export-db --file=../tide-backup.sql.gz before reinstalling, and copy any uploads out of web/ before running ddev build. When Mutagen is enabled, the build also resets its cached project files.

Alternatively, run each build step separately:

  1. Run ddev start — starts web, db, OpenSearch, selenium-chrome and clamav services.
  2. Run ddev poser — installs Drupal core (version pinned by DRUPAL_CORE in .ddev/config.yaml), dpc-sdp/tide_core and all dependencies into web/ and vendor/.
  3. Run ddev symlink-project — symlinks this profile into web/profiles/custom/tide (re-run after adding/removing root-level files; also runs automatically on ddev start).
  4. Run ddev install-site — installs a fresh site using the tide installation profile.

Day-to-day commands:

  • ddev drush <command> — run Drush.
  • ddev ssh — shell into the web container.

Private uploads are stored in private/, outside the web root. OpenSearch is available to containers at http://opensearch:9200; its host HTTP/HTTPS ports are 9202/9203 so it can run alongside a local Bay stack using 9200/9201.

Contributed-module patches are applied from dpc-sdp/tide_core's composer.json (extra.patches) via cweagans/composer-patches — enabled by extra.enable-patching in this repository's composer.json.

Troubleshooting OpenSearch startup

If ddev start reports that the OpenSearch container exited or failed to become healthy, inspect its logs:

ddev logs -s opensearch

If the logs report that vm.max_map_count is too low:

ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

Increase the limit and start DDEV again:

docker run --privileged --rm --pid=host alpine sysctl -w vm.max_map_count=262144
ddev start

The setting may need to be applied again after restarting Docker.

Related projects

License

This project is licensed under GPL2

Attribution

Single Digital Presence offers government agencies an open and flexible toolkit to build websites quickly and cost-effectively.

SDP logo

The Department of Premier and Cabinet partnered with Salsa Digital to deliver Single Digital Presence. As long-term supporters of open government approaches, they were integral to the establishment of SDP as an open source platform.

Salsa logo

About

Tide is an API first, headless content management system custom built on Drupal to suit government needs.

Topics

Resources

Stars

9 stars

Watchers

11 watching

Forks

Releases

Packages

Used by

Contributors

Languages