Deployment

Deployment Strategies

Lupus Decoupled Drupal supports two fundamentally different deployment approaches: running the frontend as a separate service, or bundling it directly as a Drupal theme.

Lupus Decoupled Drupal supports two fundamentally different deployment approaches: running the frontend as a separate service, or bundling it directly as a Drupal theme.

Separate Frontend

With a separate frontend, a standalone frontend server (e.g. a Node.js/Nuxt server) handles page rendering and communicates with Drupal via the CE API. This is the default approach for production sites where SSR or SSG is needed.

Within this approach, there are two hosting strategies:

Separated Deployment

The frontend and Drupal backend are deployed and hosted independently. This offers:

  • Faster frontend deployments without dependency on Drupal maintenance windows
  • Freedom to choose specialized frontend hosting solutions (e.g. serverless edge deployments)
  • Independent scaling and optimization of each component

However, this adds complexity in coordinating multiple environments. For Nuxt frontends, see the Nuxt deployment docs.

Unified Deployment

Frontend and Drupal backend are hosted together in a single environment. This:

  • Requires a hosting environment capable of running both frontend (e.g. Node.js) and Drupal
  • Simplifies deployment coordination and environment management
  • Enables direct communication between services (e.g. cache or search servers)

A list of unified hosting possibilities can be found here.

Frontend Rendering Modes

Both strategies support multiple rendering modes (SSR, SSG, CSR). By default, Lupus Decoupled uses a Nuxt frontend with server-side rendering. Refer to the Nuxt rendering modes or your frontend framework's documentation for details.

Theme-Based Deployment (CSR)

With Lupus CSR, the pre-built frontend application is bundled directly as a Drupal theme. No separate frontend server is needed:

  • Any standard Drupal hosting works
  • The frontend application is deployed alongside Drupal as part of the theme
  • It fetches content from /ce-api/... on the same origin

This is the simplest deployment strategy and the default for Drupal CMS site templates. The trade-off is client-side rendering, which is not ideal for SEO-critical sites.