{"id":13627552,"url":"https://github.com/gotthardp/lorawan-server","last_synced_at":"2025-05-16T04:04:33.673Z","repository":{"id":38206729,"uuid":"64390612","full_name":"gotthardp/lorawan-server","owner":"gotthardp","description":"Compact server for private LoRaWAN networks","archived":false,"fork":false,"pushed_at":"2023-11-25T15:22:26.000Z","size":5122,"stargazers_count":973,"open_issues_count":173,"forks_count":335,"subscribers_count":94,"default_branch":"master","last_synced_at":"2025-04-08T14:09:18.094Z","etag":null,"topics":["erlang","lora","lorawan","lorawan-server"],"latest_commit_sha":null,"homepage":"https://gotthardp.github.io/lorawan-server","language":"Erlang","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gotthardp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2016-07-28T11:39:00.000Z","updated_at":"2025-03-25T15:50:58.000Z","dependencies_parsed_at":"2022-08-05T07:30:14.053Z","dependency_job_id":"1dba3261-4a0c-4b3f-9073-d883ac2fa3d4","html_url":"https://github.com/gotthardp/lorawan-server","commit_stats":null,"previous_names":[],"tags_count":37,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gotthardp%2Florawan-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gotthardp%2Florawan-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gotthardp%2Florawan-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gotthardp%2Florawan-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gotthardp","download_url":"https://codeload.github.com/gotthardp/lorawan-server/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254464893,"owners_count":22075570,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["erlang","lora","lorawan","lorawan-server"],"created_at":"2024-08-01T22:00:35.520Z","updated_at":"2025-05-16T04:04:33.626Z","avatar_url":"https://github.com/gotthardp.png","language":"Erlang","funding_links":[],"categories":["LoRaWAN","Libraries","LoRaWAN Servers"],"sub_categories":["Tools"],"readme":"# Compact server for private LoRaWAN networks\n\nOpen-source LoRaWAN Server that integrates both the network-server and the application-server.\nThis is useful for application providers that operate their own LoRaWAN network,\nor for device and application developers.\n\n**Warning** This is a development version 0.7.0. Use the stable 0.6.x instead, please.\nAfter a major version upgrade you are required to review and complete\nthe configuration before connecting any gateway or device!\n * After migrating to 0.7.x you need to\n   - Remove the `/admin` suffix from *Server* -\u003e *Admin URL*.\n   - Make sure all Gateways are assigned to an Area with a specified Region.\n * After migrating from version 0.5.x to 0.6.x you need to assign Profiles to\n   Groups and Gateways to Areas.\n * Migrating from version 0.4.x to 0.5.x will preserve the Device/Node addresses\n   and security keys, but will delete many ADR parameters, which got moved to the\n   Profile settings.\n\nThe server:\n * Implements the LoRaWAN Specification v1.0.3\n * Communicates with (any number of) remote LoRaWAN gateways. It currently supports:\n   * Gateways based on the [Packet Forwarder](https://github.com/Lora-net/packet_forwarder),\n     such as the Semtech LoRa demo kit,\n     [LoRa Lite Gateway](https://wireless-solutions.de/products/long-range-radio/lora_lite_gateway.html),\n     [LORANK-8](http://webshop.ideetron.nl/LORANK-8),\n     [MultiConnect Conduit](http://www.multitech.com/brands/multiconnect-conduit),\n     or [Kerlink Wirnet Stations](http://www.kerlink.fr/en/products/lora-iot-station-2/wirnet-station-868)\n   * Gateways using the [Basic Station](https://doc.sm.tc/station/) [LNS Protocol](https://doc.sm.tc/station/tcproto.html)\n * Performs all required encryption and integrity checks.\n   * Supports relaxed frame-counter check for simple ABP devices.\n * Invokes internal modules with application logic. It provides examples for:\n   * [Semtech/IMST LoRaMote](http://webshop.imst.de/loramote-lora-evaluation-tool.html)\n   * [Microchip LoRa(TM) Technology Mote](http://www.microchip.com/Developmenttools/ProductDetails.aspx?PartNO=dm164138)\n     (via an [external plug-in](https://github.com/gotthardp/lorawan-server-demoapp))\n * Automatically parses well-known payload formats. It currently supports:\n   * [Cayenne Low Power Payload](https://github.com/myDevicesIoT/cayenne-docs/blob/master/docs/LORA.md#cayenne-low-power-payload)\n   * [Concise Binary Object Representation (CBOR)](https://tools.ietf.org/rfc/rfc7049.txt)\n * Stores uplink data directly to a MongoDB collection.\n * Invokes external applications. It currently supports connections via:\n   * WebSocket protocol [RFC6455](https://tools.ietf.org/rfc/rfc6455.txt)\n   * HTTP/1.1 and HTTP/2 protocol (REST API)\n   * [MQTT v3.1/v3.1.1](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html),\n     including applications hosted in\n     [Amazon AWS IoT](https://aws.amazon.com/iot/),\n     [IBM Watson IoT Platform](https://www.ibm.com/cloud-computing/bluemix/internet-of-things),\n     [MathWorks ThingSpeak](https://thingspeak.com/),\n     [Microsoft Azure IoT Hub](https://azure.microsoft.com/en-us/services/iot-hub/),\n     [ThingsBoard Open-source IoT Platform](https://thingsboard.io),\n     [Adafruit IO](https://io.adafruit.com/),\n     or [Orange Live Objects](https://liveobjects.orange-business.com)\n   * AMQP 0-9-1 to the [RabbitMQ](http://www.rabbitmq.com/)\n * Handles (any number of) Class A or Class C devices.\n   * Supports both the node activation by personalization (ABP) and the\n     over-the-air activation (OTAA).\n   * Supports both unconfirmed and confirmed data uplink and downlink.\n   * Supports multicast to user-defined groups.\n   * Supports all regions standardized in LoRaWAN 1.0.3 Regional Parameters for\n     Europe, US, China, Australia, Asia, South Korea, India and Russia.\n * Provides a network management interface.\n   * Supports both manual and automatic configuration of data rate (ADR) and other parameters.\n   * Monitors the server, gateways and node health status and displays device\n     battery and connection quality indicators.\n   * Can send health alerts via e-mail or Slack.\n * Runs on all major operating systems, including Windows, Linux, OS X and Solaris,\n   even on [embedded systems](doc/Embedded.md) like Raspbian, mLinux and other\n   Yocto/OpenEmbedded systems, OpenWrt or in a [Docker container](doc/Docker.md).\n * Can establish [Clusters](doc/Cluster.md) for high availability.\n * Does not crash as it's implemented in [Erlang](https://www.erlang.org/), which is\n   designed for building fault-tolerant systems.\n * Is free, distributed under the MIT license.\n\nThe server aims to be an all-in-one software package for small private LoRaWAN\nnetworks. However:\n * You still need to buy your LoRaWAN Gateway.\n * You will need to deploy and maintain it yourself. (With my support.)\n * It will probably never support the sophisticated management features of the\n   commercial-grade network-servers.\n\nThe maximum amount of gateways, devices and nodes the server can support depends\non the server load and hardware performance. There are no hard limits.\n\nThe API may change and some functions may not be implemented.\nTo ask questions or request features please join the\n[lorawan-server mailing list](https://groups.google.com/forum/#!forum/lorawan-server).\nWe will gladly assist you. If you find a bug, you may also\n[add an Issue](https://github.com/gotthardp/lorawan-server/issues/new).\n\n\n## Documentation\n\nThe lorawan-server includes all functions required to run a private LoRaWAN network.\nIt integrates your LoRaWAN network directly with your backend IT systems.\nThe server is provided as a comprehensive package with a single configuration file\nand a single administration tool.\nYou only need to install the [Erlang/OTP](http://www.erlang.org) 21.0 or higher.\n\nThe main components of the lorawan-server are shown in the following figure:\n\n![alt tag](https://raw.githubusercontent.com/gotthardp/lorawan-server/master/doc/images/system-architecture.png)\n\n### Usage\n\nThe server behaviour is described in the [Introduction](doc/Introduction.md).\n\nThe [Installation Instructions](doc/Installation.md) describe how to build,\ninstall and upgrade the server. You can use a Debian package, download the binary\nrelease and run it manually or build the server from source codes.\n\nFollow the [Configuration Instructions](doc/Configuration.md) to correctly\nsetup your server.\n\nRun the lorawan-server release by:\n```bash\ncd lorawan-server\nbin/lorawan-server\n```\n\nDon't forget to set the server address and port (by default 1680) in the LoRaWAN\ngateways you want to use with the server.\n\nYou can terminate the lorawan-server by:\n```bash\nbin/lorawanctl stop\n```\n\nYou can administrate and manage the server via a set of web-pages or via a REST API\nas described in the [Administration Guide](doc/Administration.md). By default you\ncan access the administration at http://*server*:8080, using \"admin\" as both\nusername and password. After the installation you have to:\n * Change the default password to something more secure.\n * Set parameters of your **Network** and add LoRaWAN **Gateways** you want to use.\n * Define the device **Profiles**, one for each device type that you will have.\n * Configure each device you want to use, either as a personalized **Node** (ABP)\n   or as an **Commissioned** and over-the-air activated (OTAA) device.\n\n### Integration\n\nYou can integrate lorawan-server with external applications using Backend\n[Handlers](doc/Handlers.md) and [Connectors](doc/Connectors.md). Instructions on\nhow to integrate with some major clouds such as AWS or Azure are provided in the\n[Integration Guide](doc/Integration.md).\n\nYou can also use the internal web server and develop internal applications, which\nmay offer custom REST APIs. The lorawan-server is designed to be highly extensible.\nI encourage you to [Learn You Some Erlang](http://learnyousomeerlang.com/introduction)\nand develop your own modules.\n\nTo implement an internal application you need to create a new module implementing the\n`lorawan_application` behaviour as described in the\n[Custom Application Guide](doc/Applications.md) and [Development Guide](doc/Development.md).\n\n### Troubleshooting\n[![Build Status](https://travis-ci.org/gotthardp/lorawan-server.svg?branch=master)](https://travis-ci.org/gotthardp/lorawan-server)\n\nFirst of all, please read the documentation.\n\nIf the server doesn't do what you expect, please review the server logs and consult the\n[Troubleshooting Instructions](doc/Troubleshooting.md) for the most common problems.\n\nIf the problem persists, please verify you have the latest version. I recommend\nto always use the [latest release](https://github.com/gotthardp/lorawan-server/releases).\nIf you use the [latest sources](https://github.com/gotthardp/lorawan-server/commits/master),\nplease verify the \"build\" icon above is green and then try upgrading by running:\n\n```bash\ncd lorawan-server\ngit pull\nmake upgrade\nmake release\n```\n\nIf the \"build\" icon above is red, please wait few minutes (or hours) until it\ngets green again.\n\nIf nothing helps, please contact the\n[lorawan-server mailing list](https://groups.google.com/forum/#!forum/lorawan-server)\nor review the existing\n[issues](https://github.com/gotthardp/lorawan-server/issues) to verify the\nproblem was not already reported and then\n[create new issue](https://github.com/gotthardp/lorawan-server/issues/new).\n\n### Public References\n\nThe server is used (both commercially and non-commercially) by various companies\nand institutions. It was mentioned by the following blogs and articles:\n * [Three reasons for creating an Open Source LoRaWan server](http://research.konicaminolta.eu/three-reasons-for-creating-an-open-source-lorawan-server)\n * [LoraWAN server running on OpenWrt/LEDE](http://matchx.io/community/box/5-lorawan-server-running-on-the-box)\n * [Espruino RN2483 LoRa Modules](http://www.espruino.com/RN2483)\n * [1-Gate LoRaWAN Gateway COMPACT](http://www.1-gate.com/english/lorawan-gateways)\n * [LoRaWAN evaluation by Witekio](https://witekio.com/blog/lorawan-dedicated-iot-network)\n * [Сергей Гаевский: Построение корпоративной сети LoRaWAN](http://controlengrussia.com/besprovodny-e-tehnologii/korporativnoj-seti-lorawan), in Беспроводные технологии №3’17\n\nPlease let me know if you use the lorawan-server and want to be listed here.\n\n\n## Copyright and Licensing\n\nThe lorawan-server is distributed under the terms of the MIT License.\nSee the [LICENSE](LICENSE).\n\nCopyright (c) 2016-2019 Petr Gotthard\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgotthardp%2Florawan-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgotthardp%2Florawan-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgotthardp%2Florawan-server/lists"}