docs: update landing page UI and add comparison tables
This commit is contained in:
1 parent
133c707f27
commit
19e48270ed
1 file changed
+34
-48
+34
-48
@@ -1,12 +1,12 @@
|
||||
<!DOCTYPE html>
|
||||
<!-- saved from url=(0062)#compare -->
|
||||
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="BZOD — Self-hosted Multi-User URL Management Platform written in Rust with landing pages, QR codes, analytics, audit logging, and SQLite backend.">
|
||||
<title>BZOD | Self-Hosted URL Management in Rust</title>
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com/">
|
||||
<link href="./index_files/css2" rel="stylesheet">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500;600&family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
|
||||
<style>
|
||||
:root {
|
||||
--bg: #0b0f14; --bg2: #131820; --bg3: #1a202a; --bg4: #212733;
|
||||
@@ -182,25 +182,25 @@ footer{background:var(--bg);border-top:1px solid var(--border);padding:4rem 2rem
|
||||
BZOD
|
||||
</a>
|
||||
<ul class="nav-links">
|
||||
<li><a href="#features"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="sparkles" aria-hidden="true" class="lucide lucide-sparkles"><path d="M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z"></path><path d="M20 2v4"></path><path d="M22 4h-4"></path><circle cx="4" cy="20" r="2"></circle></svg> Features</a></li>
|
||||
<li><a href="#architecture"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="layers" aria-hidden="true" class="lucide lucide-layers"><path d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"></path><path d="M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"></path><path d="M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"></path></svg> Architecture</a></li>
|
||||
<li><a href="#databases"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="database" aria-hidden="true" class="lucide lucide-database"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg> Databases</a></li>
|
||||
<li><a href="#api"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="terminal" aria-hidden="true" class="lucide lucide-terminal"><path d="M12 19h8"></path><path d="m4 17 6-6-6-6"></path></svg> API</a></li>
|
||||
<li><a href="#cli"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="terminal-square" aria-hidden="true" class="lucide lucide-terminal-square"><path d="m7 11 2-2-2-2"></path><path d="M11 13h4"></path><rect width="18" height="18" x="3" y="3" rx="2" ry="2"></rect></svg> CLI</a></li>
|
||||
<li><a href="#compare"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="git-compare" aria-hidden="true" class="lucide lucide-git-compare"><circle cx="18" cy="18" r="3"></circle><circle cx="6" cy="6" r="3"></circle><path d="M13 6h3a2 2 0 0 1 2 2v7"></path><path d="M11 18H8a2 2 0 0 1-2-2V9"></path></svg> Compare</a></li>
|
||||
<li><a href="#features"><i data-lucide="sparkles"></i> Features</a></li>
|
||||
<li><a href="#architecture"><i data-lucide="layers"></i> Architecture</a></li>
|
||||
<li><a href="#databases"><i data-lucide="database"></i> Databases</a></li>
|
||||
<li><a href="#api"><i data-lucide="terminal"></i> API</a></li>
|
||||
<li><a href="#cli"><i data-lucide="terminal-square"></i> CLI</a></li>
|
||||
<li><a href="#compare"><i data-lucide="git-compare"></i> Compare</a></li>
|
||||
</ul>
|
||||
<div class="nav-right">
|
||||
<a class="btn-sm btn-ghost" href="./login"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="log-in" aria-hidden="true" class="lucide lucide-log-in"><path d="m10 17 5-5-5-5"></path><path d="M15 12H3"></path><path d="M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4"></path></svg> User Login</a>
|
||||
<a class="btn-sm btn-ghost" href="./admin"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="shield" aria-hidden="true" class="lucide lucide-shield"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg> Admin Panel</a>
|
||||
<a class="btn-sm btn-ghost" href="/login"><i data-lucide="log-in"></i> User Login</a>
|
||||
<a class="btn-sm btn-ghost" href="/admin"><i data-lucide="shield"></i> Admin Panel</a>
|
||||
<a class="btn-sm btn-ghost" href="https://github.com/thakares/nx9-url-shortener" target="_blank">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 22v-4a4.8 4.8 0 0 0-1-3.02c3.18-.35 6.5-1.5 6.5-7a4.6 4.6 0 0 0-1.39-3.23 4.2 4.2 0 0 0-.1-3.2s-1.1-.35-3.5 1.25a11.39 11.39 0 0 0-7 0C6.2 2.75 5 3.1 5 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 3.5 9.5c0 5.5 3.32 6.65 6.5 7-.33.26-.6.7-.7 1.35-.62.27-2.2.8-3.2-1.35-.1-.2-.3-.3-.5-.3-.2 0-.3.1-.1.3 1.1 2.3 3.1 2.5 3.8 2.5.1 1.2.2 2.6.2 3.1"></path><path d="M9 20c-1.5.5-3 0-3-2"></path></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 22v-4a4.8 4.8 0 0 0-1-3.02c3.18-.35 6.5-1.5 6.5-7a4.6 4.6 0 0 0-1.39-3.23 4.2 4.2 0 0 0-.1-3.2s-1.1-.35-3.5 1.25a11.39 11.39 0 0 0-7 0C6.2 2.75 5 3.1 5 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 3.5 9.5c0 5.5 3.32 6.65 6.5 7-.33.26-.6.7-.7 1.35-.62.27-2.2.8-3.2-1.35-.1-.2-.3-.3-.5-.3-.2 0-.3.1-.1.3 1.1 2.3 3.1 2.5 3.8 2.5.1 1.2.2 2.6.2 3.1"/><path d="M9 20c-1.5.5-3 0-3-2"/></svg>
|
||||
GitHub
|
||||
</a>
|
||||
<a class="btn-sm btn-ghost" href="https://codeberg.org/thakares/nx9-url-shortener" target="_blank">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m8 3 4 8 5-5 5 15H2L8 3z"></path></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m8 3 4 8 5-5 5 15H2L8 3z"/></svg>
|
||||
CodeBerg
|
||||
</a>
|
||||
<a class="btn-sm btn-solid" href="#install"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="rocket" aria-hidden="true" class="lucide lucide-rocket"><path d="M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5"></path><path d="M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09"></path><path d="M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z"></path><path d="M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05"></path></svg> Install</a>
|
||||
<a class="btn-sm btn-solid" href="#install"><i data-lucide="rocket"></i> Install</a>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
@@ -213,7 +213,7 @@ footer{background:var(--bg);border-top:1px solid var(--border);padding:4rem 2rem
|
||||
<p class="hero-desc">BZOD is a complete multi-user URL management platform featuring custom landing pages, analytics, audit logging, and automated disaster recovery. Powered entirely by SQLite.</p>
|
||||
<div class="hero-ctas">
|
||||
<a href="#install" class="btn-lg p">Deployment Guide</a>
|
||||
<a href="./login" class="btn-lg o">User Panel</a>
|
||||
<a href="/login" class="btn-lg o">User Panel</a>
|
||||
</div>
|
||||
<div class="hero-meta">
|
||||
<span class="meta-tag">Rust 2021</span>
|
||||
@@ -253,7 +253,7 @@ footer{background:var(--bg);border-top:1px solid var(--border);padding:4rem 2rem
|
||||
<div><span class="stat-n">Realtime</span><div class="stat-l">Analytics</div></div>
|
||||
<div><span class="stat-n">Multi</span><div class="stat-l">User Config</div></div>
|
||||
<div><span class="stat-n">Logs</span><div class="stat-l">Audit Trail</div></div>
|
||||
<div><span class="stat-n">Backup</span><div class="stat-l">& Restore</div></div>
|
||||
<div><span class="stat-n">Backup</span><div class="stat-l">& Restore</div></div>
|
||||
<div><span class="stat-n">GPLv3</span><div class="stat-l">Open Source</div></div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -306,7 +306,7 @@ footer{background:var(--bg);border-top:1px solid var(--border);padding:4rem 2rem
|
||||
</div>
|
||||
<div class="step">
|
||||
<div class="step-n">2</div>
|
||||
<div><div class="step-title">Global Namespace</div><p style="color:var(--t2);font-size:.9rem;line-height:1.6">All public URLs are tracked in the <code>system.db -> global_slugs</code> table to prevent collisions across different isolated users.</p></div>
|
||||
<div><div class="step-title">Global Namespace</div><p style="color:var(--t2);font-size:.9rem;line-height:1.6">All public URLs are tracked in the <code>system.db -> global_slugs</code> table to prevent collisions across different isolated users.</p></div>
|
||||
</div>
|
||||
<div class="step">
|
||||
<div class="step-n">3</div>
|
||||
@@ -331,7 +331,7 @@ footer{background:var(--bg);border-top:1px solid var(--border);padding:4rem 2rem
|
||||
data/<br>
|
||||
├── <span class="dir">admin/</span> <span class="comment"># Global Metadata</span><br>
|
||||
│ ├── <span class="file">admin.db</span> <span class="comment"># Internal management</span><br>
|
||||
│ ├── <span class="file">system.db</span> <span class="comment"># Global slugs & audit logs</span><br>
|
||||
│ ├── <span class="file">system.db</span> <span class="comment"># Global slugs & audit logs</span><br>
|
||||
│ └── <span class="file">users.db</span> <span class="comment"># Auth, sessions, quotas</span><br>
|
||||
│<br>
|
||||
└── <span class="dir">users/</span> <span class="comment"># Tenant Isolation</span><br>
|
||||
@@ -352,7 +352,7 @@ footer{background:var(--bg);border-top:1px solid var(--border);padding:4rem 2rem
|
||||
</div>
|
||||
<div class="step">
|
||||
<div class="step-n">2</div>
|
||||
<div><div class="step-title">Identity & Quotas</div><p style="color:var(--t2);font-size:.9rem;line-height:1.6">The centralized <code>users.db</code> acts as the primary identity database, securely tracking authentication, API tokens, and enforcing resource quotas.</p></div>
|
||||
<div><div class="step-title">Identity & Quotas</div><p style="color:var(--t2);font-size:.9rem;line-height:1.6">The centralized <code>users.db</code> acts as the primary identity database, securely tracking authentication, API tokens, and enforcing resource quotas.</p></div>
|
||||
</div>
|
||||
<div class="step">
|
||||
<div class="step-n">3</div>
|
||||
@@ -405,14 +405,14 @@ Authorization: Bearer bzo_xxxxxxxxxxxx
|
||||
|
||||
<section id="cli">
|
||||
<div class="container">
|
||||
<div class="eyebrow">Operations & CLI</div>
|
||||
<div class="eyebrow">Operations & CLI</div>
|
||||
<h2 class="section-title">Built for Systems Administrators</h2>
|
||||
<p class="section-sub">Full control via a comprehensive command-line interface. Handle migrations, disaster recovery, and user management directly from the terminal.</p>
|
||||
<div class="tab-shell">
|
||||
<div class="tab-strip">
|
||||
<button class="tab-btn on" onclick="switchTab(event, 'cli-backup')">Backup & Restore</button>
|
||||
<button class="tab-btn" onclick="switchTab(event, 'cli-users')">User Management</button>
|
||||
<button class="tab-btn" onclick="switchTab(event, 'cli-diag')">Diagnostics</button>
|
||||
<button class="tab-btn on" onclick="switchTab(event, 'cli-backup')">Backup & Restore</button>
|
||||
<button class="tab-btn" onclick="switchTab(event, 'cli-users')">User Management</button>
|
||||
<button class="tab-btn" onclick="switchTab(event, 'cli-diag')">Diagnostics</button>
|
||||
</div>
|
||||
<div id="cli-backup" class="tab-panel on">
|
||||
<pre class="cb"><span class="cm"># Create a full compressed snapshot of the entire platform</span>
|
||||
@@ -510,8 +510,8 @@ Authorization: Bearer bzo_xxxxxxxxxxxx
|
||||
<td><span class="check-no">❌ No</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Backup & Recovery</td>
|
||||
<td><span class="check-yes">✅ Built-in CLI & Web UI</span></td>
|
||||
<td>Backup & Recovery</td>
|
||||
<td><span class="check-yes">✅ Built-in CLI & Web UI</span></td>
|
||||
<td><span class="check-no">❌ External Tools Needed</span></td>
|
||||
<td><span class="check-no">❌ External Tools Needed</span></td>
|
||||
<td><span class="check-no">❌ No</span></td>
|
||||
@@ -530,8 +530,8 @@ Authorization: Bearer bzo_xxxxxxxxxxxx
|
||||
<p class="section-sub">Deploy via Docker for containerized environments, or compile directly from source for bare-metal performance.</p>
|
||||
<div class="tab-shell">
|
||||
<div class="tab-strip">
|
||||
<button class="tab-btn on" onclick="switchTab(event, 'install-docker')">Docker Compose</button>
|
||||
<button class="tab-btn" onclick="switchTab(event, 'install-native')">Native Binary</button>
|
||||
<button class="tab-btn on" onclick="switchTab(event, 'install-docker')">Docker Compose</button>
|
||||
<button class="tab-btn" onclick="switchTab(event, 'install-native')">Native Binary</button>
|
||||
</div>
|
||||
<div id="install-docker" class="tab-panel on">
|
||||
<pre class="cb"><span class="cm"># Clone the official repository</span>
|
||||
@@ -582,8 +582,8 @@ Authorization: Bearer bzo_xxxxxxxxxxxx
|
||||
<div>
|
||||
<div class="footer-col-title">Access</div>
|
||||
<ul class="footer-links">
|
||||
<li><a href="./login">User Login</a></li>
|
||||
<li><a href="./admin">Admin Panel</a></li>
|
||||
<li><a href="/login">User Login</a></li>
|
||||
<li><a href="/admin">Admin Panel</a></li>
|
||||
<li><a href="#api">API Documentation</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -600,7 +600,7 @@ Authorization: Bearer bzo_xxxxxxxxxxxx
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="./index_files/lucide@latest"></script>
|
||||
<script src="https://unpkg.com/lucide@latest"></script>
|
||||
<script>
|
||||
lucide.createIcons();
|
||||
|
||||
@@ -615,20 +615,6 @@ Authorization: Bearer bzo_xxxxxxxxxxxx
|
||||
document.getElementById(tabName).classList.add('on');
|
||||
e.currentTarget.classList.add('on');
|
||||
}
|
||||
|
||||
function toggleFaq(e) {
|
||||
const item = e.currentTarget.closest('.faq-item');
|
||||
const content = item.querySelector('.faq-a');
|
||||
|
||||
if(item.classList.contains('open')){
|
||||
item.classList.remove('open');
|
||||
content.style.display = 'none';
|
||||
} else {
|
||||
item.classList.add('open');
|
||||
content.style.display = 'block';
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
</body></html>
|
||||
</body>
|
||||
</html>
|
||||
Reference in new issue
Block a user