Prerequisites
Ensure the following are installed on your machine:| Tool | Version | Purpose |
|---|---|---|
| Node.js | 20+ | JavaScript runtime |
| pnpm | 9+ | Package manager |
| Docker | 24+ | Local services (DB, Redis, etc.) |
| Docker Compose | v2+ | Service orchestration |
| Git | 2.40+ | Version control |
| Bun | 1.1+ | WebSocket server runtime |
Step-by-Step Setup
Start Infrastructure Services
- PostgreSQL 16 on port 5432
- Redis 7 on port 6379
- MinIO (S3-compatible storage) on port 9000 (console: 9001)
- Meilisearch on port 7700
- Mailpit (email testing) on port 8025
Configure Environment
.env.example is pre-configured for local development. Review and adjust if needed:Set Up the Database
Start the Dev Servers
- Web app: http://localhost:3000
- WebSocket server: ws://localhost:3001
- Storybook: http://localhost:6006
- Mintlify docs: http://localhost:3003
Seed Data Credentials
After seeding, you can log in with these test accounts:| Password | Role | |
|---|---|---|
admin@example.com | password123 | Owner |
member@example.com | password123 | Member |
guest@example.com | password123 | Guest |
demo.localhost:3000.
Common Commands
Troubleshooting
Port already in use
Port already in use
If port 3000 is taken, modify the
PORT env variable or stop the conflicting process:Database connection refused
Database connection refused
Ensure Docker is running and the PostgreSQL container is healthy:
pnpm install fails
pnpm install fails
Clear the pnpm store and retry: