BladeVault

BladeVault

Docker app from dedkola's Repository

Overview

BladeVault is a local-first knife collection manager. Organize and compare your collection, store images and a SQLite database in persistent appdata, and export knife records to PDF.
BladeVault logo

BladeVault

A sharp, local-first knife collection manager.

Track your collection, compare knives side by side, export clean PDFs, and keep full control of your data with local SQLite storage and optional cloud backup.

Next.js 16.2 React 19.2 TypeScript 6 Tailwind CSS 4.3 SQLite Electron 43

App Router Playwright 1.61 Docker Cloudflare Dark Mode


Quick Start

Choose the fastest path for how you want to use BladeVault:

  • Docker: docker compose up -d --build
  • Source: npm install then npx playwright install chromium and npm run dev
  • Dev Container: open the repository in VS Code and run Dev Containers: Reopen in Container, then run npm run dev
  • Desktop shell: npm run desktop:dev

If you only want to try the app, Docker is the quickest setup. If you want to develop or customize it, run from source.


Demo Video


✨ Features

  • Dashboard β€” Get a quick overview of your recently added knives.
  • Collection Library β€” Browse your complete inventory with searchable multi-select filters across brand, model number, blade material, blade style, coating, hardness, locking mechanism, handle material, handle length, blade length, overall length, blade thickness, weight, and country.
  • Knife Detail Page β€” View specifications, descriptions, and a full image gallery with lightbox navigation.
  • Inline Editing β€” Update any knife's details directly from the detail page.
  • Comparison Tool β€” Select up to 3 knives and compare specs side-by-side.
  • PDF Export β€” Export knife details and comparison views as PDF files for sharing or archiving.
  • Print Support β€” Use print-friendly layouts to generate clean hard copies of knife records.
  • Smart URL Scraping β€” Paste a product URL and BladeVault auto-fetches title, brand, images, steel, and specs.
    • Includes special handling for Shopify stores via their .json product endpoint.
    • Uses Playwright for JavaScript-rendered pages.
  • Manual Entry β€” Add knives by hand with a clean, structured form.
  • Image Management β€” Downloaded images are stored locally; cloud backup can sync them to the BladeVault backend when you want an off-device copy.
  • Dark & Light Mode β€” Toggle themes instantly from the sidebar.
  • Local-First Storage β€” SQLite database + local image folder. Your data stays on your machine by default.
  • Optional Cloud Backup β€” Sign in to your BladeVault cloud account and sync a backup copy through the staging backend.
  • Auto Sync To Cloud β€” After cloud sign-in, BladeVault silently runs a background backup every hour and after each newly added knife, then shows a small bottom-right confirmation when sync completes.

πŸ“Έ Screenshots

Dashboard

Dashboard β€” recently added knives at a glance


Knife Detail

Knife Detail β€” specs, description, and image gallery


Compare

Compare β€” side-by-side specification comparison


Add Knife

Quick Add β€” scrape a product URL or enter details manually


πŸ“₯ Install BladeVault

Choose the setup that fits you:

  • Desktop App β€” package BladeVault as a native macOS or Windows app with Electron.
  • Docker β€” the quickest way to run BladeVault with persistent local storage.
  • Source β€” best if you want to develop, customize, or run the app locally with Node.js.

🐳 Run in Container

Docker / Podman

If you want a clear, user-owned folder on your machine, use docker run or podman run and mount ~/BladeVault/data directly.

For macOS / Linux Docker:

mkdir -p "$HOME/BladeVault/data"

docker run -d \
  --name bladevault \
  --restart unless-stopped \
  -p 5500:3000 \
  -v "$HOME/BladeVault/data:/app/data" \
  ghcr.io/dedkola/bladevault:latest

or Podman:

mkdir -p "$HOME/BladeVault/data"

podman run -d \
  --name bladevault \
  --restart unless-stopped \
  -p 5500:3000 \
  -v "$HOME/BladeVault/data:/app/data" \
  ghcr.io/dedkola/bladevault:latest

This creates a persistent BladeVault/data folder in your home directory for the SQLite database and downloaded images.

For Windows (PowerShell) Docker:

