diff --git a/www/index.html b/www/index.html index 87efd04..94fbc2c 100644 --- a/www/index.html +++ b/www/index.html @@ -1,207 +1,207 @@ - - - - BZOD | Self-Hosted URL Management in Rust - - - +@media(max-width:1024px){ + .hero-inner,.arch-wrap,.grid-2{grid-template-columns:1fr} + .terminal{display:none} + .nav-links{display:none} + .stats-grid{grid-template-columns:repeat(4,1fr)} + .compare-tbl {display: block; overflow-x: auto;} +} +@media(max-width:768px){ + .grid-3,.grid-4{grid-template-columns:repeat(2,1fr)} + .footer-grid{grid-template-columns:1fr 1fr} +} +@media(max-width:480px){ + .stats-grid{grid-template-columns:repeat(2,1fr)} + .grid-3,.grid-4{grid-template-columns:1fr} + .footer-grid{grid-template-columns:1fr} + .footer-bottom{flex-direction:column;gap:1rem;text-align:center} +} +
@@ -209,12 +209,28 @@
Production Ready
-

Control Your URLs
Self-Hosted with Rust

+

Control Your URLs.
Self-Hosted with Rust

BZOD is a complete multi-user URL management platform featuring custom landing pages, analytics, audit logging, and automated disaster recovery. Powered entirely by SQLite.

+ + + +
+
One-command installer
+
+ $ + curl -fsSL https://bzo.in/deploy.sh | sudo bash + +
+ +
+
Rust 2021 Axum @@ -222,159 +238,172 @@ Docker Ready
-
-
bzod β€” bash
-
- $ git clone https://github.com/thakares/nx9-url-shortener bzod - Cloning into 'bzod'... - - $ cargo build --release - Compiling bzod v0.5.0 - Finished release [optimized] in 12.58s - - $ ./target/release/bzod serve - - [INFO] database=SQLite multi_user=enabled - [INFO] Listening on 0.0.0.0:8654 - - $ curl -X POST http://localhost:8654/api/v1/urls \ - -H "Authorization: bzo_TOKEN" \ - -d '{"target_url":"https://example.com","code":"my-link"}' - βœ… Created: http://localhost:8654/my-link -
-
+ + +
+
bzod ? running
+
$ git clone https://github.com/thakares/bzod +Cloning into 'bzod'... + +$ cargo build --release + Compiling bzod v0.5.0 + Finished release [optimized] in 12.58s + +$ ./target/release/bzod serve + +[INFO] database="SQLite" multi_user=enabled +[INFO] audit_logging=enabled backup=supported +[INFO] Listening on 0.0.0.0:3000 + +$ curl -X POST http://localhost:3000/api/users \ + -H "Content-Type: application/json" \ + -d '{"username":"admin","password":"secure"}' + +{ + "id": 1, + "username": "admin", + "created_at": "2026-06-19T13:17:28Z" +} + +$ curl -X POST http://localhost:3000/api/short-urls \ + -H "Authorization: Bearer TOKEN" \ + -d '{"target":"https://example.com","slug":"my-link"}' +βœ… Short URL created: http://localhost:3000/my-link
+
+ +
-
-
∞
Short URLs
-
QR
Generation
-
Realtime
Analytics
-
Multi
User Config
-
Logs
Audit Trail
-
Backup
& Restore
-
GPLv3
Open Source
-
+
+
?
Short URLs
+
QR
Generation
+
Realtime
Analytics
+
Multi
User Config
+
Logs
Audit Trail
+
Backup
& Restore
+
GPLv3
Open Source
+
-
-
Core Features
-

Professional URL Management

-

A highly optimized architecture providing your organization with total ownership of internal and external links, operational data, and analytics.

-
-
πŸ”—
URL Shortening

Create memorable URLs. Features include password protection, expirations, and elegant preview cards.

-
πŸ“„
Landing Pages

Host structured landing pages with built-in analytics, dynamic QR codes, and integrated domains.

-
πŸ“Š
Analytics

Accurate visitor tracking encompassing browser metrics, referrers, and seamless CSV exports.

-
πŸ›‘οΈ
Memory Safe

Engineered in Rust to fundamentally eliminate memory leaks, null pointers, and thread data races.

-
-
+
+
Core Features
+

Professional URL Management

+

A highly optimized architecture providing your organization with total ownership of internal and external links, operational data, and analytics.

+
+
?
URL Shortening

Create memorable URLs. Features include password protection, expirations, and elegant preview cards.

+
?
Landing Pages

Host structured landing pages with built-in analytics, dynamic QR codes, and integrated domains.

+
?
Analytics

Accurate visitor tracking encompassing browser metrics, referrers, and seamless CSV exports.

+
??
Memory Safe

Engineered in Rust to fundamentally eliminate memory leaks, null pointers, and thread data races.

+
+
-
-
System Architecture
-

High-Level Data Flow

-

