itemdb is a database of information about Neopets items. It is built using Next.js, MySQL and Prisma
- Docker (for the database)
- Node.js 22+
- Yarn
1. Clone the repo and install dependencies
git clone https://github.com/lucca180/itemdb.git
cd itemdb
yarn
npx prisma generate2. Configure environment variables
cp .env.default .env.localThe defaults in .env.local work out of the box with the Docker database. No changes are needed for a basic local setup. See .env.default for optional features (image uploads, Redis, email, etc.).
3. Start the database
docker compose up -dThis starts a MariaDB 11 container (itemdb-db) on localhost:3306.
4. Run database migrations
npx prisma migrate dev5. Seed the database
The seed script creates two local test users and optionally imports item data dumps.
npx prisma db seedTo also import item data, download the dumps from the Public Data page and place them inside the prisma/ folder. The seed will automatically detect and import files named in this format, in this order:
prisma/items[_<timestamp>].sql
prisma/itemcolor[_<timestamp>].sql
prisma/itemprices[_<timestamp>].sql
The Docker container must be running when the seed executes.
6. Start the app
yarn devYour local copy of itemdb will be available at http://localhost:3000.
After seeding, two accounts are available — use the magic-link login flow (the link is printed to your terminal):
| Role | |
|---|---|
admin@itemdb.dev |
ADMIN |
user@itemdb.dev |
USER |
# MariaDB CLI inside the container
docker exec -it itemdb-db mariadb -u db_user -pdb_pass itemdb
# Or connect any GUI client (TablePlus, DBeaver, etc.) to:
# Host: localhost Port: 3306 User: db_user Password: db_pass Database: itemdbIf you want to test something that isn't disclosed here you can reach us via Feedback