Skip to content

Powered by Grav

Local development with DDEV

Local development with DDEV

The ddev-boa add-on lets you pull your BOA-hosted site's database and files into a local DDEV project, so you can develop and test on your own machine and have the project behave like the hosted site. It uses your normal limited shell account and your existing SSH key — nothing new to set up on the server, and no full local BOA install.

It syncs from the server only: it never changes anything on your hosted site, and it never touches your code, which stays in Git where it belongs.

Before you start

You need:

  • A site hosted on BOA and your tenant shell account (oN.ftp), with your SSH key already installed — the same key you use to connect for SFTP.
  • DDEV installed on your machine, and a DDEV project for your site's codebase (checked out from Git).

Install the add-on

ddev-boa is published on the DDEV add-on registry, so you can also find it with ddev add-on list. Install it with:

SH
ddev add-on get omega8cc/ddev-boa

Point it at your site

Set three values in .ddev/providers/boa.yaml:

Value What it is Example
BOA_SSH_USER your tenant shell account o1.ftp
BOA_HOST your server hostname server.example.com
BOA_ALIAS your site's Drush alias, without the @ mysite.example.com

To find the exact alias name, run:

SH
ddev boa-aliases

Match your project to the site

This step is optional but recommended. It sets your project's PHP version, database version, Drupal version and docroot to match what the server reports for your site:

SH
ddev boa-config
ddev restart

Review the generated .ddev/config.boa.yaml before restarting.

Pull the database and files

SH
ddev auth ssh      # make your SSH key available inside DDEV (once per session)
ddev pull boa      # download the database and files

Your site's files come across as real files — BOA stores them behind symlinks on the server, and the pull follows those symlinks so nothing is left pointing at server paths.

The pull brings over your public files directory only. Drupal's separate private files directory is not included — if your site keeps uploads there, copy those across yourself when you need them locally.

Running Drush locally

Locally you do not use BOA's Drush aliases — those are a server-side concept. Run your site's own Drush with DDEV, which already knows your docroot and URL:

SH
ddev drush cr
ddev drush updb

This is site-local Drush; it needs only the docroot and the site URL, not an alias.

What this does and does not do

It reproduces what your site sees — its database, files, PHP version, database type and Drupal version. It is not a copy of the BOA server: there is no hosting control panel, and DDEV's web server and PHP are standard builds rather than BOA's own. Fine details that depend on BOA's specific server configuration can differ, so always treat the hosted site, not your local copy, as the source of truth for anything you are unsure about.

© 2026 BOA Documentation. All rights reserved.