74 lines
2.3 KiB
Markdown
74 lines
2.3 KiB
Markdown
# SPORE Gateway Documentation
|
|
|
|
Welcome to the SPORE Gateway documentation. This directory contains detailed documentation for various features and capabilities of the gateway.
|
|
|
|
## Available Documentation
|
|
|
|
### [MQTT Integration](./MQTT.md)
|
|
Comprehensive guide to the MQTT integration feature, including:
|
|
- Setting up MQTT integration
|
|
- Message format and handling
|
|
- Testing with local MQTT brokers
|
|
- Architecture and data flow
|
|
- Troubleshooting and best practices
|
|
|
|
### [Rollout Process](./Rollout.md)
|
|
Detailed documentation for the firmware rollout system:
|
|
- Parallel firmware updates across multiple nodes
|
|
- WebSocket progress updates
|
|
- Integration with spore-registry
|
|
- API endpoints and message formats
|
|
|
|
## Quick Links
|
|
|
|
- **Main README**: [../README.md](../README.md)
|
|
- **Hack Directory**: [../hack/README.md](../hack/README.md)
|
|
- **Testing Scripts**: [../hack/](../hack/)
|
|
|
|
## Feature Overview
|
|
|
|
### Core Features
|
|
- UDP-based node discovery
|
|
- Cluster management and primary node selection
|
|
- HTTP API server for cluster operations
|
|
- WebSocket real-time updates
|
|
- Failover logic for automatic primary switching
|
|
- Generic proxy calls to SPORE nodes
|
|
|
|
### Integration Features
|
|
- **MQTT Integration**: Subscribe to MQTT topics and forward messages to WebSocket clients
|
|
- **Firmware Rollout**: Orchestrated firmware updates across the cluster
|
|
- **Registry Proxy**: Proxy for spore-registry firmware management
|
|
|
|
## Getting Started
|
|
|
|
1. **Basic Setup**: See [Main README](../README.md) for installation and basic usage
|
|
2. **MQTT Integration**: See [MQTT.md](./MQTT.md) for MQTT setup and testing
|
|
3. **Testing**: See [Hack README](../hack/README.md) for local testing tools
|
|
|
|
## Development
|
|
|
|
The gateway is written in Go and follows modern Go best practices:
|
|
- Structured logging using logrus
|
|
- Graceful shutdown handling
|
|
- Concurrent-safe operations
|
|
- HTTP middleware for CORS and logging
|
|
- WebSocket support for real-time updates
|
|
|
|
## Contributing
|
|
|
|
When adding new features:
|
|
1. Update relevant documentation in this directory
|
|
2. Add examples to the `hack/` directory
|
|
3. Update the main README with feature highlights
|
|
4. Follow the existing documentation style and structure
|
|
|
|
## Support
|
|
|
|
For questions or issues:
|
|
- Check the relevant documentation in this directory
|
|
- Review gateway logs for error messages
|
|
- Use testing tools in the `hack/` directory
|
|
- Check the main README for troubleshooting tips
|
|
|