Giter Site home page Giter Site logo

m-gregoire / lorawan-stack Goto Github PK

View Code? Open in Web Editor NEW

This project forked from thethingsnetwork/lorawan-stack

0.0 3.0 0.0 14.66 MB

The Things Network Stack for LoRaWAN V3

License: Apache License 2.0

Go 85.46% Makefile 0.99% JavaScript 11.66% Shell 0.06% Dockerfile 0.02% HTML 0.01% CSS 1.81%

lorawan-stack's Introduction

The Things Network Stack for LoRaWAN

Build Status Coverage Status

The Things Network Stack for LoRaWAN is an open-source LoRaWAN network stack suitable for large, global and geo-distributed public and private networks as well as smaller networks. The architecture follows the LoRaWAN Network Reference Model for standards compliancy and interoperability.

LoRaWAN is a protocol for low-power wide area networks. It allows for large scale Internet of Things deployments where low-powered devices efficiently communicate with Internet-connected applications over long range wireless connections.

Features

  • LoRaWAN Network Server
    • Supports LoRaWAN 1.1
    • Supports LoRaWAN 1.0, 1.0.1, 1.0.2 and 1.0.3
    • Supports LoRaWAN Regional Parameters 1.0, 1.0.2 rev B, 1.0.3 rev A, 1.1 rev A and B
    • Supports Class A devices
    • Supports Class B devices
    • Supports Class C devices
    • Supports OTAA devices
    • Supports ABP devices
    • Supports MAC Commands
    • Supports Adaptive Data Rate
    • Implements LoRaWAN Back-end Interfaces 1.0
  • LoRaWAN Application Server
    • Payload conversion of well-known payload formats
    • Payload conversion using custom JavaScript functions
    • MQTT pub/sub API
    • HTTP Webhooks API
    • Implements LoRaWAN Back-end Interfaces 1.0
  • LoRaWAN Join Server
    • Supports OTAA session key derivation
    • Supports external crypto services
    • Implements LoRaWAN Back-end Interfaces 1.0
  • OAuth 2.0 Identity Server
    • User management
    • Entity management
    • ACLs
  • GRPC APIs
  • HTTP APIs
  • Command-Line Interface
    • Create account and login
    • Application management and traffic
    • End device management, status and traffic
    • Gateway management and status
  • Web Interface (Console)
    • Create account and login
    • Application management and traffic
    • End device management, status and traffic
    • Gateway management, status and traffic

Getting Started

You want to get started? Fantastic! Here's an extensive Getting Started guide.

The easiest way to set up a private network is with the provided docker-compose.yml.

  1. Prerequisites
    • Make sure you have Docker and Docker Compose installed.
    • Make sure you have a TLS certificate and key ready. We'll expect a cert.pem and key.pem. For development, you can generate self-signed certificates with make dev.certs.
  2. Pull the Docker images:
    docker-compose pull
  3. Initialize the database:
    docker-compose run --rm stack is-db init
  4. Create the admin user:
    docker-compose run --rm stack is-db create-admin-user \
      --id admin --email [email protected]
    You can choose a different user ID if you want. If you do, make sure to use that for owner below.
  5. Register the CLI as an OAuth client:
    docker-compose run --rm stack is-db create-oauth-client \
      --id cli --name "Command Line Interface" --no-secret \
      --owner admin \
      --redirect-uri 'http://localhost:11885/oauth/callback' \
      --redirect-uri '/oauth/code'
  6. Register the Console as an OAuth client:
    docker-compose run --rm stack is-db create-oauth-client \
      --id console --name "Console" \
      --owner admin \
      --redirect-uri 'http://example.com:1885/console/oauth/callback' \
      --redirect-uri 'https://example.com:8885/console/oauth/callback'
    Make sure to copy the value of the secret that is printed by this command.
  7. Export the Console's OAuth client secret or replace it in your docker-compose.yml:
    export TTN_LW_CONSOLE_OAUTH_CLIENT_SECRET=<PASTE SECRET HERE>
  8. Run the Stack:
    docker-compose up

Read the full Getting Started guide here

Documentation

Support

  • The forums contain a massive amount of information and has great search
  • You can chat on Slack, an invite can be requested from your account page
  • Hosted solutions, as well as commercial support and consultancy are offered by The Things Industries

lorawan-stack's People

Contributors

adriansmares avatar bafonins avatar egourlao avatar gomezjdaniel avatar htdvisser avatar johanstokking avatar kschiffer avatar m-gregoire avatar romeovs avatar rvolosatovs avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.