Skip to content

Powered by Grav

Local development install

Local development install

BOA can install its full stack on your own machine for development and testing — Nginx, per-site PHP-FPM, Percona, the Ægir control panel and one Octopus tenant — on the private hostname aegir.local, with no public IP and no DNS to configure. This is the same BOA you run in production, just reachable only from the machine it runs on.

If instead you only want to pull a site you already host on BOA into a local project, that is a different, lighter workflow covered under Using BOA; this page is for running a whole BOA system locally.

What you need

  • A virtual machine or an LXC/container guest — local mode does not install directly on bare metal. Any common hypervisor or container works.
  • Devuan, or a compatible Debian release: the installer first migrates Debian to the matching Devuan for you (with a reboot) before installing BOA.
  • Your SSH key added to root, exactly as for a normal BOA install — and a root password set if the image left root locked (your hypervisor's console window is a password login, just like a provider console).

You do not need to choose a hostname, an Octopus username, or set up any public DNS.

Install

Download and run the meta installer, then start the install. The only required choices are the version tag in-lts, the kind local, and your email address:

SH
wget -qO- https://files.boa.io/BOA.sh.txt | bash
boa in-lts local my@email

You can pick how many PHP versions to install. A single version is the fastest:

SH
boa in-lts local my@email php-8.5     # one PHP version (fastest)
boa in-lts local my@email php-min     # three recent versions
boa in-lts local my@email php-max     # all supported versions

Since this is a development box, you will probably want to see everything the installer does: run touch /root/.debug-boa-installer.cnf before the boa in-lts command and the whole build runs with verbose output (debug mode) instead of discarding most step output. This is the safe marker — verbosity only, no side effects (on the dev tree BOA creates it for you). Two related dev-box switches: /root/.debug-octopus-installer.cnf limits the verbosity to the Octopus chain, and _DEBUG_PURGE_BUILD_TREE=YES in /root/.barracuda.cnf makes every wrapper run restage the build tree from a fresh mirror sync. Scopes, the off-switch quirk, and the one debug marker with destructive side effects: verbose-output FAQ and Staged setup engine.

The installer runs unattended: it migrates the system to Devuan if needed, reboots, and then continues on its own. On a small guest the full build can take a while, so leave it to finish.

When it is ready

The install is complete when this command reports three lines:

SH
boa info | grep -c Percona

It is then safe to reboot the guest with boa reboot.

Reaching your local Ægir

Open the Ægir control panel at:

TXT
https://aegir.local/user

Your first Octopus tenant is at https://o1.sub.aegir.local, and local mode also installs the Adminer database manager — for browsing Percona directly — at https://adminer.aegir.local.

Because aegir.local is a private hostname that no public certificate authority can validate, HTTPS uses a self-signed certificate — your browser will show a security warning the first time you open any of these. That warning is expected for local development; accept it to continue.

© 2026 BOA Documentation. All rights reserved.