load();
    // set defaults
    $apiKey = $_ENV['RASPAP_API_KEY'];
    if (!RASPI_MONITOR_ENABLED) {
        if (isset($_POST['SaveAPIsettings'])) {
            if (isset($_POST['txtapikey'])) {
                $apiKey = trim($_POST['txtapikey']);
                if (strlen($apiKey) == 0) {
                    $status->addMessage('Please enter a valid API key', 'danger');
                } else {
                    $return = saveAPISettings($status, $apiKey, $dotenv);
                    $status->addMessage('Restarting restapi.service', 'info');
                    exec('sudo /bin/systemctl stop restapi.service', $return);
                    sleep(1);
                    exec('sudo /bin/systemctl start restapi.service', $return);
                }
            }
        } elseif (isset($_POST['StartRestAPIservice'])) {
            $status->addMessage('Attempting to start restapi.service', 'info');
            exec('sudo /bin/systemctl start restapi.service', $return);
            foreach ($return as $line) {
                $status->addMessage($line, 'info');
            }
        } elseif (isset($_POST['StopRestAPIservice'])) {
            $status->addMessage('Attempting to stop restapi.service', 'info');
            exec('sudo /bin/systemctl stop restapi.service', $return);
            foreach ($return as $line) {
                $status->addMessage($line, 'info');
            }
        }
    }
    exec("ps aux | grep -v grep | grep uvicorn", $output, $return);
    $serviceStatus = !empty($output) ? "up" : "down";
    exec("sudo systemctl status restapi.service", $output, $return);
    array_shift($output);
    $serviceLog = implode("\n", $output);
    if ($serviceStatus == "up") {
        $docUrl = getDocUrl();
        $faicon = ""; 
        $docMsg = sprintf(_("RestAPI docs are accessible here %s"),$docUrl, $faicon);
    }
    echo renderTemplate("restapi", compact(
        "status",
        "apiKey",
        "serviceStatus",
        "serviceLog",
        "docMsg"
    ));
}
/**
 * Saves RestAPI settings
 *
 * @param object status
 * @param object dotenv
 * @param string $apiKey
 */
function saveAPISettings($status, $apiKey, $dotenv)
{
    $status->addMessage('Saving API key', 'info');
    $dotenv->set('RASPAP_API_KEY', $apiKey);
    return $status;
}
// Returns a url for fastapi's automatic docs
function getDocUrl()
{
    $protocol = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https://' : 'http://';
    $server_name = $_SERVER['SERVER_NAME'];
    $port = 8081;
    $url = $protocol . $server_name .':'. $port . '/docs';
    return $url;
}