A tenant-isolated structure pairing the Axum async framework with optimized SQLite database files, segregating content from high-volume analytics.

-
-
-
-
Client Browser
-
↓ HTTP/REST
-
Axum Routing Engine
-
↓ system.db lookup
-
Global Slug Registry
-
↓ Resolve Tenant
-
-
URL Data
content.db
-
Tracking
analytics.db
-
-
↓ Write Event
-
Audit Log (system.db)
-
↓
-
Response / Redirect
-
-
-
-
-
-
1
-
Web Layer (Axum)

High-performance async HTTP server handling routing, middleware validation, CSRF protection, and structured error responses.

-
-
-
2
-
Global Namespace

All public URLs are tracked in the system.db -> global_slugs table to prevent collisions across different isolated users.

-
-
-
3
-
Analytics Pipeline

Lightweight, thread-safe tracking workers capture device profiles and traffic origins into tenant databases without degrading redirect speeds.

-
-
-
+
+
System Architecture
+

High-Level Data Flow

+

A tenant-isolated structure pairing the Axum async framework with optimized SQLite database files, segregating content from high-volume analytics.

+
+
+
+
Client Browser
+
? HTTP/REST
+
Axum Routing Engine
+
? system.db lookup
+
Global Slug Registry
+
? Resolve Tenant
+
+
URL Data
content.db
+
Tracking
analytics.db
+
? Write Event
+
Audit Log (system.db)
+
?
+
Response / Redirect
+
+
+
+
+
1
+
Web Layer (Axum)

High-performance async HTTP server handling routing, middleware validation, CSRF protection, and structured error responses.

+
+
+
2
+
Global Namespace

All public URLs are tracked in the system.db -> global_slugs table to prevent collisions across different isolated users.

+
+
+
3
+
Analytics Pipeline

Lightweight, thread-safe tracking workers capture device profiles and traffic origins into tenant databases without degrading redirect speeds.

+
+
+
+
+
-
-
Storage Architecture
-

Strict Tenant Isolation

-

Instead of a monolithic database, BZOD securely segments administrative data from tenant analytics and content via dedicated SQLite files operating in WAL mode.

-
-
-
- data/
- β”œβ”€β”€ admin/ # Global Metadata
- β”‚ β”œβ”€β”€ admin.db # Internal management
- β”‚ β”œβ”€β”€ system.db # Global slugs & audit logs
- β”‚ └── users.db # Auth, sessions, quotas
- β”‚
- └── users/ # Tenant Isolation
-     β”œβ”€β”€ 1/ # User 1
-     β”‚ β”œβ”€β”€ analytics.db # Isolated metrics
-     β”‚ └── content.db # Isolated URLs/Pages
-     β”‚
-     β””── 2/ # User 2
-         β”œβ”€β”€ analytics.db
-         β””── content.db -
-
-
-
-
-
1
-
No Cross-Tenant Bleed

By assigning physical content.db and analytics.db files to each user, cross-user data leakage is eliminated at the file-system level.

-
-
-
2
-
Identity & Quotas

The centralized users.db acts as the primary identity database, securely tracking authentication, API tokens, and enforcing resource quotas.

-
-
-
3
-
WAL Concurrency

Write-Ahead Logging provides robust concurrency and zero-contention crash recovery without the operational overhead of PostgreSQL.

-
-
-
-
+
+
Storage Architecture
+

Strict Tenant Isolation

+

Instead of a monolithic database, BZOD securely segments administrative data from tenant analytics and content via dedicated SQLite files operating in WAL mode.

+
+
+
+ data/
+ ??? admin/ # Global Metadata
+ ? ??? admin.db # Internal management
+ ? ??? system.db # Global slugs & audit logs
+ ? ??? users.db # Auth, sessions, quotas
+ ?
+ ??? users/ # Tenant Isolation
+     ??? 1/ # User 1
+     ? ??? analytics.db # Isolated metrics
+     ? ??? content.db # Isolated URLs/Pages
+     ?
+     ??? 2/ # User 2
+         ??? analytics.db
+         ??? content.db +
+
+
+
+
1
+
No Cross-Tenant Bleed

By assigning physical content.db and analytics.db files to each user, cross-user data leakage is eliminated at the file-system level.

+
+
+
2
+
Identity & Quotas

The centralized users.db acts as the primary identity database, securely tracking authentication, API tokens, and enforcing resource quotas.

+
+
+
3
+
WAL Concurrency

Write-Ahead Logging provides robust concurrency and zero-contention crash recovery without the operational overhead of PostgreSQL.

+
+
+
+
+
-
-
REST API
-

Programmatic Access

-

Integrate BZOD with CI/CD pipelines, home automation, or custom applications using secure, token-based authentication.

-
-
-

Create a Short URL

-
POST /api/v1/urls
+
+
REST API
+

Programmatic Access

+

Integrate BZOD with CI/CD pipelines, home automation, or custom applications using secure, token-based authentication.

