- Voice enhancements, user management, payment method

This commit is contained in:
Ty Clifford
2026-06-08 15:44:15 -04:00
parent 9e3ff61eb7
commit 063b8dc3e8
26 changed files with 2832 additions and 927 deletions
+13 -8
View File
@@ -7,19 +7,22 @@ header('Content-Type: application/json');
header('Cache-Control: no-store');
header('Access-Control-Allow-Origin: *');
require_once dirname(__DIR__) . '/bootstrap.php';
$results = [];
// 1. PHP version
$results['php_version'] = PHP_VERSION;
$results['php_ok'] = version_compare(PHP_VERSION, '8.0.0', '>=');
$results['php_ok'] = version_compare(PHP_VERSION, '8.1.0', '>=');
// 2. PDO SQLite
$results['pdo_sqlite'] = extension_loaded('pdo_sqlite');
// 3. ROOT_DIR and config.json
$root = dirname(__DIR__);
$root = ROOT_DIR;
$configFile = $root . '/config.json';
$results['config_exists'] = file_exists($configFile);
$results['config_writable'] = is_writable($configFile);
if ($results['config_exists']) {
$raw = file_get_contents($configFile);
@@ -30,17 +33,19 @@ if ($results['config_exists']) {
}
// 4. db/ directory writable
$dbDir = $root . '/db';
$dbPath = storagePath((string)getConfigVal('database.main_db', 'db/chat.sqlite'));
$dbDir = dirname($dbPath);
if (!is_dir($dbDir)) {
@mkdir($dbDir, 0755, true);
@mkdir($dbDir, 0775, true);
}
$results['db_dir_exists'] = is_dir($dbDir);
$results['db_dir_writable'] = is_writable($dbDir);
$results['db_file_writable'] = !is_file($dbPath) || is_writable($dbPath);
// 5. archive/ directory writable
$archiveDir = $root . '/archive';
$archiveDir = storagePath((string)getConfigVal('archive.archive_dir', 'archive'));
if (!is_dir($archiveDir)) {
@mkdir($archiveDir, 0755, true);
@mkdir($archiveDir, 0775, true);
}
$results['archive_dir_exists'] = is_dir($archiveDir);
$results['archive_dir_writable'] = is_writable($archiveDir);
@@ -50,7 +55,7 @@ $results['sqlite_create'] = false;
$results['sqlite_error'] = null;
if ($results['pdo_sqlite'] && $results['db_dir_writable']) {
try {
$testDb = new PDO('sqlite:' . $dbDir . '/chat.sqlite');
$testDb = new PDO('sqlite:' . $dbPath);
$testDb->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$testDb->exec('PRAGMA journal_mode=WAL');
$testDb->exec('CREATE TABLE IF NOT EXISTS _ping_test (id INTEGER PRIMARY KEY)');
@@ -70,10 +75,10 @@ $results['all_ok'] = (
$results['config_exists'] &&
$results['config_valid_json'] &&
$results['db_dir_writable'] &&
$results['db_file_writable'] &&
$results['sqlite_create']
);
$results['root_dir'] = $root;
$results['server_time'] = date('Y-m-d H:i:s T');
http_response_code($results['all_ok'] ? 200 : 500);