drupal/one_line_installer

A bash installer for AI assisted tools with Drupal best practices.

Maintainers

Package info

git.drupalcode.org/project/one_line_installer.git

Issues

pkg:composer/drupal/one_line_installer

Transparency log

Statistics

Installs: 13

Dependents: 0

Suggesters: 0

2.0.0-alpha2 2026-07-22 14:45 UTC

README

Bootstrap a fresh Drupal CMS site, or any DDEV-based project, with a single command on macOS or Linux. Coding agents (Claude Code, Codex, OpenCode), agent skills, an agent command denylist, and provisioning (modules, recipes, Composer packages, DDEV add-ons) are all wired up for you. DDEV is the only host dependency the installer manages; everything else runs inside the DDEV web container.

Full documentation: https://project.pages.drupalcode.org/one_line_installer/

Quick start

bash <(curl -fsSL https://aibp.drupalstarforge.ai/install.sh)

To skip all interactive prompts and take the defaults:

bash <(curl -fsSL https://aibp.drupalstarforge.ai/install.sh) --yolo

The same command works on macOS and Linux. Run with --help to see all options, or read the CLI reference.

The URL redirects to the script published on GitLab Pages (https://project.pages.drupalcode.org/one_line_installer/drupalaibp), which updates only when a release tag is cut. To test the current development version, fetch it straight from the 2.0.x branch:

bash <(curl -fsSL https://git.drupalcode.org/project/one_line_installer/-/raw/2.0.x/drupalaibp)

What it does

  1. Installs DDEV (and Docker, if missing), the only host dependencies.
  2. Asks every question up front (profile, coding agents, skills, denylist, extras, any custom config questions), then builds unattended.
  3. Creates the DDEV project and scaffolds Drupal CMS (or standard, minimal, a drupal.org site template, or a non-Drupal project from a config).
  4. Applies config provisioning: Composer repositories and packages, modules, recipes, DDEV add-ons, hook scripts at named build events.
  5. Installs the chosen coding agents and skills, writes the command denylist and a managed block in AGENTS.md, and optionally pushes the project to a new GitHub repository.
  6. Opens the site (admin/admin) and hands the shell to the chosen agent.

Running the installer inside an existing DDEV project opens a management menu (add/remove agents, skills, add-ons) instead of building.

Commands

CommandPurpose
setup-site (default)Build a site, or manage an existing DDEV project. Accepts a config source: a git URL, a local directory, or a saved config name.
installInstall the tool as a global drupalaibp command in ~/.local/bin, with man pages.
deleteDelete a DDEV project and its files, after confirmation.
pull <repo> [name]Save a config repo under ~/.drupalaibp/configs/ for reuse.
bash <(curl -fsSL https://aibp.drupalstarforge.ai/install.sh) install
drupalaibp          # from then on

Config-driven builds

A .drupalaibp/ directory holding one or more *.json configs pre-configures the entire build: profile, agents, skills, provisioning, custom questions, and hook scripts. The installer auto-detects it in the launch directory, or takes a source explicitly:

drupalaibp https://git.drupalcode.org/project/foo   # git repo with .drupalaibp/
drupalaibp ./team-config                            # local directory
drupalaibp my-config                                # saved config

See the config reference for the schema and docs/examples/ for two complete, runnable configs.

Documentation

Everything else lives on the docs site:

Developing the installer

drupalaibp is generated by Bashly from src/; never edit it by hand. Regenerate with bin/generate, render the CLI reference and man pages with bin/docs, and verify with bin/test, bin/lint, and bin/spell (each pinned and Docker-wrapped, so nothing needs installing). See Working on the installer and AGENTS.md for the full picture.

Limitations

  • Windows is not supported (WSL2 with a supported Linux distribution works).