A modern, beautiful web interface for ADS-B aircraft tracking - built to replace the outdated ModeSMixer2 interface.
ModeSMixer2 has been the go-to solution for ADS-B tracking for years, but let's be honest - it's ugly and outdated. MM2-Next is a complete reimagination of aircraft tracking interfaces, built with modern web technologies to provide:
- 🎨 Beautiful, modern UI with dark mode and glassmorphism effects
- 📊 Rich flight data from FlightAware API (routes, times, gates, terminals)
- 🗺️ Interactive Google Maps with aircraft markers and trajectories
✈️ Detailed aircraft info from ADS-B DB (photos, registration, airline)- 🌍 100+ countries with ICAO address lookup and flag emojis
- 📈 Real-time updates via WebSocket connection
- 🎯 Flight progress tracking with visual progress bars
- 🏢 Airline logos for professional appearance
- Live aircraft positions from dump1090 JSON API
- WebSocket updates every second
- Aircraft trails showing flight paths
- Home station marker on map
- Route Details: Origin → Destination with IATA codes
- Times: Scheduled, Estimated, and Actual departure/arrival
- Gates & Terminals: Complete airport facility information
- Baggage Claim: Arrival baggage carousel numbers
- Flight Progress: Visual progress bar with elapsed/remaining time
- Codeshares: Display of codeshare flight numbers
- Photos: High-quality aircraft images from ADS-B DB
- Registration: Aircraft tail number
- Type: Aircraft model and manufacturer
- Airline: Operating airline with logo
- Country: Registration country with flag emoji
- Vertical Speed: Climb/descent indicators with arrows
- Unit Settings: Switch between Metric and Imperial units
- Compact Layout: Optimized for information density
- Responsive Design: Works on desktop and mobile
- Dark Theme: Easy on the eyes for night operations
-
dump1090 or compatible decoder running and accessible on your network
- Must have JSON API enabled (port 8080)
- Supported decoders:
- dump1090-fa (FlightAware)
- dump1090-mutability
- readsb
- fr24feed (FlightRadar24's dump1090)
- If you're already feeding FlightRadar24, you're all set!
-
Google Maps API Key
- Get one from Google Cloud Console
- Enable Maps JavaScript API
-
FlightAware AeroAPI Key (optional but recommended)
- Sign up at FlightAware AeroAPI
- Requires credit card for registration
- Free tier: $5/month credit (no charge for usage within limit)
- Pricing: $0.005 per flight query (~1000 free queries/month)
- Usage above free tier will be billed to your card
-
Clone the repository
git clone https://github.com/yourusername/mm2-next.git cd mm2-next -
Install dependencies
npm install
-
Configure environment variables
cp .env.sample .env
Edit
.envwith your settings:GOOGLE_MAPS_API_KEY=your_google_maps_api_key LOCATION=27.2579:33.8116 # Your receiver location (lat:lon) DUMP1090_HOST=192.168.3.7 # Your dump1090 host DUMP1090_JSON_PORT=8080 # dump1090 JSON API port FLIGHTAWARE_API_KEY=your_flightaware_key # Optional, but recommended
-
Run the development server
npm run dev
-
Open your browser
http://localhost:8082
The easiest way to run MM2-Next is using Docker:
-
Edit environment file
# Edit .env.docker with your settings nano .env.dockerRequired settings:
GOOGLE_MAPS_API_KEY=your_google_maps_api_key LOCATION=27.2579:33.8116 DUMP1090_HOST=192.168.3.7 DUMP1090_JSON_PORT=8080 FLIGHTAWARE_API_KEY=your_flightaware_key # Optional
-
Run with Docker Compose
docker-compose up -d
-
Access the application
http://localhost:8082 -
View logs
docker-compose logs -f
-
Stop the application
docker-compose down
Using pre-built image from Docker Hub:
docker pull docker.io/ysukharenko/mm2-next:latestThe Docker image supports multiple platforms:
linux/amd64- x86_64 (Regular PCs, Intel/AMD)linux/arm64- ARM64 (Raspberry Pi 4/5, Apple Silicon)linux/arm/v7- ARMv7 (Raspberry Pi 3) - Supported via Next.js 15
Note: This project uses Next.js 15 instead of Next.js 16 to maintain compatibility with ARM v7 (Raspberry Pi 3). Next.js 16's Turbopack requires WASM bindings not available on ARMv7.
Docker will automatically pull the correct image for your platform.
Automated Builds:
Docker images are automatically built and published via GitHub Actions on every release:
- Push to
mainbranch → buildslatesttag - Create release tag (e.g.,
v1.0.0) → builds versioned tags (1.0.0,1.0,1,latest)
Manual build (for development):
# Local build for testing
docker build -t mm2-next .
# Multi-platform build (requires buildx)
./build-docker.sh v1.0.0npm run build
npm start- Framework: Next.js 15 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- Maps: Google Maps JavaScript API (@vis.gl/react-google-maps)
- Icons: Lucide React
- Real-time: Socket.IO
- HTTP Client: node-fetch
- Caching: node-cache
-
dump1090 - Real-time ADS-B aircraft positions
- Position (lat/lon)
- Altitude, Speed, Heading
- Vertical Rate
- Squawk code
- Flight trails
-
FlightAware AeroAPI v4 - Flight route information
- Origin/Destination airports
- Scheduled/Estimated/Actual times
- Gates, Terminals, Baggage claim
- Flight status
- Codeshare information
- Operating airline
-
ADS-B DB - Aircraft database
- Aircraft photos
- Registration details
- Aircraft type
- Manufacturer
- Airline information
-
ICAO Address Lookup - Country identification
- 100+ countries supported
- Flag emojis
- ISO country codes
-
Airline Logos - Visual branding
- 1400+ airline logos
- Cached locally for performance
- Interactive map with aircraft markers
- Real-time position updates
- Aircraft trails
- Aircraft photo and information
- Flight route with progress bar
- Departure/Arrival times and gates
- Airline logo and country flag
- Unit system toggle (Metric/Imperial)
- Persistent preferences
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License - feel free to use this project for personal or commercial purposes.
- dump1090 community for the excellent ADS-B decoder
- FlightAware for their comprehensive flight data API
- ADS-B DB for aircraft database
- Jxck-S for the airline logos repository
- All ADS-B enthusiasts who made this hobby possible
If you encounter any issues or have questions, please open an issue on GitHub.
Built with ❤️ for the ADS-B community
