Skip to content
forked from lelylan/lelylan

Open Source Lightweight Microservices Architecture for the Internet of Things. For developers.

Notifications You must be signed in to change notification settings

devtuitt/lelylan

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lelylan. Open Source Internet of Things

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.

Lelylan Logo

Why Lelylan

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.

Resources

Getting Started

Requirements

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

Setup

Development

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.

Production

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.

Roadmap

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.

Contributing to Lelylan

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.

Support

Use the available communication channels to communicate your ideas, problems or suggestions.

License

Lelylan is licensed under the Apache License, Version 2.0.

About

Open Source Lightweight Microservices Architecture for the Internet of Things. For developers.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published