Testing guide

How to build Light Host, run it on your own Windows desktop, and tell us what broke.

On this page
  1. What actually works right now
  2. Prerequisites
  3. Getting the runtime binaries
  4. Running from source
  5. Compiling to a standalone .exe
  6. Test scenarios to try
  7. Reporting what you find

1. What actually works right now

Light Host is early. Being honest about what's finished saves you from testing something that was never wired up in the first place.

AreaStatusNotes
Site registryWorkingTested. Create, read, update, delete.
Hosts file editingWorkingTested against a mock file. Only touches its own marked block.
Config generationWorkingnginx blocks and wp-config.php render correctly.
CLI commandsWorkingAll commands parse and dispatch.
Starting nginx / PHP / MariaDBUntestedCode is written but has never run against real binaries. This is the main thing testers can help with.
Creating a WordPress siteUntestedDepends on the above plus WP-CLI.
Export to live serverUntestedLogic complete; needs a real database to run against.
HTTPS / local SSLNot builtPlanned via mkcert.
Graphical interfaceNot builtCLI only for now.
macOS supportNot builtAfter Windows is solid.
The short version Everything that can be tested without Windows binaries has been tested and passes. Everything that shells out to nginx, PHP or MariaDB is written but unproven — which is exactly where fresh eyes on real machines are most useful.

2. Prerequisites

Test on a machine you can afford to break This is pre-release software that edits your hosts file and starts database and web server processes. A spare machine or a virtual machine is a much better idea than the laptop your client work lives on.

3. Getting the runtime binaries

Light Host doesn't ship the runtimes inside the repository — that would make it huge. They're downloaded separately into a binaries/ folder.

# clone and install
git clone https://github.com/Successfulsebunya/light-host.git
cd light-host
npm install

The install step fetches WP-CLI automatically and prints instructions for the rest. PHP, nginx and MariaDB are manual for now, because their Windows builds don't have stable download URLs and silently grabbing an unverified binary for a tool that runs with administrator rights is a bad trade.

Place them like this:

binaries/
  php/8.3/        # PHP 8.3 NTS x64, from windows.php.net
  nginx/          # nginx Windows zip, from nginx.org
  mariadb/        # MariaDB Windows ZIP (not the MSI installer)
  wp-cli/         # downloaded for you already

4. Running from source

Open a terminal as Administrator, then:

# start the shared database and web server
npm run cli -- start-engine

# create your first site
npm run cli -- create testsite

# see what exists
npm run cli -- list

If it worked, http://testsite.test loads WordPress in your browser, and http://testsite.test/wp-admin logs in with admin / admin.

5. Compiling to a standalone .exe

To hand Light Host to someone who doesn't have Node.js installed, compile it into a single executable.

# from the project folder, with dependencies installed
npm install
npm run build:exe

That produces dist/light-host.exe. Run it the same way as the CLI, minus the npm wrapper:

light-host.exe start-engine
light-host.exe create testsite
light-host.exe list
The .exe is not the whole program It bundles the Light Host code and Node.js runtime, but not PHP, nginx or MariaDB. Those still need to sit in a binaries/ folder next to the executable. A true single-file installer that carries everything is a later goal.

Building for other platforms

macOS builds can be cross-compiled from the same machine, though the macOS side of the project isn't finished, so they aren't useful yet:

npm run build:exe:all

If the build fails

6. Test scenarios to try

In rough order of usefulness:

  1. Does the engine even start? Run start-engine and check whether MariaDB and nginx processes appear in Task Manager.
  2. Does site creation complete? Run create testsite and watch for where it fails, if it does.
  3. Does the site load? Open http://testsite.test. If the domain doesn't resolve, check your hosts file for the Light Host block.
  4. Is it actually light? Check memory use in Task Manager with one site running, then with three. Report the numbers — this is the whole premise of the project.
  5. Does stopping a site free resources? Run stop testsite and confirm its PHP process disappears.
  6. Does export produce something usable? Run export testsite --url https://example.com and inspect the SQL and zip. Bonus points for importing them onto a real host.
  7. Does deleting clean up properly? Run delete testsite, then check that the hosts file entry, database and site folder are all gone.
  8. Conflict behaviour. Install alongside XAMPP or Laragon and see how gracefully it fails when ports are taken.

7. Reporting what you find

Open an issue on GitHub. Useful reports include:

Reports that it worked fine are just as valuable as bug reports — knowing which Windows versions and hardware are already fine narrows down where the real problems are.