Creative portfolio website with interactive design showcase, dark/light mode, and dynamic WordPress API content
  • JavaScript 97.7%
  • CSS 1.6%
  • Shell 0.5%
  • HTML 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-19 07:01:29 +07:00
public style: update kv-home logo to clean minimalist home silhouette 2026-09-18 19:50:21 +07:00
src feat(responsive): optimize all layouts and modals for mobile and desktop viewports 2026-09-19 07:01:29 +07:00
.dockerignore feat: add standalone production server, multi-device persistence, Docker setup, and documentation 2026-09-13 10:09:58 +07:00
.gitignore feat(security): implement 2FA TOTP, session tokens, password hashing, and security hardening 2026-09-13 10:42:55 +07:00
CHANGELOG.md release: v1.0.0 production grade without mockdata 2026-09-18 19:37:35 +07:00
docker-compose.yml release: v1.0.0 production grade without mockdata 2026-09-18 19:37:35 +07:00
Dockerfile feat: add standalone production server, multi-device persistence, Docker setup, and documentation 2026-09-13 10:09:58 +07:00
eslint.config.js release: v1.0.0 production grade without mockdata 2026-09-18 19:37:35 +07:00
index.html fix(portal): use main branch for dashboard-icons, fix svg rect clipPath to objectBoundingBox, remove stylesheet swap 2026-09-18 21:14:56 +07:00
launch.sh feat: add standalone production server, multi-device persistence, Docker setup, and documentation 2026-09-13 10:09:58 +07:00
package-lock.json feat(security): implement 2FA TOTP, session tokens, password hashing, and security hardening 2026-09-13 10:42:55 +07:00
package.json release: v1.0.0 production grade without mockdata 2026-09-18 19:37:35 +07:00
postcss.config.js Add admin login, dynamic link CRUD management, and automatic tetromino grid calculator 2026-09-05 09:11:26 +07:00
README.md chore: replace all kv-port references with kv-home across documentation, configs, and user-agents 2026-09-18 19:43:43 +07:00
SECURITY.md feat(security): implement 2FA TOTP, session tokens, password hashing, and security hardening 2026-09-13 10:42:55 +07:00
server.js fix(discovery): parallelize port probes, add 10s timeout guard, fix default host, async font loading, and pin icon CDN 2026-09-18 21:01:27 +07:00
tailwind.config.js release: v1.0.0 production grade without mockdata 2026-09-18 19:37:35 +07:00
vite.config.js chore: replace all kv-port references with kv-home across documentation, configs, and user-agents 2026-09-18 19:43:43 +07:00

KV Home Logo

🕹️ KV Home (Procedural Tetris Homelab Hub)

The procedural Tetris-tiling personal dashboard, service hub, and homelab app launcher.
Every service card is an interlocking tetromino that dynamically drops and locks into place.
Built with React 19, Vite 7, and a hardened zero-dependency Node.js backend with native TOTP 2FA.

GitHub Stars Docker Hub Pulls GHCR Forgejo License MIT

Quick Start • Why KV Home? • Comparison • Tetris Engine • Security & 2FA • Star History


⚡ Why KV Home?

Most homelab dashboards (like Homepage, Dashy, or Flame) use rigid grid rows and flat cards that feel like generic admin templates.

KV Home transforms your service launcher into a tactile, dynamic experience:

  • 🧩 Procedural Tetris Tiling Engine: A backtracking solver arranges cards into interlocking tetrominoes (I, J, L, O, S, T, Z) that animate and fall smoothly on page load.
  • 🔐 Native RFC 6238 TOTP 2FA: Built directly with standard cryptographic libraries—protect your management portal without needing external authenticators like Authelia or Authentik.
  • 🎬 HTTP 206 Partial Content Video Streaming: Embed background video loops and resume media with zero buffering across Safari, Chrome, and mobile devices.
  • 🚀 Zero-Dependency Production Backend: The backend is written with standard Node.js libraries (node:http, node:crypto, node:fs). Zero third-party npm packages required at runtime!
  • 🛠️ In-Place Live Admin Mode: Press Ctrl + Shift + A to add, reorder, adjust colors, and edit links with immediate multi-device synchronization.

📊 Competitive Comparison

