Lelylan is an iot cloud platform based on a lightweight microservices architecture.
Lelylan platform is both hardware-agnostic and platform-agnostic. This means you can connect any hardware, from the ESP8266 to the most professional embedded hardware solution and everything in between - and it can run on any public cloud or in your own private datacenter, or even a hybrid environment, whether virtualized or on bare metal.
Research in the Internet of Things is global and growing fast, but lacks standard tools. Many companies are building their own solution. By sharing what we have learned during the years, we want to create a shared code base with a clear focus to developers. To see Lelylan in action checkout the tutorials in the dev center.
- Architecture (request life cycle)
- Internet of Things API (how it works)
- Lelylan Blog (latest from the team)
Lelylan is tested against the techs below.
- Ruby MRI ~1.9.3
- Node ~0.8.8
- MongoDB ~2.6
- Redis ~2.6
Remember to run MongoDB and Redis.
$ mongod
$ redis-server
Lelylan is composed by different microservices. Follow the installation guidelines for each of them to setup the platform in development.
Microservice | Description |
---|---|
API Proxy | Proxy API |
Devices API | Device monitoring and control |
Types API | Device type structure |
Subscriptions API | Realtime subscription |
Profiles API | Profile information |
OAuth 2.0 | User authentication and authorization |
Physical Proxy | Forward requests to the physical world |
MQTT Node | Forward and receive MQTT requests |
MQTT Server | MQTT server/broker |
Webhooks | Realtime HTTP notification |
Websockets | Full-duplex communication over TCP |
If everything works ok, access Lelylan APIs from http://0.0.0.0:8200
. You can now connect your hardware.
In production every microservice needs to set the following environment variables. Remember to change them to your own microservices, mongodb, redis and cache values.
Environment Variable | Description |
---|---|
RACK_ENV=production |
Production rack environment |
RAILS_ENV=production |
Production rails environment |
NODE_ENV=production |
Production node environment |
LELYLAN_PEOPLE_URL=people.lelylan.com |
OAuth 2.0 microservice URL |
LELYLAN_DEVICES_URL=devices.lelylan.com |
Devices API microservice URL |
LELYLAN_TYPES_URL=types.lelylan.com |
Types API microservice URL |
LELYLAN_SUBSCRIPTIONS_URL=subscriptions.lelylan.com |
Subs. API microservice URL |
LELYLAN_PROFILES_URL=profiles.lelylan.com |
Profiles API microservice URL |
MONGOLAB_PEOPLE_URL=mongodb://<user>:<pass>@<host>:<port>/<name> |
OAuth 2.0 MongoDB URL |
MONGOLAB_DEVICES_URL=mongodb://<user>:<pass>@<host>:<port>/<name> |
Devices API MongoDB URL |
MONGOLAB_TYPES_URL=mongodb://<user>:<pass>@<host>:<port>/<name> |
Types API MongoDB URL |
MONGOLAB_JOBS_URL=mongodb://<user>:<pass>@<host>:<port>/<name> |
Event Bus MongoDB URL |
MONGOLAB_SUBSCRIPTIONS_URL=mongodb://<user>:<pass>@<host>:<port>/<name> |
Subs. MongoDB URL |
MEMCACHIER_SERVERS=<host>:<port> |
Cache server |
MEMCACHIER_USERNAME=<username> |
Cache server username |
MEMCACHIER_PASSWORD=<password> |
Cache server password |
REDIS_URL |
Background Job Redis URL |
REDIS_RATE_LIMIT_URL=redis://<user>:<pass>@<host>:<port>/ |
Late Limit Redis URL |
We are studying solutions like Docker, Mesos, and Ansible to simplify the installation process. If you are experimenting in the same area, get in touch with us.
The Roadmap provides description of items that the project decided to prioritize. This should serve as a reference point for Lelylan contributors to understand where the project is going, and help determine if a contribution could be conflicting with some longer terms plans.
The fact that a feature isn't listed here doesn't mean that a patch for it will automatically be refused (we also miss important things). We are always happy to receive patches for new cool features we haven't thought about, or didn't judge priority. However understand that such patches might take longer for us to review.
Checkout the roadmap to see our near future goals.
This Contributing document tries to define a contributor's guide explaining how to contribute to one or more Lelylan Microservice. It contains information about reporting issues as well as some tips and guidelines useful to experienced open source contributors.
Checkout the contributing to help us with Lelylan.
Use the available communication channels to communicate your ideas, problems or suggestions.
Lelylan is licensed under the Apache License, Version 2.0.