- 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
32 lines
1.8 KiB
PHP
32 lines
1.8 KiB
PHP
<div class="wrap">
|
|
<article class="prose" style="margin-top:2.5rem">
|
|
<h1>Privacy Policy</h1>
|
|
<p><em>Last updated: <?= date('F Y') ?></em></p>
|
|
|
|
<p><?= esc(config('Site')->name) ?> is built to need as little of your data as possible. This page explains exactly what is stored and what is not.</p>
|
|
|
|
<h2>Files you process</h2>
|
|
<ul>
|
|
<li>Uploads and generated results live in <strong>temporary storage</strong> only for processing.</li>
|
|
<li>They are deleted automatically after a short retention window (two hours by default), or sooner once you download them and the job expires.</li>
|
|
<li>Files are stored under random UUID names, outside the web root, and never shared with other users or third parties.</li>
|
|
</ul>
|
|
|
|
<h2>What we log</h2>
|
|
<ul>
|
|
<li><strong>Anonymous usage events</strong>: which tools are viewed and used, output formats chosen, success/failure counts. Session and IP values are one-way salted hashes — we cannot reverse them to identify anyone.</li>
|
|
<li><strong>Search terms</strong>, in aggregate, to find missing tools.</li>
|
|
<li>No advertising cookies, no cross-site trackers, no fingerprinting scripts.</li>
|
|
</ul>
|
|
|
|
<h2>Cookies</h2>
|
|
<p>One functional session cookie keeps your upload/result association while you use a tool (see the <a href="/cookies">cookie policy</a>). No consent banner is needed because no tracking cookies exist.</p>
|
|
|
|
<h2>Third-party requests</h2>
|
|
<p>YouTube metadata lookups query YouTube's public oEmbed endpoint with your pasted URL. Thumbnail downloads fetch directly from Google's image CDN. Nothing else about you is sent anywhere.</p>
|
|
|
|
<h2>Data removal</h2>
|
|
<p>Because files expire quickly and logs are anonymous hashes, there is generally nothing to delete. For any question, use the <a href="/contact">contact page</a>.</p>
|
|
</article>
|
|
</div>
|