{
    "app": "LiveBus Warszawa",
    "stage": "Etap 1E - Fleet Cache & Specifications Index Verification",
    "ok": true,
    "generatedAt": "2026-10-28T04:00:50+01:00",
    "php": {
        "version": "8.5.12",
        "sapi": "litespeed",
        "timezone": "Europe/Warsaw",
        "memoryLimit": "256M",
        "maxExecutionTime": "300",
        "uploadMaxFilesize": "512M",
        "postMaxSize": "512M"
    },
    "server": {
        "software": "LiteSpeed",
        "documentRoot": "/home/vh16724/belwer",
        "serverName": "belwer.pl",
        "https": true,
        "requestTime": "2026-10-28 04:00:49",
        "currentScript": "/api/diagnose-hosting.php"
    },
    "config": {
        "configExists": true,
        "configValid": true,
        "tokenStatus": "Set",
        "maskedToken": "eyJh***GJjk"
    },
    "extensions": {
        "curl": true,
        "json": true,
        "openssl": true,
        "mbstring": true
    },
    "filesystem": {
        "cacheDir": "/home/vh16724/belwer/api/cache/",
        "cacheExists": true,
        "cacheWritable": true,
        "diagnosticsDir": "/home/vh16724/belwer/api/cache/diagnostics/",
        "diagnosticsWritable": true,
        "liveCacheDir": "/home/vh16724/belwer/api/cache/live/",
        "liveCacheExists": true,
        "liveCacheWritable": true,
        "snapshotsDir": "/home/vh16724/belwer/api/cache/live/snapshots/",
        "snapshotsExists": true,
        "snapshotsWritable": true,
        "departuresCacheDir": "/home/vh16724/belwer/api/cache/departures/",
        "departuresCacheExists": true,
        "departuresCacheWritable": true,
        "fleetCacheDir": "/home/vh16724/belwer/api/cache/fleet/",
        "fleetCacheExists": true,
        "fleetCacheWritable": true,
        "courseResolverCacheDir": "/home/vh16724/belwer/api/cache/course-resolver/",
        "courseResolverCacheExists": true,
        "courseResolverCacheWritable": true,
        "courseTimelineCacheDir": "/home/vh16724/belwer/api/cache/course-timeline/",
        "courseTimelineCacheExists": true,
        "courseTimelineCacheWritable": true,
        "routePatternsCacheDir": "/home/vh16724/belwer/api/cache/route-patterns/",
        "routePatternsCacheExists": true,
        "routePatternsCacheWritable": true,
        "writeTest": true,
        "readTest": true,
        "freeSpaceBytes": 1829458378752,
        "freeSpaceHuman": "1.66 TB"
    },
    "network": {
        "curlAvailable": true,
        "testUrl": "https://dane.um.warszawa.pl/",
        "requestOk": true,
        "httpCode": 200,
        "error": null,
        "durationMs": 120
    },
    "checks": [
        {
            "name": "PHP Version >= 8.1",
            "ok": true,
            "message": "Running PHP version 8.5.12 (8.1+ recommended)"
        },
        {
            "name": "JSON Extension",
            "ok": true,
            "message": "Loaded"
        },
        {
            "name": "cURL Extension",
            "ok": true,
            "message": "Loaded"
        },
        {
            "name": "OpenSSL Extension",
            "ok": true,
            "message": "Loaded"
        },
        {
            "name": "mbstring Extension",
            "ok": true,
            "message": "Loaded"
        },
        {
            "name": "Cache directory exists",
            "ok": true,
            "message": "Verified at api/cache/"
        },
        {
            "name": "Cache directory writable",
            "ok": true,
            "message": "Verified writable"
        },
        {
            "name": "Diagnostics directory exists",
            "ok": true,
            "message": "Verified at api/cache/diagnostics/"
        },
        {
            "name": "Diagnostics directory writable",
            "ok": true,
            "message": "Verified writable"
        },
        {
            "name": "Live cache directory exists",
            "ok": true,
            "message": "Verified at api/cache/live/"
        },
        {
            "name": "Live cache directory writable",
            "ok": true,
            "message": "Verified writable"
        },
        {
            "name": "Snapshots directory exists",
            "ok": true,
            "message": "Verified at api/cache/live/snapshots/"
        },
        {
            "name": "Snapshots directory writable",
            "ok": true,
            "message": "Verified writable"
        },
        {
            "name": "Stops cache directory exists",
            "ok": true,
            "message": "Verified at api/cache/stops/"
        },
        {
            "name": "Stops cache directory writable",
            "ok": true,
            "message": "Verified writable"
        },
        {
            "name": "Stop lines cache directory exists",
            "ok": true,
            "message": "Verified at api/cache/stop-lines/"
        },
        {
            "name": "Stop lines cache directory writable",
            "ok": true,
            "message": "Verified writable"
        },
        {
            "name": "Departures cache directory exists",
            "ok": true,
            "message": "Verified at api/cache/departures/"
        },
        {
            "name": "Departures cache directory writable",
            "ok": true,
            "message": "Verified writable"
        },
        {
            "name": "Fleet cache directory exists",
            "ok": true,
            "message": "Verified at api/cache/fleet/"
        },
        {
            "name": "Fleet cache directory writable",
            "ok": true,
            "message": "Verified writable"
        },
        {
            "name": "Course resolver cache directory exists",
            "ok": true,
            "message": "Verified at api/cache/course-resolver/"
        },
        {
            "name": "Course resolver cache directory writable",
            "ok": true,
            "message": "Verified writable"
        },
        {
            "name": "Course timeline cache directory exists",
            "ok": true,
            "message": "Verified at api/cache/course-timeline/"
        },
        {
            "name": "Course timeline cache directory writable",
            "ok": true,
            "message": "Verified writable"
        },
        {
            "name": "Route patterns cache directory exists",
            "ok": true,
            "message": "Verified at api/cache/route-patterns/"
        },
        {
            "name": "Route patterns cache directory writable",
            "ok": true,
            "message": "Verified writable"
        },
        {
            "name": "Configuration file config.php exists",
            "ok": true,
            "message": "Verified at api/config.php"
        },
        {
            "name": "Configuration format is valid",
            "ok": true,
            "message": "Parsed successfully as array"
        },
        {
            "name": "API Token is configured",
            "ok": true,
            "message": "Token status: Set (eyJh***GJjk)"
        },
        {
            "name": "Stops API endpoint configured",
            "ok": true,
            "message": "Set (get_ztm_przystanki_komunikacji_miejskiej)"
        },
        {
            "name": "Stop lines API endpoint configured",
            "ok": true,
            "message": "Fallback default (get_ztm_lista_linii_na_przystanku)"
        },
        {
            "name": "Departures API endpoint configured",
            "ok": true,
            "message": "Fallback default (get_ztm_odjazdy_linii_z_przystanku)"
        },
        {
            "name": "Fleet API endpoint configured",
            "ok": true,
            "message": "Fallback default (get_ztm_pojazdy)"
        },
        {
            "name": "Free disk space check",
            "ok": true,
            "message": "Available space: 1.66 TB"
        },
        {
            "name": "JSON write test",
            "ok": true,
            "message": "Successfully verified JSON disk serialization"
        },
        {
            "name": "JSON read test",
            "ok": true,
            "message": "Successfully read and matched payload from disk storage"
        },
        {
            "name": "Connection to Warsaw New Portal API",
            "ok": true,
            "message": "Connected successfully (HTTP status: 200) in 120ms"
        }
    ],
    "warnings": [],
    "errors": []
}