Self-Hosted Inventory and Storage Management System
A self-hosted web application for tracking physical items across rooms, bins, and storage containers.
- Zero Configuration — Just run and start organizing
- Hierarchical Organization — Zones → Containers → Items
- QR Code Generation — Print labels for quick mobile scanning
- Photo Attachments — Capture images directly from your device camera
- Color-Coded Zones — Visually organize different areas
- Print Manifests — Generate detailed inventory lists for each container
- Global Search — Find any item instantly across all locations
- Dark/Light Mode — Easy on the eyes, day or night
- Responsive Design — Works on desktop, tablet, and mobile
docker run -d \
--name boxtrack \
-p 5001:5001 \
-v boxtrack_data:/data \
--restart unless-stopped \
netpersona/boxtrack:latestOpen http://localhost:5001 in your browser.
services:
boxtrack:
image: netpersona/boxtrack:latest
container_name: boxtrack
restart: unless-stopped
ports:
- "5001:5001"
volumes:
- boxtrack_data:/data
volumes:
boxtrack_data:docker compose up -dYour inventory data is stored in a SQLite database inside the /data directory. Mount this as a volume to preserve data across updates:
- Docker volume:
-v boxtrack_data:/data - Host path:
-v /path/on/host:/data
docker pull netpersona/boxtrack:latest
docker rm -f boxtrack
docker run -d \
--name boxtrack \
-p 5001:5001 \
-v boxtrack_data:/data \
--restart unless-stopped \
netpersona/boxtrack:latestYour data remains safe in the mounted volume.
- Go to Docker tab → Add Container
- Set Repository:
netpersona/boxtrack:latest - Add Port: Host
5001→ Container5001 - Add Path: Host
/mnt/user/appdata/boxtrack→ Container/data - Click Apply
| Variable | Default | Description |
|---|---|---|
PORT |
5001 |
Application port |
BOXTRACK_DATA_DIR |
/data |
Database storage location |
TZ |
UTC |
Timezone |
- Frontend: React, TailwindCSS, shadcn/ui
- Backend: Express.js, Node.js
- Database: SQLite with WAL mode
- Build: Vite, esbuild
Overview dashboard with zone statistics and recent activity.
Detailed inventory list with photos, quantities, and values.
Print-ready labels with scannable codes for quick access.
Contributions, issues, and feature requests are welcome!
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
MIT License - Use it, modify it, self-host it.
See LICENSE for more information.
Built for people who want to find their stuff.
Star us on GitHub — it helps!