Get Divengine Studio
Studio is not a service you sign up for. It is free software you download and run on your own infrastructure: a laptop to try it, a server for your team, your cloud of choice. Your data never leaves it.
What you need
| Component | Version | Notes |
|---|---|---|
| Drupal core | 11.4 | Not installed separately: Composer installs it at the exact version locked by Studio, currently a security release of the 11.4 branch. |
| PHP | 8.4 | The version Studio is tested with. Drupal 11.4 accepts PHP 8.3, but Studio is not tested on it. Include the extensions Drupal needs, such as pdo_pgsql, gd, xml and mbstring. |
| PostgreSQL | 16 or newer | The minimum Drupal 11.4 accepts, with the pg_trgm extension. Studio is developed and tested on PostgreSQL. |
| Composer | 2.x | Installs Drupal core, contributed modules and libraries at the exact versions locked by Studio. |
| Git | any | To get the code, and for Code Source to read your repositories. |
| Web server | any | Apache, nginx or Caddy with PHP-FPM, with web/ as the web root. |
| Private files | A directory outside the web root for test evidence, attachments and the MCP token, configured before installing. |
Install with the web installer
This is the recommended path for a new site. The installer is a Drupal installation profile with the Studio branding. It applies the divengine_studio recipe, which is Drupal's Standard recipe followed by divengine_studio_base, the recipe that holds all of Studio's modules and configuration.
Get the code
git clone https://github.com/divengine/studio.git cd studio composer installCreate the database
An empty PostgreSQL database with
pg_trgmenabled.sudo -u postgres psql <<'SQL' CREATE ROLE studio LOGIN PASSWORD 'choose-a-good-one'; CREATE DATABASE studio OWNER studio; \c studio CREATE EXTENSION IF NOT EXISTS pg_trgm; SQLPrepare
settings.phpSet the private file path and the host names Studio will answer to.
cp web/sites/default/default.settings.php web/sites/default/settings.php mkdir -p private/files cat >> web/sites/default/settings.php <<'PHP' $settings['file_private_path'] = '../private/files'; $settings['trusted_host_patterns'] = ['^studio\.example\.com$']; PHPConfigure the web server
Point it at
web/. Only Apache reads Drupal's.htaccessrules; on nginx or Caddy, deny settings files, source files, hidden files and PHP underfiles/yourself. The Studio README has ready-made nginx and Caddy configurations.Open the installer
Browse to
https://studio.example.com/core/install.php. The Divengine Studio distribution is selected automatically. Choose a language, enter the database, choose optional integrations (MCP integration is off by default) and create the administrator account. When it finishes, Studio opens on My work.Optional: connect AI assistants
If you selected the MCP integration, create its service account and token on the server:
vendor/bin/drush divengine:mcp-setup --uri=https://studio.example.comThe token is written to a private file, never printed, and the command shows how to connect a client. Add the service account to the Developments it should read.
Without a browser
The same profile installs from the command line, for example in provisioning scripts:
vendor/bin/drush site:install divengine_studio_installer \
--db-url=pgsql://studio:choose-a-good-one@localhost/studio \
--site-name='Divengine Studio' \
--account-name=admin --account-mail=you@example.com
# add divengine_studio_installer_integrations_form.mcp=1 for MCP
Apply Studio to an existing Drupal site
To add Studio to a Drupal 11.4 site that already exists, apply divengine_studio_base. The site needs what Drupal's Standard recipe or profile provides: the Basic and Full HTML text formats with their editors and the Content editor role. A site installed with the Minimal profile does not have them. The site keeps its name; /studio becomes the front page, the Studio theme the default theme and Gin the administration theme.
vendor/bin/drush recipe $PWD/recipes/divengine_studio_base
vendor/bin/drush recipe $PWD/recipes/divengine_studio_mcp # optional
Do not apply divengine_studio to an existing site. It starts with Drupal's Standard recipe, whose configuration changes between Drupal releases, and Drupal refuses to apply it over a site created with an earlier version.
Update an existing site
Back up the database and the private files directory, and try the update on a copy of the site first. Then deploy the new code, apply the database updates and re-apply the base recipe, which imports the configuration that new features bring:
composer install
vendor/bin/drush updatedb --yes
vendor/bin/drush recipe $PWD/recipes/divengine_studio_base
vendor/bin/drush recipe $PWD/recipes/divengine_studio_mcp # if MCP is installed
vendor/bin/drush cache:rebuild
- This is also the path from Drupal 11.3 to 11.4, for sites installed with the web installer and for sites where the Studio recipe was applied to a Standard installation
- Re-applying the base recipe sets again the values it defines for existing configuration: the front page, the default and administration themes, and the editor buttons and filters of Basic and Full HTML. Customizations of those are overwritten
- Sites created before Drupal 11.4 keep what the earlier Standard profile installed, such as the toolbar, the Article and Basic page content types and History. New sites use Drupal's Navigation instead
- Studio has no tagged releases yet. A versioned release and upgrade policy is being prepared; until then, update from the main branch
What you get
The whole suite
Records and traceability, BPMN and UML modelers, the Unified Process, test management, projects, timesheets, knowledge base, discussions, code source, code documentation and database schemas.
Roles that make sense
Content editor, Project Manager, QA User, Tester, Lead and Manager, Studio Manager and Database analyzer, with access by Development membership.
Sensible defaults
Record types and lifecycles, trace types, process definitions, development cases and QA settings, ready to adapt.
A real Drupal site
Extend it with modules, theme it, integrate it through Drupal's APIs. Studio follows Drupal's own practices.
Optional MCP server
A second recipe adds an MCP endpoint for AI assistants, with OAuth sign-in or a service token. Assistants read by default; people you make MCP writers can let theirs draft records, never approve them. Leave it out entirely if you do not need it.
GPL-3.0
Free software: use it for any purpose, study it, change it and share your improvements.
Need a hand?
The documentation walks you through configuration and every feature, in plain language.