OpenGTS
OpenGTS (Open GPS Tracking System) is one of the earliest open-source GPS tracking platforms, originally developed by GeoTelematic Solutions. It provides a web-based interface for tracking and managing GPS-equipped devices, primarily targeting fleet management and asset tracking applications.
Overview
OpenGTS is a Java-based application designed to run on standard servlet containers (Tomcat, Jetty). It was one of the first open-source projects to offer a complete GPS tracking solution with a web interface, database storage, and device communication support.
- Website: opengts.org
- GitHub: OpenGTS/OpenGTS
- Language: Java
- License: Apache License 2.0
- Initial Release: 2007
- Database: MySQL (primary), with experimental PostgreSQL support
Architecture
OpenGTS follows a traditional Java web application architecture:
┌─────────────────────────────────────────────┐
│ Web Interface │
│ (JSP/Servlet + Track Maps) │
├─────────────────────────────────────────────┤
│ Application Layer │
│ (Event Data, Account Management) │
├─────────────────────────────────────────────┤
│ Data Layer │
│ (MySQL Database) │
├─────────────────────────────────────────────┤
│ Device Communication │
│ (DCS - Device Communication Server) │
└─────────────────────────────────────────────┘
The system consists of several core components:
- GTS: Main web application for viewing tracks and managing accounts
- DCS (Device Communication Server): Handles incoming GPS data from devices
- Track: Map visualization module
Key Features
| Feature | Description |
|---|---|
| Multi-device Support | Supports numerous GPS protocols including GT06, TK103, H02, and custom formats |
| Account Management | Multi-user, multi-account system with role-based access |
| Track Visualization | Map-based track display using OpenStreetMap or Google Maps |
| Geofencing | Define virtual boundaries and receive entry/exit alerts |
| Reports | Generate trip reports, speed reports, and stop reports |
| API Access | XML/JSON API for integration with external systems |
| Custom Fields | Extensible device and event data schema |
Supported Protocols
OpenGTS includes built-in support for several GPS device communication protocols:
| Protocol | Device Types | Communication |
|---|---|---|
| Gv06 | Queclink GV300 series | TCP |
| H02 | Various Chinese GPS devices | TCP/UDP |
| TK103 | Coban and clones | TCP |
| Meitrack | Meitrack devices | TCP |
| MTA | Custom protocol | TCP |
| Spot | SPOT satellite tracker | HTTP |
New protocols can be added by implementing custom DeviceCommAdapter classes.
Installation
Prerequisites
- Java JDK 8 or later
- MySQL 5.7+ or MariaDB 10.2+
- Apache Tomcat 8.5+ or similar servlet container
- Apache Ant (for building from source)
Basic Setup
# Clone repository
git clone https://github.com/OpenGTS/OpenGTS.git
cd OpenGTS
# Build with Ant
ant all
# Initialize database
mysql -u root -p < sql/initDatabase.sql
# Deploy WAR to Tomcat
cp build/gts.war $CATALINA_HOME/webapps/
Configuration
Key configuration files:
| File | Purpose |
|---|---|
private.xml | Database credentials and site settings |
custom.conf | Custom properties and overrides |
DCS_*.xml | Device communication server configurations |
Strengths
- Mature codebase: Over 15 years of development and deployment history
- Extensive protocol support: Built-in adapters for many popular GPS devices
- Multi-tenant: Full account and user management system
- Self-contained: Single deployment package with embedded database option
- Documentation: Comprehensive setup guides and API documentation
Limitations
| Limitation | Impact |
|---|---|
| Legacy UI | Interface feels dated compared to modern web applications |
| Java overhead | Higher resource requirements than lightweight alternatives |
| MySQL dependency | Limited database flexibility |
| Development pace | Slower update cycle compared to newer projects |
| Mobile support | No native mobile applications |
Comparison with Traccar
| Aspect | OpenGTS | Traccar |
|---|---|---|
| Language | Java | Java |
| UI Framework | JSP/Servlet | Angular (modern SPA) |
| Protocol Support | ~20 | 2000+ |
| Mobile App | ❌ | ✅ (iOS & Android) |
| REST API | XML/JSON | Full REST |
| Active Development | Slower | Very active |
| Community | Smaller | Large |
| Resource Usage | Higher | Lower |
When to Choose OpenGTS
OpenGTS remains a viable option for:
- Legacy integrations: Existing systems already built on OpenGTS
- Learning: Understanding GPS tracking system architecture from a simpler codebase
- Specific protocols: When the exact device protocol is well-supported
- Customization: When deep modifications to the tracking engine are required
For new deployments with modern requirements, Traccar or OpenFMS generally offer better value with more active development and modern interfaces.
Resources
- Official Documentation: OpenGTS Documentation
- Source Code: GitHub Repository
- Discussion Group: OpenGTS Google Group