This monorepo contains all services and packages for the GameDAO Battlepass system rewrite.
packages/: Core services and shared librariesservices/: External integration adaptersdocs/: Architecture, requirements, and design documentsdocker/: Docker-related configurationsk8s/: Kubernetes manifestsscripts/: Utility scripts.github/: GitHub Actions workflows
- Node.js: v20.x or higher
- pnpm: v8.x or higher
- Podman or Docker: For containerized services
- PostgreSQL: 16 or higher (or use container)
- Redis: 7 or higher (or use container)
- RabbitMQ: 3.x or higher (or use container)
-
Install pnpm:
npm install -g pnpm
-
Install dependencies:
make install # or pnpm install -
Start infrastructure services:
make up # or ./scripts/dev-start.sh -
Run database migrations:
make db-migrate # or pnpm db:migrate -
Build all packages:
make build # or pnpm build -
Start development:
make dev # or pnpm dev
See make help for all available commands:
make install- Install all dependenciesmake build- Build all packagesmake test- Run all testsmake lint- Lint all packagesmake format- Format all codemake clean- Clean all build artifactsmake up- Start infrastructure servicesmake down- Stop all servicesmake logs- View service logsmake db-migrate- Run database migrationsmake db-studio- Open Prisma Studio
pnpm build- Build all packagespnpm test- Run all testspnpm lint- Lint all packagespnpm format- Format all codepnpm dev- Start development modepnpm db:generate- Generate Prisma clientpnpm db:migrate- Run Prisma migrationspnpm db:studio- Open Prisma Studio
We follow Conventional Commits for commit messages.
<type>(<scope>): <subject>
<body>
<footer>
pnpm commitThis will guide you through creating a properly formatted commit message.
See CONTRIBUTING.md for detailed commit guidelines.
We use Semantic Versioning (SemVer) with automated releases via semantic-release.
Versions are automatically determined from commit messages:
feat:→ minor version bumpfix:→ patch version bumpBREAKING CHANGE:→ major version bump
The CHANGELOG.md is automatically generated from commit messages.
- GraphQL API (Apollo Server v4)
- Health check endpoints
- Port: 3000
- Identity management
- OAuth integration (Discord, Twitter, Epic Games)
- SBT issuance and verification
- Account Abstraction (ERC-4337)
- Port: 3001
- PostgreSQL: Port 5432
- Redis: Port 6379
- RabbitMQ: Port 5672 (Management UI: http://localhost:15672)
make db-generate- Generate Prisma clientmake db-migrate- Run migrationsmake db-studio- Open Prisma Studiomake db-seed- Seed database
Refer to the docs/ directory for detailed architecture, design, and implementation plans.
See LICENSE file.