PHPackages                             nextagencyio/drupal-cloud-project - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. nextagencyio/drupal-cloud-project

ActiveProject[Authentication &amp; Authorization](/categories/authentication)

nextagencyio/drupal-cloud-project
=================================

Decoupled Drupal template with GraphQL, OAuth, and Next.js integration for headless CMS development

v1.0.2(6mo ago)034GPL-2.0-or-laterPHPCI passing

Since Aug 10Pushed 1mo agoCompare

[ Source](https://github.com/nextagencyio/decoupled-project)[ Packagist](https://packagist.org/packages/nextagencyio/drupal-cloud-project)[ Docs](https://github.com/nextagencyio/decoupled-project)[ RSS](/packages/nextagencyio-drupal-cloud-project/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (21)Versions (24)Used By (0)

Decoupled Drupal Project
========================

[](#decoupled-drupal-project)

Drupal 11 installation powering the headless backend for [decoupled.io](https://decoupled.io). Custom `dc_core` install profile, FrankenPHP-based Docker image, and a `fly.toml` for building + pushing the image to Fly.io.

This repo is **application code only**. Provisioning of Fly tenant apps — the orchestration that spins up a new Drupal site per customer — lives in the [decoupled-dashboard](https://github.com/nextagencyio/decoupled-dashboard)repo under `scripts/fly/`. If you're looking for `bin/provision-tenant.sh`, it moved there.

Stack
-----

[](#stack)

- **Drupal 11** on PHP 8.5
- **FrankenPHP** (Caddy + PHP worker mode) — Dockerfile + Caddyfile in repo root
- **PostgreSQL** (Drupal runs on Postgres via `settings.platform.php`)
- **APCu** for hot cache bins via Drupal's chainedfast backend
- **dc\_core** install profile (see `web/profiles/dc_core/`)
    - Custom modules: `dc_chatbot`, `dc_config`, `dc_import`, `dc_mail`, `dc_puck`, `dc_revalidate`
    - GraphQL Compose for headless API
    - OAuth consumers auto-generated per install via `hook_install()`

Local development
-----------------

[](#local-development)

DDEV-based local dev (see `.ddev/config.yaml`):

```
ddev start
ddev composer install
ddev drush site:install dc_core -y
```

Building the Fly image
----------------------

[](#building-the-fly-image)

Every tenant on Fly pulls its image from the `decoupled-drupal-frankenphp`Fly app's registry. To ship a new image:

```
fly deploy
```

This builds the FrankenPHP image on Fly's builder, pushes it to `registry.fly.io/decoupled-drupal-frankenphp`, and redeploys the source app. New tenants provisioned after this automatically pick up the new image (the dashboard's provisioner resolves the current tag at create time).

**Rolling the image out to existing tenants** is the dashboard's `fly-fleet-deploy.yml` GitHub Action — it loops over every `tenant-*` app and `fly deploy`s them against the new tag. Run from the dashboard repo.

Repository structure
--------------------

[](#repository-structure)

```
Dockerfile                          FrankenPHP build
Caddyfile                           Caddy config (serves /app/web)
frankenphp-worker.php               FrankenPHP worker bootstrap
fly.toml                            Fly config for the source app
composer.json                       Drupal + contrib dependencies
docker/
├── apcu.ini                        Enables APCu (shipped disabled in the image)
└── drupal-settings.php             Committed settings.php shim
web/
├── profiles/
│   └── dc_core/                    Install profile + custom modules
├── sites/
│   └── default/
│       ├── settings.platform.php   Reads DATABASE_URL / HASH_SALT from env
│       └── settings.platformsh.php (legacy, unused on Fly)
└── ...

```

Requirements
------------

[](#requirements)

- PHP 8.3+ (or DDEV, which brings its own). Production images run PHP 8.5 via `dunglas/frankenphp:1-php8.5`.
- Composer 2
- `flyctl` for deploying the source image to Fly
- Drupal 11

License
-------

[](#license)

GPL-2.0-or-later (same as Drupal core).

###  Health Score

37

—

LowBetter than 81% of packages

Maintenance82

Actively maintained with recent releases

Popularity7

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

3

Last Release

189d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/23e37b1ecb5973dbb1a3b1be781229da7602aee47963477ba49fcc353e3e04eb?d=identicon)[drupalninja](/maintainers/drupalninja)

---

Top Contributors

[![nextagencyio](https://avatars.githubusercontent.com/u/1112449?v=4)](https://github.com/nextagencyio "nextagencyio (227 commits)")

---

Tags

apigraphqldrupaloauthcmsheadlessnext.js

### Embed Badge

![Health badge](/badges/nextagencyio-drupal-cloud-project/health.svg)

```
[![Health](https://phpackages.com/badges/nextagencyio-drupal-cloud-project/health.svg)](https://phpackages.com/packages/nextagencyio-drupal-cloud-project)
```

###  Alternatives

[thunder/thunder-distribution

The thunder distribution

51661.9k3](/packages/thunder-thunder-distribution)[govcms/govcms

GovCMS Drupal Distribution

198102.2k3](/packages/govcms-govcms)[az-digital/az_quickstart

Arizona Quickstart

52280.4k3](/packages/az-digital-az-quickstart)[drupal/recommended-project

Project template for Drupal projects with a relocated document root

1502.8M1](/packages/drupal-recommended-project)[farmos/farmos

A web-based farm record keeping application.

1.3k7.1k1](/packages/farmos-farmos)[voidagency/vactory_starter_kit

Vactory is a custom Drupal profile which is developed and released by VOID Agency.

1021.6k](/packages/voidagency-vactory-starter-kit)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