Feature 🕹️ KV Home 🏠 Homepage ⚡ Dashy 🔥 Flame
Visual Architecture Procedural Tetris Tetrominoes Static Grid Column/Row Widgets Flat Cards
Built-in TOTP 2FA ✅ Native RFC 6238 (Zero-Dep) ❌ Needs Reverse Proxy ⚠️ Basic Auth ⚠️ Password only
Runtime Dependencies ⚡ Zero (Node.js Standard Libs) Many npm packages Heavy Node stack Ruby / Docker
Live In-Place Editing ✅ Hotkey Ctrl+Shift+A ❌ Edit YAML files ✅ GUI Editor ✅ GUI Editor
Video Background Streaming ✅ HTTP Range 206 Support ❌ Static images ❌ Static images ❌ Static
Synology NAS Ready ✅ 1-Container Deployment ✅ Docker ✅ Docker ✅ Docker

📸 Interface Preview

┌────────────────────────────────────────────────────────────────────────────────────────┐
│ [🕹️ KV Home]                             [🎲 Re-roll] [🌙 Dark] [⚙️ Admin (Ctrl+Shift+A)] │
├────────────────────────────────────────────────────────────────────────────────────────┤
│                                                                                        │
│   ┌──────────────┐┌──────────────┐┌────────────────────────────┐┌──────────────┐      │
│   │ 📁 KV Files  ││ 🔮 SysVis.AI ││ 📥 KV-DL Downloader        ││ 🌐 Blog      │      │
│   │ Rust Manager ││ System AI    ││ Zero-Disk YouTube Engine   ││ Tech Notes   │      │
│   └──────┬───────┘└──────┬───────┘└─────────────┬──────────────┘└──────┬───────┘      │
│          │ ┌─────────────┴┐ ┌───────────────────┴──┐ ┌─────────────────┴────┐          │
│          │ │ 📺 Jellyfin  │ │ 🐳 Portainer Stack   │ │ 📊 Grafana Metrics   │          │
│          │ │ 4K Media     │ │ Docker Services      │ │ Cluster Monitor      │          │
│          └─┴──────────────┘ └──────────────────────┘ └──────────────────────┘          │
│                                                                                        │
└────────────────────────────────────────────────────────────────────────────────────────┘

🎯 Procedural Tetris Engine

KV Home computes layout geometries using an in-browser constraint solver:

  1. Dimension Analysis: Calculates optimal board width from the client's screen ratio.
  2. Backtracking Tetromino Placement: Fits L-shapes, T-shapes, squares, and line pieces with zero gaps.
  3. Seamless SVG Clipping: Blocks render as continuous geometric shapes using SVG clipPath and CSS calc() to prevent awkward seam lines while keeping consistent gutters.
  4. Interactive Re-Roll: Click the 🎲 Shuffle button to re-roll tetromino configuration seeds instantly.

🚀 Quick Start (30 Seconds)

Option A: Run Prebuilt Docker Container

Run KV Home immediately on port 3000:

docker run -d \
  --name kv-home \
  -p 3000:3000 \
  -v ./data:/app/data \
  -v ./uploads:/app/uploads \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  --restart unless-stopped \
  vndangkhoa/kv-home:latest

Open http://localhost:3000 in your browser.


services:
  kv-home:
    image: vndangkhoa/kv-home:latest
    container_name: kv-home
    restart: unless-stopped
    ports:
      - "3000:3000"
    volumes:
      # Persistent link data and 2FA credentials
      - ./data:/app/data
      # Uploaded media and background videos
      - ./uploads:/app/uploads
      # Real-time Docker container status
      - /var/run/docker.sock:/var/run/docker.sock:ro

Start the service:

docker compose up -d

🔐 Security & TOTP 2FA

KV Home is hardened for public exposure on personal domains:

  • Two-Factor Authentication: RFC 6238 TOTP with QR Code scanner compatible with Google Authenticator, Apple Passwords, 1Password, and Authy.
  • Salted scrypt Passwords: Hashes credentials with unique 16-byte random salts.
  • Side-Channel Defense: Uses crypto.timingSafeEqual to defeat timing attacks.
  • Brute-Force Lockout: Automatically locks out IP addresses for 15 minutes after 5 consecutive failed attempts.
  • Hardened HTTP Headers: Strict CSP, X-Frame-Options: DENY, X-Content-Type-Options: nosniff.

⌨️ Shortcuts & Admin Navigation

Key Scope Action
Ctrl + Shift + A Global Open / Close Admin Management Modal
Esc Modal Close active configuration dialog
Space Canvas Re-roll Tetris piece layout configuration

🌟 Support & Community

If KV Home makes your homelab feel more playful and functional:

KV Home Star History


📄 License

Distributed under the MIT License. See LICENSE for complete details.

Developed with ❤️ by Khoa Vo (@vndangkhoa).