English | 简体中文 | 繁體中文 | 한국어 | Русский | Tiếng Việt | 日本語
PieMDM is a powerful and user-friendly open-source Master Data Management (MDM) system designed for enterprise data governance. Built with Go backend and Vue.js frontend, it provides comprehensive data management, governance, and integration capabilities.
Project Website: https://pieteams.github.io/piemdm/
- Data Management & Integration
- Master Data Modeling
- Data Governance
- System Integration
- Access Control
- Workflow Management
- Go 1.24.12+
- Node.js 20+
- MySQL 8.0+
- Redis 6+
git clone https://github.com/pieteams/piemdm.git
cd piemdm
git config pull.rebase truecd backend
# Install dependencies
go mod tidy
# Copy configuration file
cp config/local.yml.example config/local.yml
# Edit config/local.yml to configure database and other settings
# Run database migrations
go run cmd/migration/main.go
# Start backend service
go run cmd/server/main.gocd frontend
# Install dependencies
npm install
# or
pnpm install
# Start development server
npm run dev
# or
pnpm dev- Frontend: http://localhost:8081
- Backend API: http://localhost:8787
- API Documentation: http://localhost:8787/swagger/index.html
# Start all services
docker-compose -f deploy/docker-compose.yml up -d
# View logs
docker-compose -f deploy/docker-compose.yml logs -f
# Stop services
docker-compose -f deploy/docker-compose.yml down# Build backend image
docker build -f backend/Dockerfile -t piemdm-api:latest .
# Build frontend image
cd frontend
docker build -t piemdm-web:latest .Create a .env file in the root directory:
# Database
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=piemdm
# Redis
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=your_password
# JWT
JWT_SECRET=your_jwt_secret_key
# Application
APP_ENV=development
APP_PORT=8787CREATE DATABASE piemdm CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;API documentation is automatically generated using Swagger and can be accessed at:
- Development: http://localhost:8787/swagger/index.html
- Production: https://your-domain.com/swagger/index.html
cd backend
# Run all tests
make test
# Run tests with coverage
go test -cover ./...
# Generate mocks
make mockcd frontend
# Run unit tests
pnpm test
# Run e2e tests
npm run test:e2e# Build backend
cd backend
make build
# Build frontend
cd frontend
pnpm build- Development:
config/local.yml - Production:
config/prod.yml
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
- Follow Go best practices and conventions
- Use ESLint and Prettier for frontend code
- Write comprehensive tests
- Update documentation
This project is licensed under the MIT License - see the LICENSE file for details.
- 📧 Email: [jasen215@gmail.com]
- 🐛 Issues: GitHub Issues
- 💬 Discussions: GitHub Discussions
Thanks to all contributors and the open source community for making this project possible.
Star ⭐ this repository if you find it helpful!