docker run -d `
  --name bladevault `
  --restart unless-stopped `
  -p 5500:3000 `
  -v "${env:USERPROFILE}\BladeVault\data:/app/data" `
  ghcr.io/dedkola/bladevault:latest

or Podman:

$path = "$env:USERPROFILE\BladeVault\data"
New-Item -ItemType Directory -Force $path | Out-Null

podman run -d `
  --name bladevault `
  -p 5500:3000 `
  -v "${path}:/app/data" `
  ghcr.io/dedkola/bladevault:latest

Open http://localhost:5500 after the container starts.

Run DMG on macOS:

If you downloaded the macOS DMG:

Permanent latest-release download: BladeVault.dmg

  1. Open the .dmg file.
  2. Drag BladeVault.app into Applications.
  3. If macOS blocks the first launch, right-click BladeVault.app, choose Open, and confirm the prompt.
  4. If that does not work, run:
xattr -d com.apple.quarantine "/Applications/BladeVault.app"
open "/Applications/BladeVault.app"

If macOS still blocks the first launch, try starting it once from Terminal:

"/Applications/BladeVault.app/Contents/MacOS/BladeVault"

Update BladeVault on macOS

Unsigned macOS releases use a user-assisted update flow. When BladeVault finds a new version, choose Download update in Settings β†’ About. The new DMG is downloaded and opened automatically. Quit BladeVault, drag the new app into Applications, confirm replacement, and use the same first-launch steps above if macOS blocks the unsigned app.


Run Installer on Windows:

If you downloaded the Windows installer:

Permanent latest-release download: BladeVault.exe

  1. Open the .exe file.
  2. Follow the installer prompts.
  3. Open BladeVault from the Start menu or desktop shortcut.

If Windows SmartScreen blocks the first launch, click More info and then Run anyway if you trust the download source.

Build your own Docker image

git clone https://github.com/dedkola/bladevault.git
cd bladevault

# Build the image
docker build --no-cache -t bladevault .

# Run with a persistent folder in your home directory
mkdir -p "$HOME/BladeVault/data"

docker run -p 5500:3000 -d \
  --name bladevault \
  --restart unless-stopped \
  -v "$HOME/BladeVault/data:/app/data" \
  bladevault

πŸ“¦ Run from Source

Prerequisite: Node.js 20+ (tested with Node.js 22)

# 1. Clone the repository
git clone https://github.com/dedkola/bladevault.git
cd bladevault

# 2. Install dependencies
npm install

# 3. Install Playwright browsers (needed for scraping)
npx playwright install chromium

# 4. Start the development server
npm run dev

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

By default, source mode stores its SQLite database and downloaded images in ~/BladeVault/data (or the Windows equivalent under your user profile). Set BLADEVAULT_DATA_DIR if you want a custom location. Older local checkouts with an existing repo-level data/bladevault.sqlite keep using that legacy path until you move the file.

Dev Container

The included .devcontainer configuration provides Node.js and Playwright's matching Chromium build. In VS Code, choose Dev Containers: Reopen in Container. Dependencies install automatically; then run:

npm run dev

The app opens through the forwarded port 3000. Container runtime data is stored in the checkout's ignored data/ folder, while node_modules stays in a Docker volume so it is never shared with the host OS.


πŸ’Ύ Your Data

Local mode (default)

BladeVault stores everything locally:

  • SQLite database: ~/BladeVault/data/bladevault.sqlite
  • Downloaded images: ~/BladeVault/data/images/

No cloud accounts or API keys required. Keep the ~/BladeVault/data folder backed up to preserve your collection.

If you already have an older repo-local data/bladevault.sqlite, BladeVault continues to use it until you move that database or set BLADEVAULT_DATA_DIR explicitly.

Cloud Backup Beta

Open Settings from the sidebar and use the Cloud Backup tab to:

  1. Create a BladeVault cloud account or sign in.
  2. Run Backup Local β†’ Cloud to upload a copy of your collection.
  3. Run Restore Cloud β†’ Local if you want to replace the current device vault with the latest cloud backup.

Cloud Backup uses Google sign-in right now. The first Google login creates the backup account automatically.

The app remains local-first. Cloud backup keeps an off-device copy without asking the user for raw Cloudflare credentials inside the app.


πŸ“„ License


Built with precision for knife enthusiasts.

Media gallery

1 / 4

Install BladeVault on Unraid in a few clicks.

Find BladeVault in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for BladeVault Review the template variables and paths Click Install

Categories

Download Statistics

6,090
Total Downloads

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/dedkola/bladevault:latest
Last Updated2026-07-15
First Seen2026-07-15

Runtime arguments

Web UI
http://[IP]:[PORT:3000]
Network
bridge
Shell
bash
Privileged
false

Template configuration

WebUIPorttcp

HTTP port for the BladeVault web interface.

Target
3000
Default
5500
AppdataPathrw

Persistent SQLite database and downloaded knife images.

Target
/app/data
Default
/mnt/user/appdata/bladevault