HashHive is a distributed password cracking platform that orchestrates hashcat across multiple agents in a LAN environment. Built with the MERN stack (MongoDB, Express, React, Node.js) and TypeScript throughout.
hashhive/
├── backend/ # Node.js + Express API server
├── frontend/ # Next.js + React web UI
├── shared/ # Shared TypeScript types
├── openapi/ # API specifications
└── docs/ # Documentation
- Node.js 20+ and npm 10+
- Docker and Docker Compose
- Git
- just (optional, for convenient command running)
npm installdocker compose up -dThis starts:
- MongoDB on port 27017
- Redis on port 6379
- MinIO on ports 9000 (API) and 9001 (Console)
# Backend
cp backend/.env.example backend/.env
# Frontend
cp frontend/.env.example frontend/.env# Start both backend and frontend
npm run dev
# Or start individually
npm run dev -w backend
npm run dev -w frontend- Backend API: http://localhost:3001
- Frontend UI: http://localhost:3000
- MinIO Console: http://localhost:9001 (minioadmin/minioadmin)
Use just for common commands (or run npm scripts directly):
# Development
just dev # Start all services
just dev-backend # Start backend only
just dev-frontend # Start frontend only
# Building
just build # Build all packages
just build-backend # Build backend only
just build-frontend # Build frontend only
# Testing
just test # Run all tests
just test-backend # Backend tests
just test-frontend # Frontend tests
just test-integration # Integration tests
just test-e2e # E2E tests
# Code Quality
just lint # Lint all packages
just format # Format code with Prettier
just type-check # TypeScript type checking
# Docker
just docker-up # Start services
just docker-down # Stop services
just docker-logs # View logs
# Or use npm scripts directly
npm run dev # Start all services
npm run build # Build all packages
npm run test # Run all tests- TypeScript: Strict mode enabled with shared base config
- ESLint: Consistent rules across all packages
- Prettier: Automated code formatting (TypeScript, JavaScript, JSON, Markdown, YAML)
- Jest: Unit and integration testing
- Playwright: E2E testing for frontend
HashHive follows a monorepo structure with:
- Backend: Express API with Mongoose ODM, BullMQ for queues, Pino for logging
- Frontend: Next.js with App Router, shadcn/ui components, React Query for data fetching
- Shared: Common TypeScript types and Zod schemas
- Primary database for all application data
- Mongoose ODM with TypeScript support
- Health checks and automatic reconnection
- BullMQ job queues for task distribution
- Session storage
- Caching layer
- S3-compatible object storage
- Stores hash lists, wordlists, and other binary artifacts
- Development alternative to AWS S3
# Run all tests
npm test
# Backend unit tests
npm run test -w backend
# Backend integration tests (requires Docker)
npm run test:integration -w backend
# Frontend component tests
npm run test -w frontend
# E2E tests
npm run test:e2e -w frontendSee the docs/ directory for:
- MERN migration proposal
- Implementation plans
- Architecture decisions
- API specifications
This is a test/development project based on the CipherSwarm architecture, and is relicensed under the Apache-2.0 license.