Personal collection management system — self-hosted, LAN-accessible, keyboard-driven DOS-style UI.
Tracks: scale figures, Dollfie Dream dolls/outfits/wigs/accessories, CDs, Blu-rays, video games, game consoles, software, books/manga, merchandise, electronics. Collection types and their extended properties are fully configurable through the UI.
cp .env.example .env
# Edit .env — set JWT_SECRET to a random string >= 32 chars
# First run: install sqlx-cli and create the database
cargo install sqlx-cli --no-default-features --features sqlite
sqlx database create
sqlx migrate run
cargo run
# -> http://localhost:3000 (login: admin / changeme)cp .env.example .env
# Edit .env and Caddyfile (set your LAN hostname)
docker compose up -d
# -> https://yourdomain.local (HTTPS via Caddy with internal cert)- Keyboard-navigable DOS/terminal-style interface
- 13 pre-configured collection types with type-specific extended fields
- Add custom collection types and custom fields through the UI
- Photos attached to items, thumbnail generation
- Asset tags (MIKU-XXXXXXXX) — scan via camera to look up items
- Quick search across all fields; filter by type, condition, location
- Hierarchical location system (room > shelf > box)
- Collection statistics: item counts, total value, breakdowns by type and condition
- Barcode/JAN lookup stub — ready to wire up to any lookup API
- Full JSON backup export / import
- REST API with Swagger UI at
/api/docs - API key auth for external clients (mobile app, kiosk)
- HTTPS via Caddy
| Variable | Default |
|---|---|
DATABASE_URL |
sqlite:///data/collection.db |
JWT_SECRET |
required, min 32 chars |
DATA_DIR |
/data |
HOST |
0.0.0.0 |
PORT |
3000 |
ADMIN_USERNAME |
admin |
ADMIN_PASSWORD |
changeme |
Rust / Axum 0.7 / SQLite (SQLx) / SvelteKit (static)