SODa SCS Manager
This module turns Drupal into a self-service control panel for researchers to create projects, invite collaborators, and provision research applications like WissKI environments, Nextcloud, and Jupyter notebooks. It provides a project-centric dashboard for managing these resources with single sign-on and collaboration features, enabling FAIR-oriented tooling without requiring dedicated operations staff.
SODa SCS Manager turns Drupal into a self-service control panel for the SODa Semantic Co-Working Space (SCS). Researchers and collection staff can create projects, invite collaborators, and spin up research apps—WissKI environments, Nextcloud file spaces, JupyterHub notebooks, SQL databases, OpenGDB triplestores, and WebProtégé—without installing software locally or learning Docker.
If you are new to Drupal: you mainly use a dashboard and wizards. Drupal hosts the UI, users, and configuration; the module talks to Keycloak (login), Portainer/Docker (containers), MariaDB, Nextcloud, and related services in the background.
What solution does this module provide? A project-centric platform to provision, share, monitor, and tear down SCS applications and resources with SSO, membership sync, snapshots, and connected-account management—so cultural-heritage and research teams get FAIR-oriented tooling without a dedicated ops person for every instance.
Try it / run it: Production/reference deployment at scs.sammlungen.io. Full stack (Drupal + Keycloak, Nextcloud, JupyterHub, OpenGDB, Traefik, etc.): soda_scs_manager_deployment. For most adopters, that Compose environment is the supported way to run SODa SCS Manager—not a plain core Drupal site alone.
Features
Basic functionality
- Project-centric dashboard — central services (e.g. Nextcloud, Jupyter, WebProtégé) plus “Your projects” as cards (status, members); create apps from the project page.
- Stacks (environments) — e.g. WissKI Environment (Drupal/WissKI + DB + triplestore), JupyterHub Environment, Nextcloud Environment (files, OnlyOffice, SCS-Share).
- Components (resources/accounts/instances) — SQL databases (phpMyAdmin), OpenGDB triplestores, WebProtégé accounts, plain WissKI instances, etc.
- Identity & access — OpenID Connect / Keycloak SSO; project membership sync to groups; service keys and connected accounts.
- Lifecycle — create/delete provisioning, health/online status, snapshots for backup/restore, secure logging (credential redaction).
- Collaboration — projects with owners/members; Nextcloud Team Folders tied to projects; shared access across apps.
When / why use it
- You run (or plan) a multi-tenant research/coworking platform for collections, digital humanities, or museum data.
- Users need self-service WissKI / Jupyter / Nextcloud / SPARQL / SQL without ticket-driven VM setup.
- You want one Drupal-facing admin UX wired to Keycloak and container orchestration.
Typical use cases
- A research group creates a project, adds a WissKI Environment with the default data model, and shares the project Team Folder via Nextcloud.
- A curator gets a SQL database and phpMyAdmin access via SSO for structured imports.
- A data scientist starts a JupyterHub environment that can use files from SCS-Share / Nextcloud.
- An ontology editor uses a WebProtégé account managed through the same dashboard and login.
Post-Installation
This module is meant to run inside the SODa SCS Manager deployment (or an equivalent stack), not as a drop-in on a bare Drupal site.
- Deploy the stack — follow soda_scs_manager_deployment (clone, submodules,
.envfromexample-env,./start.sh,docker compose up -d, then MkDocs post-configuration for Keycloak, Nextcloud, DBMS SSO, etc.). - Enable the module and theme — enable
soda_scs_managerand its companion themesoda_scs_manager_theme; rebuild theme assets (npm install/npm run buildin the theme) if you maintain CSS. - Configure settings — go to Administration → Configuration → SODa SCS Manager (
/admin/config/soda-scs-manageror the route from the module’s configure link). Set integration endpoints/secrets (Keycloak, Portainer/Docker, Nextcloud, mail/SMTP, security/logging, etc.). - OpenID Connect — configure the OpenID Connect client so users log in via Keycloak (no separate “local-only” SCS workflow).
- Permissions & roles — grant SCS users permissions such as managing own stacks/components/projects and “Manage own connected accounts”; keep admin permissions restricted.
- User-facing entry — after login, users land on the Dashboard (not classic Drupal content types). Create projects there; add applications with “(+)” on a project. Optional: Connected Accounts for Nextcloud mount status and related links.
- Translations — German UI strings ship as
translations/soda_scs_manager.de.po; import via Locale/Drush if needed.
Special considerations: Applications belong to at most one project. Provisioning needs working Docker/Portainer and service APIs. Nextcloud Team Folders and Keycloak groups are synced on project create/update/delete. Post-install hooks in companion services (e.g. Nextcloud) may need one-time occ/manual steps on existing installs—see the deployment docs.
Additional Requirements
- Drupal 10 or 11 (module:
^10 | ^11). - Drupal dependencies (declared): Language (core), OpenID Connect, SMTP, Field Group, and the soda_scs_manager_theme theme.
- Composer-related (module
composer.json): e.g.drupal/openid_connect,drupal/smtp, Tailwind-related packages for the theme stack. - Infrastructure (required for real use): Keycloak (SSO/groups/attributes), Docker + Portainer (or equivalent) for container lifecycle, MariaDB, Traefik (or similar reverse proxy), Nextcloud (+ integration app where used), JupyterHub, OpenGDB/triplestore services, WebProtégé as configured in the deployment. The reference Compose wiring is in soda_scs_manager_deployment.
- Host tools for operators: Docker, Git (submodules),
jq,curl; Node/npm on the host for theme builds.
Recommended modules/libraries
- soda_scs_manager_theme — required companion theme (Tailwind/PostCSS UI); styling lives there, not in the module.
- OpenID Connect + Keycloak realm/clients as documented in the deployment MkDocs.
- SMTP — reliable outbound mail for invitations/notifications.
- Platform companions from the SODa stacks (Nextcloud
scs_manager_integration, WissKI base images/packages, default WissKI data model) as used by the deployment—these extend what the manager can provision.
Similar projects
- Generic Drupal multisite / Aegir / Pantheon-style hosting panels — manage Drupal sites; they do not provision WissKI+triplestore+Nextcloud+Jupyter as one research coworking product with Keycloak project groups.
- Cloud control panels (Rancher, Portainer UI alone) — ops-focused container management; SODa SCS Manager is an end-user research dashboard on top of that stack.
- WissKI / Islandora / other DH Drupal distributions — focus on a single research CMS or repository; this module orchestrates many user-owned environments and shared central services around SODa SCS.
Differentiation: project-scoped self-service for a defined SCS toolset (WissKI, Jupyter, Nextcloud, SQL, OpenGDB, WebProtégé) with SSO and membership sync, not a general hosting or single-CMS distribution.
Supporting this Module
SODa SCS Manager is developed in the context of the SODa project (Sammlungen – Objekte – Datenkompetenzen). For collaboration, issues, and contributions, use the project’s GitHub organisation soda-collections-objects-data-literacy and the deployment/module repositories linked there. (Add Patreon/OpenCollective links here if you create them later.)
Community Documentation
- Live platform: https://scs.sammlungen.io
- Deployment + operator docs (MkDocs): https://github.com/soda-collections-objects-data-literacy/soda_scs_manager_deployment — clone and run MkDocs Material as described in the README to browse the full setup/post-configuration guide.
- SODa / SCS background: https://sammlungen.io · conceptual record: SODa Semantic Co-Working Space (Zenodo)
- Module README (hooks, content sync, secure logging, theming notes) in the module repository.
Additional information
- Licensed under GPL-2.0-or-later (GPL-2.0+), matching Drupal core.
- UI language: English with German translations maintained in-module.
- Security: prefer the module’s secure logging helpers; never leave DB passwords/app secrets in plain logs. Nextcloud app passwords are handled as encrypted Drupal user data in current versions—follow CHANGELOG/migration notes when upgrading.
- Not a “content type” module for site builders: expect custom entities (projects, stacks, components, snapshots, service keys) and a dashboard-first UX.