The examples use :latest, which follows successful builds of main and can include changes newer than the published release. For a specific release, use its version tag, such as ghcr.io/dedkola/bladevault:v1.3.1.
Docker on macOS or Linux
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
Open http://localhost:5500.
Podman on macOS or Linux
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
Docker on Windows
docker run -d `
--name bladevault `
--restart unless-stopped `
-p 5500:3000 `
-v "${env:USERPROFILE}\BladeVault\data:/app/data" `
ghcr.io/dedkola/bladevault:latest
Docker Compose
The included Compose file builds the source and uses named Docker volumes for the vault data and the bounded optimized-image cache. From a new checkout:
git clone https://github.com/dedkola/bladevault.git
cd bladevault
docker compose up -d --build
If you already have a checkout, run the Compose command from its root directory. Open http://localhost:5500. To stop it without deleting the persistent volume, run docker compose down.
Build the image yourself
git clone https://github.com/dedkola/bladevault.git
cd bladevault
docker build -t bladevault .
docker run -d \
--name bladevault \
--restart unless-stopped \
-p 5500:3000 \
-v "$HOME/BladeVault/data:/app/data" \
bladevault
Notes
- Data persistence — everything lives in
/app/datainside the container:bladevault.sqliteplus local images. That is what the-vmount keeps. See Your data. - Unraid or another LAN server — map host port
5500to container port3000, then reach the app athttp://<SERVER_IP>:5500and MCP athttp://<SERVER_IP>:5500/mcp. - URL import and capture — the published image includes the browser runtime for imports and source-page capture. A source checkout needs Chromium installed separately. See Run from source.
- MCP from a container — the client URL is
http://localhost:5500/mcpwhen the container runs on the same computer. See MCP.