{"id":18090770,"url":"https://github.com/chirpstack/chirpstack-packet-multiplexer","last_synced_at":"2025-04-06T03:06:25.893Z","repository":{"id":52636618,"uuid":"155831632","full_name":"chirpstack/chirpstack-packet-multiplexer","owner":"chirpstack","description":"Forward Semtech packet-forwarder data to multiple servers.","archived":false,"fork":false,"pushed_at":"2025-01-13T13:47:16.000Z","size":118,"stargazers_count":73,"open_issues_count":7,"forks_count":41,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-04-06T02:26:21.613Z","etag":null,"topics":["chirpstack","lora","lorawan","network-server","packet-forwarder","udp"],"latest_commit_sha":null,"homepage":"https://www.chirpstack.io","language":"Rust","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/chirpstack.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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,"publiccode":null,"codemeta":null},"funding":{"github":"chirpstack"}},"created_at":"2018-11-02T07:46:43.000Z","updated_at":"2025-03-22T00:35:21.000Z","dependencies_parsed_at":"2024-10-31T18:05:07.747Z","dependency_job_id":"0fd1437a-2a13-4554-9034-253b09daa179","html_url":"https://github.com/chirpstack/chirpstack-packet-multiplexer","commit_stats":{"total_commits":24,"total_committers":4,"mean_commits":6.0,"dds":0.125,"last_synced_commit":"d622b2d0e573d2b7afb4098c78133916d5d1517d"},"previous_names":["brocaar/lora-packet-multiplexer","chirpstack/chirpstack-packet-multiplexer","brocaar/chirpstack-packet-multiplexer"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chirpstack%2Fchirpstack-packet-multiplexer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chirpstack%2Fchirpstack-packet-multiplexer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chirpstack%2Fchirpstack-packet-multiplexer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chirpstack%2Fchirpstack-packet-multiplexer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chirpstack","download_url":"https://codeload.github.com/chirpstack/chirpstack-packet-multiplexer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247427006,"owners_count":20937201,"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":["chirpstack","lora","lorawan","network-server","packet-forwarder","udp"],"created_at":"2024-10-31T18:04:58.977Z","updated_at":"2025-04-06T03:06:25.861Z","avatar_url":"https://github.com/chirpstack.png","language":"Rust","readme":"# ChirpStack Packet Multiplexer\n\nThe ChirpStack Packet Multiplexer makes it possible to connect gateways using\nthe [Semtech UDP packet-forwarder protocol](https://github.com/Lora-net/packet_forwarder/blob/master/PROTOCOL.TXT)\nto multiple servers, with the option to mark servers as uplink only.\n\n## Install\n\n### Debian / Ubuntu\n\nChirpStack provides a repository that is compatible with the\nDebian / Ubuntu apt package system. First make sure that both `dirmngr` and\n`apt-transport-https` are installed:\n\n```\nsudo apt install apt-transport-https dirmngr\n```\n\nSet up the key for this new repository:\n\n```\nsudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1CE2AFD36DBCCA00\n```\n\nAdd the repository to the repository list by creating a new file:\n\n```\nsudo echo \"deb https://artifacts.chirpstack.io/packages/4.x/deb stable main\" | sudo tee /etc/apt/sources.list.d/chirpstack.list\n```\n\nUpdate the apt package cache and install `chirpstack-packet-multiplexer`:\n\n```\nsudo apt update\nsudo apt install chirpstack-packet-multiplexer\n```\n\nTo complete the installation, update the configuration file which is located\nat `/etc/chirpstack-packet-multiplexer/chirpstack-packet-multiplexer.toml` and (re)start\nthe service:\n\n```\nsudo systemctl restart chirpstack-packet-multiplexer\n```\n\n## Building from source\n\n### Requirements\n\nBuilding ChirpStack Packet Multiplexer requires:\n\n* [Nix](https://nixos.org/download.html)\n* [Docker](https://www.docker.com/)\n\n#### Nix\n\nNix is used for setting up the development environment which is used for local\ndevelopment and for creating the binaries.\n\nIf you do not have Nix installed and do not wish to install it, then you can\nalso replicate the development environment by installing the packages listed\nin `shell.nix` manually.\n\n#### Docker\n\nDocker is used by [cross-rs](https://github.com/cross-rs/cross) for cross-compiling,\nas well as some of the `make` commands.\n\n### Starting the development shell\n\nRun the following command to start the development shell:\n\n```bash\nnix-shell\n```\n\n### Running tests\n\nExecute the following command to run the tests:\n\n```bash\nmake test\n```\n\n### Building binaries\n\nExecute the following commands to build the ChirpStack Packet Multiplexer binaries\nand packages:\n\n```bash\n# Only build binaries\nmake build\n\n# Build binaries + distributable packages.\nmake dist\n```\n\n## Usage\n\nRun `chirpstack-packet-multiplexer --help` for usage information.\n\n## Example configuration\n\nExecuting `chirpstack-packet-multiplexer configfile` returns the following configuration\ntemplate:\n\n```toml\n# Logging settings.\n[logging]\n\n  # Log level.\n  #\n  # Valid options are:\n  #   * TRACE\n  #   * DEBUG\n  #   * INFO\n  #   * WARN\n  #   * ERROR\n  level = \"info\"\n\n\n# Multiplexer configuration.\n[multiplexer]\n\n  # Interface:port of UDP bind.\n  #\n  # This this is the interface:port on which the Multiplexer will receive\n  # data from the gateways.\n  bind = \"0.0.0.0:1700\"\n\n  # Servers to forward gateway data to.\n  #\n  # Example configuration:\n  # [[multiplexer.server]]\n\n  #   # Hostname:port of the server.\n  #   server=\"example.com:1700\"\n\n  #   # Only allow uplink.\n  #   #\n  #   # If set to true, any downlink will be discarded.\n  #   uplink_only=false\n\n  #   # Gateway ID prefix filters.\n  #   #\n  #   # If not set, data of all gateways will be forwarded. If set, only data\n  #   # from gateways with a matching Gateway ID will be forwarded.\n  #   #\n  #   # Examplex:\n  #   # * \"0102030405060708/32\": Exact match (all 32 bits of the filter must match)\n  #   # * \"0102030400000000/16\": All gateway IDs starting with \"01020304\" (filter on 16 most significant bits)\n  #   gateway_id_prefixes=[]\n\n\n# Monitoring configuration.\n[monitoring]\n\n  # Interface:port.\n  #\n  # If set, this will enable the monitoring endpoints. If not set, the endpoint\n  # will be disabled. Endpoints:\n  #\n  # * /metrics: Exposes Prometheus metrics.\n  bind = \"\"\n```\n\n## Docker Compose example\n\n```\nservices:\n  chirpstack-packet-multiplexer:\n    image: chirpstack/chirpstack-packet-multiplexer:4.0.0-test.2\n    command: -c /etc/chirpstack-packet-multiplexer/chirpstack-packet-multiplexer.toml\n    ports:\n      - 1700:1700/udp\n    volumes:\n      - ./config:/etc/chirpstack-packet-multiplexer\n```\n\nThe above example assumes that you have a local configuration directory named\n`config` which contains a `chirpstack-packet-multiplexer.toml` file.\n\n## Changelog\n\n### v4.0.0\n\n* Refactor code from Go to Rust.\n* Allow Gateway ID prefix filtering.\n* Forward all gateways in case `gateway_id_prefixes` is empty.\n* Expose Prometheus metrics.\n\n### v3.1.0\n\nThis release renames LoRa Packet Multiplexer to ChirpStack Packet Multiplexer.\nSee the [Rename Announcement](https://www.chirpstack.io/r/rename-announcement) for more information.\n\n### v3.0.2\n\n* Fix setting of configuration variable (used to resolve if backend allows downlink).\n\n### v3.0.1\n\n* Auto-lowercase configured gateway IDs.\n\n### v3.0.0\n\n* Initial release (part of LoRa Server v3 repository).\n\n## License\n\nChirpStack Packet Multiplexer is distributed under the MIT license. See also\n[LICENSE](https://github.com/chirpstack/chirpstack-packet-multiplexer/blob/master/LICENSE).\n","funding_links":["https://github.com/sponsors/chirpstack"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchirpstack%2Fchirpstack-packet-multiplexer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchirpstack%2Fchirpstack-packet-multiplexer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchirpstack%2Fchirpstack-packet-multiplexer/lists"}