定制 nextagencyio/drupal-cloud-project 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

nextagencyio/drupal-cloud-project

最新稳定版本:v1.0.2

Composer 安装命令:

composer create-project nextagencyio/drupal-cloud-project

包简介

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

README 文档

README

Drupal 11 installation powering the headless backend for 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 repo under scripts/fly/. If you're looking for bin/provision-tenant.sh, it moved there.

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

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

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

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 deploys them against the new tag. Run from the dashboard repo.

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

  • 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

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

统计信息

  • 总下载量: 34
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: GPL-2.0-or-later
  • 更新时间: 2025-08-27

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固