+
+
+

Create a Short URL

+
POST /api/v1/urls
 Authorization: Bearer bzo_xxxxxxxxxxxx
 
 {
@@ -382,10 +411,10 @@ Authorization: Bearer bzo_xxxxxxxxxxxx
   "target_url": "https://www.rust-lang.org",
   "description": "Rust Language"
 }
-
-
-

Fetch Global Statistics

-
GET /api/v1/stats
+    
+
+

Fetch Global Statistics

+
GET /api/v1/stats
 Authorization: Bearer bzo_xxxxxxxxxxxx
 
 {
@@ -396,25 +425,25 @@ Authorization: Bearer bzo_xxxxxxxxxxxx
     "total_pages": 12
   }
 }
-
-
+
+
-
-
Operations & CLI
-

Built for Systems Administrators

-

Full control via a comprehensive command-line interface. Handle migrations, disaster recovery, and user management directly from the terminal.

-
-
- - - -
-
+
+
Operations & CLI
+

Built for Systems Administrators

+

Full control via a comprehensive command-line interface. Handle migrations, disaster recovery, and user management directly from the terminal.

+
+
+ + + +
+
# Create a full compressed snapshot of the entire platform
 bzod backup
 
@@ -423,8 +452,8 @@ Authorization: Bearer bzo_xxxxxxxxxxxx
 
 # Backup and export only a single tenant's data
 bzod backup-user 42
-
-
+
+
# Bootstrap a new administrator
 bzod create-admin admin
 
@@ -433,8 +462,8 @@ Authorization: Bearer bzo_xxxxxxxxxxxx
 
 # Immediately invalidate user sessions and prevent login
 bzod disable-user alice
-
-
+
+
# Run SQLite integrity checks, WAL validation, and storage checks
 bzod doctor
 
@@ -443,97 +472,97 @@ Authorization: Bearer bzo_xxxxxxxxxxxx
 
 # Apply schema upgrades safely
 bzod migrate
-
-
+
+
-
-
Market Comparison
-

How BZOD Compares

-

Unlike standard shorteners, BZOD provides a comprehensive suite of featuresβ€”from landing pages to multi-tenant user isolationβ€”in a single, compiled binary.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureBZOD v0.5.0ShlinkYOURLSChhoto URL
LanguageRust πŸ¦€PHPPHPRust
Deploymentβœ… Single Binary❌ Requires PHP/Web Server❌ Requires PHP/Web Serverβœ… Single Binary
External DB Requiredβœ… None (SQLite)⚠️ Usually (PostgreSQL/Maria)⚠️ Usually (MySQL)βœ… None
Landing Pagesβœ… Native❌ No⚠️ Via Plugin❌ No
QR + Analyticsβœ… Native⚠️ Partial⚠️ Via Plugin⚠️ Partial
Multi-User / Quotasβœ… Native (Isolated)⚠️ Partial⚠️ Via Plugin❌ No
Backup & Recoveryβœ… Built-in CLI & Web UI❌ External Tools Needed❌ External Tools Needed❌ No
-
+
+
Market Comparison
+

How BZOD Compares

+

Unlike standard shorteners, BZOD provides a comprehensive suite of features?from landing pages to multi-tenant user isolation?in a single, compiled binary.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureBZOD v0.5.0ShlinkYOURLSChhoto URL
LanguageRust ?PHPPHPRust
Deployment? Single Binary? Requires PHP/Web Server? Requires PHP/Web Server? Single Binary
External DB Required? None (SQLite)?? Usually (PostgreSQL/Maria)?? Usually (MySQL)? None
Landing Pages? Native? No?? Via Plugin? No
QR + Analytics? Native?? Partial?? Via Plugin?? Partial
Multi-User / Quotas? Native (Isolated)?? Partial?? Via Plugin? No
Backup & Recovery? Built-in CLI & Web UI? External Tools Needed? External Tools Needed? No
+
-
-
Deployment
-

Get Started in Minutes

-

Deploy via Docker for containerized environments, or compile directly from source for bare-metal performance.

-
-
- - -
-
+
+
Deployment
+

Get Started in Minutes

+

Deploy via Docker for containerized environments, or compile directly from source for bare-metal performance.

+
+
+ + +
+
# Clone the official repository
 git clone https://github.com/thakares/nx9-url-shortener bzod
 cd bzod
@@ -543,8 +572,8 @@ Authorization: Bearer bzo_xxxxxxxxxxxx
 
 # Initialize base admin
 docker exec -it bzod bzod create-admin
-
-
+
+
# Clone the official repository
 git clone https://github.com/thakares/nx9-url-shortener bzod
 cd bzod
@@ -557,64 +586,75 @@ Authorization: Bearer bzo_xxxxxxxxxxxx
 
 # Serve application
 ./target/release/bzod serve
-
-
+
+
\ No newline at end of file