startGhost = async (options) => {
    const startTime = Date.now();
    debug('Start Ghost');
    options = _.merge({
        backend: true,
        frontend: true,
        redirectsFile: false,
        redirectsFileExt: '.json',
        copyThemes: false,
        copySettings: false,
        contentFolder: path.join(os.tmpdir(), crypto.randomUUID(), 'ghost-test'),
        subdir: false
    }, options);

    // @TODO: tidy up the tmp folders after tests
    await prepareContentFolder(options);

    await _startGhost(options);

    // Expose fixture data, wrap-up and return
    await exposeFixtures();

    // Reporting
    const totalTime = Date.now() - startTime;
    totalStartTime += totalTime;
    totalBoots += 1;
    const averageBootTime = Math.round(totalStartTime / totalBoots);
    debug(`[e2e-utils] Started Ghost in ${totalTime / 1000}s`);
    debug(`[e2e-utils] Accumulated start time across ${totalBoots} boots is ${totalStartTime / 1000}s (average = ${averageBootTime}ms)`);
    return ghostServer;
}
@param {Object} [options]
@param {boolean} [options.backend]
@param {boolean} [options.frontend]
@param {boolean} [options.redirectsFile]
@param {String} [options.redirectsFileExt]
@param {boolean} [options.copyThemes]
@param {boolean} [options.copySettings]
@param {String} [options.routesFilePath] - path to a routes configuration file to start the instance with
@param {String} [options.contentFolder]
@param {boolean} [options.subdir]
@returns {Promise<GhostServer>}