Update README for v0.2.0 feature set

This commit is contained in:
thakares committed 2026-06-12 20:13:22 +05:30
1 parent bcbcc90d98
commit 592154e961
2 files changed
+172 -40

No files matched your search

+1
View File
@@ -5,3 +5,4 @@ data/
*.db-shm *.db-shm
.env .env
.idea/
+171 -40
View File
@@ -1,10 +1,50 @@
# nx9-url-shortener # BZOD
A lightweight, self-hosted URL shortener and landing page platform written in Rust. **A lightweight, self-hosted URL management platform written in Rust.**
`nx9-url-shortener` is designed for individuals, organizations, and homelab operators who want complete control over their short links without relying on third-party services. BZOD combines URL shortening, QR code generation, password-protected links, smart preview pages, analytics, audit logging, and lifecycle management into a single self-hosted application with zero external dependencies.
Built with Rust, SQLite, Axum, and Askama, it provides URL shortening, landing pages, analytics, audit logging, API access, and a web-based administration interface while maintaining a small deployment footprint. Built with Rust, SQLite, Axum, and Askama, BZOD is designed for individuals, organizations, homelab operators, and businesses that want complete control over their links, analytics, and branding.
---
## Highlights
### v0.2.0
* QR code generation (PNG and SVG)
* QR scan analytics
* Password-protected links
* Smart preview pages
* Link expiration
* Audit trail
* Bulk operations
* Expanded test coverage
* Improved health monitoring
---
## Feature Matrix
| Feature | Status |
| ------------------------- | ------ |
| URL Shortening | ✅ |
| Landing Pages | ✅ |
| QR Code Generation | ✅ |
| QR Analytics | ✅ |
| Password-Protected Links | ✅ |
| Smart Preview Pages | ✅ |
| Link Expiration | ✅ |
| One-Time Links | ✅ |
| Audit Trail | ✅ |
| Bulk Operations | ✅ |
| Analytics Dashboard | ✅ |
| Health Monitoring | ✅ |
| REST API | ✅ |
| CSV Import/Export | 🚧 |
| Geo Analytics | 🚧 |
| Multi-User Administration | 🚧 |
| SSO | 🚧 |
--- ---
@@ -17,7 +57,7 @@ Create short links using compact hexadecimal identifiers.
Example: Example:
```text ```text
https://<your-short-domain>/1bb170 https://bzo.in/1bb170
``` ```
Redirects to: Redirects to:
@@ -28,6 +68,51 @@ https://very-long-domain-name.com
--- ---
### QR Code Generation
Generate QR codes for every short URL.
Supported formats:
* PNG
* SVG
Features:
* Downloadable QR assets
* QR scan analytics
* Bulk QR export
* Print-friendly SVG output
---
### Password-Protected Links
Protect sensitive links using Argon2id-hashed passwords.
Features:
* Password gate
* Secure session handling
* Configurable protection
* Audit logging
---
### Smart Preview Pages
Display branded preview pages before redirecting.
Features:
* Custom title
* Description
* Logo support
* Open Graph metadata
* Social sharing previews
---
### Landing Pages ### Landing Pages
Create standalone landing pages using dedicated page identifiers. Create standalone landing pages using dedicated page identifiers.
@@ -35,16 +120,31 @@ Create standalone landing pages using dedicated page identifiers.
Example: Example:
```text ```text
https://<your-short-domain>/p/1a2b https://bzo.in/p/1a2b
``` ```
--- ---
### Link Lifecycle Management
Control link validity.
Features:
* Expiration dates
* Automatic expiry jobs
* One-time links
* Maximum access limits
* Administrative disabling
---
### Analytics ### Analytics
Track: Track:
* Total visits * Total visits
* QR scans
* Country statistics * Country statistics
* Referrers * Referrers
* User agents * User agents
@@ -54,17 +154,35 @@ Track:
--- ---
### Audit Trail
Track administrative actions including:
* Login
* Logout
* URL creation
* URL updates
* URL deletion
* QR operations
* Configuration changes
---
### Administrative Dashboard ### Administrative Dashboard
Web-based administration interface featuring: Web-based administration interface featuring:
* URL management * URL management
* QR code management
* Landing page management * Landing page management
* Preview page management
* API token management * API token management
* Audit logs * Audit logs
* Health checks * Link expiration controls
* Health monitoring
* Analytics dashboard * Analytics dashboard
* SVG charts * SVG charts
* Bulk operations
--- ---
@@ -76,15 +194,26 @@ REST API endpoints for automation and integration.
/api/v1/* /api/v1/*
``` ```
Supports:
* URL creation
* URL management
* QR generation
* Analytics access
* Bulk operations
--- ---
### Security ### Security
* Password-protected administration interface * Password-protected administration interface
* Password-protected links
* Argon2id password hashing
* Session management * Session management
* CSRF protection * CSRF protection
* API token authentication * API token authentication
* Audit logging * Audit logging
* Link access controls
--- ---
@@ -103,8 +232,10 @@ No:
* React * React
* Node.js * Node.js
* Redis * Redis
* PostgreSQL
* MongoDB
* Kubernetes * Kubernetes
* External databases * External SaaS
--- ---
@@ -112,27 +243,32 @@ No:
### Databases ### Databases
The application uses four SQLite databases. BZOD uses four SQLite databases.
| Database | Purpose | | Database | Purpose |
| ------------ | ---------------------------------------- | | ------------ | ------------------------------------------------- |
| admin.db | Users, sessions, API keys, audit logs | | admin.db | Users, sessions, API keys |
| content.db | URLs, landing pages, tags | | content.db | URLs, landing pages, preview pages, tags |
| analytics.db | Visits and statistics | | analytics.db | Visits, QR scans, statistics |
| system.db | Jobs, migrations, backups, health checks | | system.db | Audit events, jobs, migrations, health monitoring |
--- ---
## Default Credentials ## Initial Setup
Initial login: Create an administrator account:
```text ### Native Installation
Username: admin
Password: admin ```bash
cargo run -- create-admin
``` ```
Change the password immediately after first login. ### Docker
```bash
docker exec -it bzod bzod create-admin
```
--- ---
@@ -142,9 +278,9 @@ Change the password immediately after first login.
![Dashboard](screenshots/dashboard.png) ![Dashboard](screenshots/dashboard.png)
### Short URL Management ### URL Management
![Short URL Management](screenshots/short-url-panel.png) ![URL Management](screenshots/short-url-panel.png)
### Landing Pages ### Landing Pages
@@ -174,7 +310,7 @@ docker compose build
docker compose up -d docker compose up -d
``` ```
### View Logs ### Logs
```bash ```bash
docker logs -f bzod docker logs -f bzod
@@ -220,13 +356,7 @@ cargo build
cargo run -- serve cargo run -- serve
``` ```
### Run Migrations ### Create Administrator
```bash
cargo run -- migrate
```
### Create Admin User
```bash ```bash
cargo run -- create-admin cargo run -- create-admin
@@ -263,14 +393,14 @@ src/
Planned features: Planned features:
* QR code generation * Vanity URLs
* Link expiration * CSV import/export
* Link disabling * Geo analytics
* CSV exports
* Bulk URL import
* GeoIP integration
* Multi-user administration * Multi-user administration
* SSO support * SSO integration
* Signed temporary links
* OpenAPI documentation
* Webhook support
--- ---
@@ -285,7 +415,7 @@ Internet
Nginx Proxy Manager Nginx Proxy Manager
│ │
▼ ▼
nx9-url-shortener BZOD
│ │
▼ ▼
SQLite SQLite
@@ -305,4 +435,5 @@ Apache License 2.0
Sunil Purushottam Thakare Sunil Purushottam Thakare
Built using Rust, SQLite, Axum, Askama, and a preference for simple, maintainable software. Built with Rust, SQLite, Axum, Askama, and a preference for simple, maintainable software.