Files
toolvana/app/Views/admin/system_index.php
T
deepseek beaf0e1f37 Toolvana: production-ready media tools platform (CodeIgniter 4)
- 134-tool registry with programmatic SEO (unique titles/H1/descriptions,
  JSON-LD graphs, sitemap index, canonical 301 enforcement via required filter)
- DB-backed job queue (SKIP LOCKED) with drivers: Ffmpeg, Images (GD),
  Pdf (qpdf/gs/poppler), Youtube (thumbnails), Qr (server-side PNG)
- Security: SSRF guard, MIME validation, rate limits, API-key auth,
  bcrypt admin login, security headers
- Admin panel: dashboard, tools/categories/guides CRUD, SEO audit,
  analytics, job inspector with retry, system health, feature flags
- Docker deployment (nginx + web/api FPM pools + scalable workers),
  PHPUnit suite (19 tests / 1139 assertions), PWA manifest + service worker
2026-08-23 07:10:30 +00:00

28 lines
1.5 KiB
PHP

<?= view('partials/admin_nav') ?>
<h1 style="font-size:1.7rem;margin-bottom:1rem">System health</h1>
<div class="grid cols-2">
<div class="card">
<h3>Environment</h3>
<p>PHP <?= esc($phpVersion) ?> · CI <?= esc($ciVersion) ?> · <?= esc($environment) ?></p>
<p>Database: <?= $dbOk ? '<span style="color:var(--ok);font-weight:700">connected</span>' : '<span style="color:var(--err);font-weight:700">down</span>' ?></p>
<p>Worker heartbeat: <?= $workerBeat ? esc($workerBeat) : '<em>none — is a worker running?</em>' ?></p>
<p>yt-dlp capability: <?= $ytDlpEnabled ? 'enabled' : 'disabled by policy' ?></p>
</div>
<div class="card">
<h3>Storage</h3>
<p>Free disk: <?= number_format($diskFreeMb) ?> MB</p>
<p>Result files in temp storage: <?= (int)$storageFiles ?></p>
<p>Pending uploads: <?= (int)$incoming ?></p>
<p>Retention: every file expires after <strong><?= (int)$retentionHrs ?> h</strong> (<code>spark media:cleanup</code>)</p>
</div>
</div>
<div class="card" style="margin-top:1rem">
<h3>Processing binaries</h3>
<table style="width:100%;font-size:.88rem">
<?php foreach ($binaries as $name => $info): ?>
<tr><td style="padding:.35rem 0"><strong><?= esc($name) ?></strong></td><td class="hint"><?= esc($info['path'] ?: 'not configured') ?></td>
<td><?= $info['ok'] ? '<span style="color:var(--ok);font-weight:700">available</span>' : '<span style="color:var(--warn);font-weight:700">missing</span>' ?></td></tr>
<?php endforeach ?>
</table>
</div>