Skip to content

dborovcanin/magistrala

 
 

Repository files navigation

Magistrala

A Modern IoT Platform Built on SuperMQ

Scalable • Secure • Open-Source

Check License Header Continuous Delivery Go Report Card Coverage License Matrix

Made with ❤️ by Abstract Machines

Introduction 🌍

Magistrala is a cutting-edge, open-source IoT cloud platform built on top of SuperMQ. It serves as a robust middleware solution for building complex IoT applications. With Magistrala, you can connect and manage IoT devices seamlessly using multi-protocol support, all while ensuring security and scalability.

Key Benefits:

  • Unified IoT Management: Connect sensors, actuators, and applications over various network protocols.
  • Scalability and Performance: Designed to handle enterprise-grade IoT deployments.
  • Secure by Design: Features such as mutual TLS authentication and fine-grained access control.
  • Open-Source Freedom: Patent-free, community-driven, and designed for extensibility.

✨ Features

  • 🏢 Multi-Tenancy: Support for managing multiple independent domains seamlessly.
  • 👥 Multi-User Platform: Unlimited organizational hierarchies and user roles for streamlined collaboration.
  • 🌐 Multi-Protocol Connectivity: HTTP, MQTT, WebSocket, CoAP, and more (see contrib repository for LoRa and OPC UA).
  • 💻 Device Management and Provisioning: Including Zero-Touch provisioning for seamless device onboarding.
  • 🛡️ Mutual TLS Authentication (mTLS): Secure communication using X.509 certificates.
  • 📜 Fine-Grained Access Control: Support for ABAC and RBAC policies.
  • 💾 Message Persistence: Timescale and PostgreSQL support (see contrib repository for Cassandra, InfluxDB, and MongoDB).
  • 🔄 Rules Engine (RE): Automate processes with flexible rules for decision-making.
  • 🚨 Alarms and Triggers: Immediate notifications for critical IoT events.
  • 📅 Scheduled Actions: Plan and execute tasks at predefined times.
  • 📝 Audit Logs: Maintain a detailed history of platform activities for compliance and debugging.
  • 📊 Platform Logging and Instrumentation: Integrated with Prometheus and OpenTelemetry.
  • Event Sourcing: Streamlined architecture for real-time IoT event processing.
  • 🐳 Container-Based Deployment: Fully compatible with Docker and Kubernetes.
  • 🌍 Edge and IoT Ready: Agent and Export services for managing remote IoT gateways.
  • 🛠️ Developer Tools: Comprehensive SDK and CLI for efficient development.
  • 🏗️ Domain-Driven Design: High-quality codebase and extensive test coverage.

🔧 Install

Clone the repository and start the services:

git clone https://github.com/absmach/magistrala.git
cd magistrala
docker compose -f docker/docker-compose.yml --env-file docker/.env up

Alternatively, use the Makefile for a simpler command:

make run

📤 Usage

Using the CLI:

Check the health of a specific service using the CLI:

make cli
./build/cli health <service>

Replace <service> with the name of the service you want to check.

Using Curl:

Alternatively, use a simple HTTP GET request to check the platform's health:

curl -X GET http://localhost:8080/health

For additional usage examples and advanced configurations, visit the official documentation.

📚 Documentation

Complete documentation is available at the Magistrala official docs page.

For CLI usage details, visit the CLI Documentation.

🌐 Community and Contributing

Join the community and contribute to the future of IoT middleware:

📜 License

Magistrala is open-source software licensed under the Apache-2.0 license. Contributions are welcome and encouraged!

💼 Professional Support

Need help deploying Magistrala or integrating it into your systems? Contact Abstract Machines for expert guidance and support.

About

Event-driven architecture infrastructure

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 90.3%
  • Shell 6.4%
  • Makefile 2.1%
  • Other 1.2%