Watch BladeVault video
Watch BladeVault video
BladeVault
BladeVault
Docker app from dedkola's Repository
Overview
Readme
View on GitHubBladeVault
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.
Quick Start
Choose the fastest path for how you want to use BladeVault:
- Docker:
docker compose up -d --build - Source:
npm installthennpx playwright install chromiumandnpm 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
.jsonproduct endpoint. - Uses Playwright for JavaScript-rendered pages.
- Includes special handling for Shopify stores via their
- 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 β recently added knives at a glance
Knife Detail β specs, description, and image gallery
Compare β side-by-side specification comparison
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
- Open the
.dmgfile. - Drag
BladeVault.appintoApplications. - If macOS blocks the first launch, right-click
BladeVault.app, choose Open, and confirm the prompt. - 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
- Open the
.exefile. - Follow the installer prompts.
- 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:
- Create a BladeVault cloud account or sign in.
- Run Backup Local β Cloud to upload a copy of your collection.
- 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
Media gallery
1 / 4Install 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.
Categories
Download Statistics
Related apps
Explore more like this
Explore allDetails
ghcr.io/dedkola/bladevault:latestRuntime arguments
- Web UI
http://[IP]:[PORT:3000]- Network
bridge- Shell
bash- Privileged
- false
Template configuration
HTTP port for the BladeVault web interface.
- Target
- 3000
- Default
- 5500
Persistent SQLite database and downloaded knife images.
- Target
- /app/data
- Default
- /mnt/user/appdata/bladevault