Sign inSign up

linuxlewis/dnd-inventory-manager

By linuxlewis

•Updated 3 months ago

D&D 5e Party Inventory Manager — self-host with one command

Image
0

791

linuxlewis/dnd-inventory-manager repository overview

⁠D&D Party Inventory Manager

A collaborative web app for managing shared party inventory in D&D 5e campaigns. Players join via a unique slug link — no accounts needed. Changes sync in real-time across all connected devices.

🎮 Try it now at dndinventorymanager.com⁠

D&D Party Inventory Manager

⁠Features

  • Slug-based party access — share a link, no sign-ups required
  • Real-time sync — instant updates for all viewers via Server-Sent Events (SSE)
  • SRD 5e integration — auto-populate item stats from the official SRD via dnd5eapi.co⁠ GraphQL API
  • Currency tracking — manage party gold with full transaction history
  • Full history & undo — every change is logged; rollback to any point
  • Dark mode — easy on the eyes for late-night sessions
  • Mobile-friendly — responsive design, works great on phones and tablets

⁠Quick Start (Self-Hosting)

docker run -d -p 8080:80 -v dnd-data:/app/data linuxlewis/dnd-inventory-manager

Open http://localhost:8080⁠ — that's it!

Your data persists in the dnd-data volume across restarts and upgrades.

⁠Docker Compose
git clone https://github.com/linuxlewis/dnd-inventory-manager.git
cd dnd-inventory-manager
docker compose up -d

Access at http://localhost:8080⁠.

⁠Configuration
VariableDefaultDescription
DATABASE_URLsqlite+aiosqlite:///./data/dnd_inventory.dbDatabase connection string
CORS_ORIGINS["*"]Allowed CORS origins

Override via environment in docker-compose.yml or docker run -e:

docker run -d -p 8080:80 \
  -v dnd-data:/app/data \
  -e 'CORS_ORIGINS=["https://yourdomain.com"]' \
  linuxlewis/dnd-inventory-manager

⁠Development

Prerequisites: Bun⁠ (frontend) · UV⁠ + Python 3.11+ (backend)

# Backend
cd backend && uv sync && uv run uvicorn app.main:app --reload --port 8000

# Frontend (in another terminal)
cd frontend && bun install && bun run dev

The frontend dev server proxies /api requests to localhost:8000.

⁠Tech Stack

LayerTechnology
FrontendReact 18 · TypeScript · Vite · Bun
BackendPython 3.12 · FastAPI · SQLAlchemy
DatabaseSQLite (async via aiosqlite)
Real-timeServer-Sent Events (SSE)
SRD DataGraphQL (dnd5eapi.co⁠)
Containernginx + uvicorn · supervisord

⁠Disclaimer

This project is not affiliated with, endorsed by, or associated with Wizards of the Coast, Hasbro, or any of their subsidiaries. Dungeons & Dragons, D&D, and all related trademarks are property of Wizards of the Coast LLC. Game data provided via the D&D 5e SRD API⁠ under the Open Gaming License (OGL).

⁠License

MIT

Tag summary

Content type

Image

Digest

sha256:d46efde3d…

Size

74.8 MB

Last updated

3 months ago

docker pull linuxlewis/dnd-inventory-manager:60d06d4