Overview
This guide walks you through the complete installation process for Masar Eagle. Choose between local development or production deployment based on your needs.Before proceeding, ensure you have completed the Prerequisites setup.
Quick Start
Get Masar Eagle running in under 5 minutes:Run with .NET Aspire
- Start the Aspire orchestration dashboard
- Launch all microservices
- Provision PostgreSQL, RabbitMQ, and monitoring tools
- Open the dashboard at
http://localhost:8080
Access Services
- Aspire Dashboard: http://localhost:8080
- API Gateway: http://localhost:8080/api
- pgAdmin: http://localhost:5050
- RabbitMQ Management: http://localhost:15672
- Grafana: http://localhost:3000
- Jaeger: http://localhost:16686
Installation Methods
Local Development
Run with .NET Aspire for development
Docker Deployment
Deploy using Docker Compose
Aspire Deployment
Deploy with .NET Aspire publish
Kubernetes
Deploy to Kubernetes cluster
Local Development
Step 1: Clone and Navigate
Step 2: Restore Dependencies
Step 3: Configure AppHost
The AppHost is pre-configured but can be customized:Step 4: Run the Application
- Using .NET CLI
- Using Visual Studio
- Using Rider
- Using VS Code
Step 5: Verify Installation
Check Aspire Dashboard
Open http://localhost:8080 to see the Aspire orchestration dashboard.You should see:
- All services in “Running” state
- PostgreSQL and RabbitMQ healthy
- No error logs
Service Configuration
Architecture Overview
Masar Eagle consists of the following services:Gateway
YARP-based API Gateway
- Routes requests to services
- Service discovery
- Load balancing
Identity
Authentication Service
- OpenIddict integration
- JWT token generation
- User authentication
Users
User Management
- Driver profiles
- Passenger profiles
- Company management
Trips
Trip Management
- Booking system
- Wallet management
- Trip scheduling
Notifications
Notification Service
- Firebase Cloud Messaging
- Push notifications
- Device token management
Service Dependencies
The AppHost configures service dependencies and startup order:AppHost.cs (excerpt)
All services automatically wait for their dependencies to be healthy before starting.
Database Migrations
Automatic Migrations
Masar Eagle uses FluentMigrator for database migrations. Migrations run automatically on service startup:Manual Migration Control
- Apply Migrations
- Rollback Migrations
- View Migration Status
Monitoring Setup
OpenTelemetry Configuration
All services are configured with OpenTelemetry for observability:Access Monitoring Tools
Prometheus - Metrics
Prometheus - Metrics
Grafana - Dashboards
Grafana - Dashboards
URL: http://localhost:3000Pre-configured dashboards for:
- Service metrics
- Database performance
- RabbitMQ statistics
- Business metrics
Jaeger - Distributed Tracing
Jaeger - Distributed Tracing
URL: http://localhost:16686View request traces across all services:
- Request flow visualization
- Performance bottlenecks
- Error tracking
Loki - Log Aggregation
Loki - Log Aggregation
URL: http://localhost:3100Access via Grafana Explore:
- Centralized logs from all services
- Log filtering and searching
- Log correlation with traces
Troubleshooting
Port Conflicts
Port Conflicts
If you encounter port conflicts:
Database Connection Errors
Database Connection Errors
If services can’t connect to PostgreSQL:
Service Not Starting
Service Not Starting
Check the Aspire dashboard logs:
RabbitMQ Connection Issues
RabbitMQ Connection Issues
Environment-Specific Setup
Development Environment
Staging Environment
Production Environment
See Aspire Deployment or Docker Deployment for production setup.Next Steps
Configuration
Configure environment variables and settings
Docker Deployment
Deploy using Docker Compose
Aspire Deployment
Production deployment with Aspire
Additional Resources
.NET Aspire Docs
Official .NET Aspire documentation
Architecture Overview
Learn about Masar Eagle architecture