├── .github └── FUNDING.yml ├── .gitignore ├── LICENSE ├── README.md ├── Vagrantfile ├── ansible.cfg ├── deploy.yml ├── group_vars └── chirpstack.example.yml ├── host_vars └── vagrant.yml ├── inventory.example └── roles ├── base └── tasks │ └── main.yml ├── chirpstack-ca ├── tasks │ └── main.yml └── templates │ ├── ca-config.json │ └── ca-csr.json ├── chirpstack-gateway-bridge-basicstation ├── handlers │ └── main.yml ├── tasks │ └── main.yml └── templates │ ├── chirpstack-gateway-bridge-basicstation-as923.toml │ ├── chirpstack-gateway-bridge-basicstation-as923_2.toml │ ├── chirpstack-gateway-bridge-basicstation-as923_3.toml │ ├── chirpstack-gateway-bridge-basicstation-as923_4.toml │ ├── chirpstack-gateway-bridge-basicstation-au915_0.toml │ ├── chirpstack-gateway-bridge-basicstation-au915_1.toml │ ├── chirpstack-gateway-bridge-basicstation-au915_2.toml │ ├── chirpstack-gateway-bridge-basicstation-au915_3.toml │ ├── chirpstack-gateway-bridge-basicstation-au915_4.toml │ ├── chirpstack-gateway-bridge-basicstation-au915_5.toml │ ├── chirpstack-gateway-bridge-basicstation-au915_6.toml │ ├── chirpstack-gateway-bridge-basicstation-au915_7.toml │ ├── chirpstack-gateway-bridge-basicstation-cn470_0.toml │ ├── chirpstack-gateway-bridge-basicstation-cn470_1.toml │ ├── chirpstack-gateway-bridge-basicstation-cn470_10.toml │ ├── chirpstack-gateway-bridge-basicstation-cn470_11.toml │ ├── chirpstack-gateway-bridge-basicstation-cn470_2.toml │ ├── chirpstack-gateway-bridge-basicstation-cn470_3.toml │ ├── chirpstack-gateway-bridge-basicstation-cn470_4.toml │ ├── chirpstack-gateway-bridge-basicstation-cn470_5.toml │ ├── chirpstack-gateway-bridge-basicstation-cn470_6.toml │ ├── chirpstack-gateway-bridge-basicstation-cn470_7.toml │ ├── chirpstack-gateway-bridge-basicstation-cn470_8.toml │ ├── chirpstack-gateway-bridge-basicstation-cn470_9.toml │ ├── chirpstack-gateway-bridge-basicstation-eu433.toml │ ├── chirpstack-gateway-bridge-basicstation-eu868.toml │ ├── chirpstack-gateway-bridge-basicstation-in865.toml │ ├── chirpstack-gateway-bridge-basicstation-kr920.toml │ ├── chirpstack-gateway-bridge-basicstation-ru864.toml │ ├── chirpstack-gateway-bridge-basicstation-us915_0.toml │ ├── chirpstack-gateway-bridge-basicstation-us915_1.toml │ ├── chirpstack-gateway-bridge-basicstation-us915_2.toml │ ├── chirpstack-gateway-bridge-basicstation-us915_3.toml │ ├── chirpstack-gateway-bridge-basicstation-us915_4.toml │ ├── chirpstack-gateway-bridge-basicstation-us915_5.toml │ ├── chirpstack-gateway-bridge-basicstation-us915_6.toml │ ├── chirpstack-gateway-bridge-basicstation-us915_7.toml │ ├── chirpstack-gateway-bridge-basicstation.service │ └── server-cert.json ├── chirpstack-gateway-bridge ├── handlers │ └── main.yml ├── tasks │ └── main.yml └── templates │ └── chirpstack-gateway-bridge.toml ├── chirpstack ├── handlers │ └── main.yml ├── tasks │ ├── gen_self_signed_cert.yml │ └── main.yml └── templates │ ├── chirpstack.nginx │ ├── chirpstack.toml │ └── server-cert.json ├── iptables ├── handlers │ └── main.yml └── tasks │ └── main.yml ├── letsencrypt └── tasks │ └── main.yml ├── mosquitto ├── handlers │ └── main.yml ├── tasks │ └── main.yml └── templates │ ├── acl │ ├── listeners.conf │ └── server-cert.json ├── nginx ├── handlers │ └── main.yml └── tasks │ └── main.yml ├── postgresql └── tasks │ ├── main.yml │ └── postgresql.yml └── redis └── tasks └── main.yml /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: chirpstack 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .* 2 | *.log 3 | *.retry 4 | 5 | inventory 6 | group_vars/chirpstack.yml 7 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2019 Orne Brocaar (www.brocaar.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ChirpStack stack setup (Ansible & Vagrant) 2 | 3 | This repository provides an [Ansible](https://www.ansible.com) playbook to 4 | setup the [ChirpStack](https://www.chirpstack.io/) open-source LoRaWAN Network Server (v4). 5 | With the included [Vagrant](https://www.vagrant.com) file, ChirpStack can also be setup 6 | locally inside a VM (e.g. using [VirtualBox](https://www.virtualbox.org)). 7 | 8 | It will: 9 | 10 | * Setup firewall rules (iptables) 11 | * Setup Mosquitto (MQTT broker) + client and server-certificate configuration 12 | * Setup Redis 13 | * Setup PostgreSQL + creation of role and database 14 | * Setup [ChirpStack Gateway Bridge](https://www.chirpstack.io/docs/chirpstack-gateway-bridge/) for UDP 15 | * Setup [ChirpStack Gateway Bridge](https://www.chirpstack.io/docs/chirpstack-gateway-bridge/) for Basics Station 16 | * Setup [ChirpStack](https://www.chirpstack.io/docs/chirpstack/) 17 | * Request a HTTPS certificate from [Let's Encrypt](https://letsencrypt.org) 18 | 19 | ## Vagrant (local environment using VirtualBox) 20 | 21 | ### Ports 22 | 23 | The included `Vagrantfile` will setup a Debian Bullseye (11.x) virtual 24 | machine with the latest ChirpStack components installed. It will also forward 25 | the following ports to your host system: 26 | 27 | * `4443`: ChirpStack UI and gRPC API (with TLS, e.g. [https://localhost:4443/](https://localhost:4443)) 28 | * `1700`: ChirpStack Gateway Bridge UDP listener (configured for EU868 region by default) 29 | * `3001`: ChirpStack Gateway Bridge Basics Station listener (configured for EU868 region by default, with TLS, client-certificate files can be generated in the ChirpStack UI) 30 | * `8883`: Mosquitto MQTT (with TLS, client-certificate files can be generated in the ChirpStack UI) 31 | 32 | Note: when using Vagrant, there is no need to install Ansible (this will be 33 | automatically installed inside the Vagrant machine). 34 | 35 | ### Requirements 36 | 37 | When setting up ChirpStack, make sure you have a recent 38 | version of [Vagrant](https://www.vagrantup.com) installed. 39 | 40 | Also make sure you have a recent version of [VirtualBox](https://www.virtualbox.org) 41 | installed, including the [VirtualBox Extension Pack](https://www.virtualbox.org/wiki/Downloads). 42 | 43 | ### Getting started 44 | 45 | 1. Update `host_vars/vagrant.yml` where needed. 46 | 47 | 2. Within the root of this repository execute the following command: 48 | 49 | ```bash 50 | vagrant up 51 | ``` 52 | 53 | As this will import the Vagrant box, install all requirements etc... this 54 | is going to take a while. 55 | 56 | 3. Configure your LoRa Gateway so that it points to the IP address of your 57 | computer (port `1700`). 58 | 59 | 4. Point your browser to https://localhost:4443/. As a self-signed certificate 60 | is used, your browser will prompt that the certificate can't be trusted. 61 | This is ok for testing. 62 | 63 | 5. For updating your Vagrant environment (e.g. updating the configuration or 64 | to upgrade installed packages, execute the following command: 65 | 66 | ```bash 67 | vagrant provision 68 | ``` 69 | 70 | 6. Other useful commands: 71 | 72 | ```bash 73 | # stop the vagrant machine 74 | vagrant halt 75 | 76 | # restart the vagrant machine 77 | vagrant reload 78 | 79 | # ssh into the vagrant machine 80 | vagrant ssh 81 | 82 | # destroy the vagrant machine 83 | vagrant destroy 84 | ``` 85 | 86 | ## Remote deployment 87 | 88 | This playbook has been tested on 89 | [DigitalOcean.com](https://m.do.co/c/6cd86e9f1cb8) but should also work on 90 | bare-metal, AWS, ... 91 | 92 | Don't have a DigitalOcean account yet? Use 93 | [this](https://m.do.co/c/6cd86e9f1cb8) link and get $10 in credits for free :-) 94 | 95 | ### Ports 96 | 97 | * `443`: ChirpStack UI and gRPC API (with TLS, e.g. https://subdomain.example.com/) 98 | * `1700`: ChirpStack Gateway Bridge UDP listener (configured for EU868 region by default) 99 | * `3001`: ChirpStack Gateway Bridge Basics Station listener (configured for EU868 region by default, with TLS, client-certificate files can be generated in the ChirpStack UI) 100 | * `8883`: Mosquitto MQTT (with TLS, client-certificate files can be generated in the ChirpStack UI) 101 | 102 | ### Requirements 103 | 104 | On the machine from where you will execute this Ansible playbook (e.g. your own 105 | computer), make sure you have Ansible 2.10+ installed. You can install Ansible with 106 | pip (`pip install ansible`) or using Homebrew (OS X) (`brew install ansible`). 107 | Refer to the [Ansible installation guide](http://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html) 108 | for more installation instructions. 109 | 110 | The Ansible playbook has been tested on the following images: 111 | 112 | * Debian 113 | * Bullseye (11.x) 114 | 115 | * Ubuntu 116 | * Jammy (22.04 LTS) 117 | 118 | ### Configuration 119 | 120 | 1. Create a new Debian Bullseye 11.x instance and make sure that from your own machine 121 | on which Ansible is installed, you can ssh to this machine using public-key 122 | authentication (e.g. `ssh user@ip`). 123 | 124 | 2. Configure a DNS record for your target instance and wait until this record 125 | resolves to your IP address. 126 | 127 | 3. Copy the `inventory.example` inside this repository to `inventory` and 128 | replace `example.com` with the hostname created in step 2. 129 | 130 | 4. Copy the `group_vars/chirpstack.example.yml` inside this repository to 131 | `group_vars/chirpstack.yml` and change the settings where needed. 132 | 133 | For more information, see also: 134 | 135 | * https://www.chirpstack.io/docs/ 136 | 137 | ### Provisioning 138 | 139 | Run the following command from your machine to deploy ChirpStack to your 140 | target instance, to upgrade to the latest versions or to update the 141 | configuration: 142 | 143 | ```bash 144 | ansible-playbook -i inventory deploy.yml 145 | ``` 146 | 147 | After the playbook has been completed, ChirpStack should be accessible from the domain you configured as fqdn in the `group_vars/chirpstack.yml`. 148 | -------------------------------------------------------------------------------- /Vagrantfile: -------------------------------------------------------------------------------- 1 | # -*- mode: ruby -*- 2 | # vi: set ft=ruby : 3 | 4 | Vagrant.configure("2") do |config| 5 | config.vm.define "vagrant" do |box| 6 | box.vm.box = "debian/bookworm64" 7 | 8 | box.vm.network "forwarded_port", guest: 80, host: 8080, protocol: "tcp" 9 | box.vm.network "forwarded_port", guest: 443, host: 4443, protocol: "tcp" 10 | box.vm.network "forwarded_port", guest: 8883, host: 8883, protocol: "tcp" 11 | box.vm.network "forwarded_port", guest: 3001, host: 3001, protocol: "tcp" 12 | box.vm.network "forwarded_port", guest: 1700, host: 1700, protocol: "udp" 13 | 14 | box.vm.provision "ansible_local" do |ansible| 15 | ansible.install = true 16 | ansible.playbook = "deploy.yml" 17 | ansible.config_file = "ansible.cfg" 18 | end 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /ansible.cfg: -------------------------------------------------------------------------------- 1 | [ssh_connection] 2 | pipelining = True 3 | -------------------------------------------------------------------------------- /deploy.yml: -------------------------------------------------------------------------------- 1 | - name: install python 2 | hosts: 3 | - chirpstack 4 | - vagrant 5 | become: 'yes' 6 | gather_facts: 'no' 7 | 8 | tasks: 9 | - name: install python-minimal 10 | raw: apt-get install -y python3-minimal 11 | 12 | - name: single-server ChirpStack setup 13 | hosts: 14 | - chirpstack 15 | - vagrant 16 | roles: 17 | - base 18 | - chirpstack-ca 19 | - iptables 20 | - nginx 21 | - letsencrypt 22 | - postgresql 23 | - redis 24 | - mosquitto 25 | - chirpstack-gateway-bridge 26 | - chirpstack-gateway-bridge-basicstation 27 | - chirpstack 28 | become: 'yes' 29 | -------------------------------------------------------------------------------- /group_vars/chirpstack.example.yml: -------------------------------------------------------------------------------- 1 | # iptable configuration 2 | # 3 | # All ports will be blocked, except the ports listed below. 4 | iptables: 5 | accept: 6 | - 7 | port: 22 8 | source: 0.0.0.0/0 9 | protocol: tcp 10 | - 11 | port: 80 12 | source: 0.0.0.0/0 13 | protocol: tcp 14 | - 15 | port: 443 16 | source: 0.0.0.0/0 17 | protocol: tcp 18 | - 19 | port: 8883 20 | source: 0.0.0.0/0 21 | protocol: tcp 22 | - 23 | port: 3001 24 | source: 0.0.0.0/0 25 | protocol: tcp 26 | - 27 | port: 1700 28 | source: 0.0.0.0/0 29 | protocol: udp 30 | 31 | # Apt configuration. 32 | apt: 33 | # Use ChirpStack repository. 34 | # If set to false, you must specify a package_url variable in the ChirpStack 35 | # components below. With the ChirpStack repo enabled, Ansible will always 36 | # install the latest version. 37 | use_chirpstack_repo: true 38 | 39 | # Mosquitto configuration (MQTT) 40 | mosquitto: 41 | # the full domain by which the MQTT broker is reachable 42 | # e.g. subdomain.example.com 43 | fqdn: subdomain.example.com 44 | 45 | # ChirpStack Gateway Bridge configuration 46 | chirpstack_gateway_bridge: 47 | # Region. 48 | # This is used as MQTT topic prefix, and must match one of the available 49 | # regions that are configured in the chirpstack.toml configuration file. 50 | region: eu868 51 | 52 | # ChirpStack Gateway Bridge configuration (Basics Station) 53 | chirpstack_gateway_bridge_basicstation: 54 | # Region. 55 | # This defines the configuration file that will be copied from the 56 | # roles/chirpstack-gateway-bridge-basicstation/templates directory. 57 | # The file copied will be equal to: 58 | # chirpstack-gateway-bridge-basicstation-[region].toml 59 | region: eu868 60 | 61 | # The full domain by which the ChirpStack Gateway Bridge Basics Station 62 | # backend is available. 63 | # e.g. subdomain.example.com 64 | fqdn: subdomain.example.com 65 | 66 | # ChirpStack configuration. 67 | chirpstack: 68 | # The full domain by which ChirpStack is reachable. 69 | # e.g. subdomain.example.com 70 | fqdn: subdomain.example.com 71 | 72 | # If enabled, a Let's Encrypt certificate will be configured. Else a 73 | # self-signed certificate will be used. 74 | letsencrypt: 75 | email: info@example.com 76 | request: false 77 | 78 | # API configuration. 79 | api: 80 | # You must replace this value! 81 | # To generate random secret: 82 | # openssl rand -base64 32 83 | secret: ReplaceMe 84 | 85 | # PostgreSQL database credentials. 86 | # The role and database will be created by Ansible. 87 | postgresql: 88 | db: chirpstack 89 | user: chirpstack 90 | password: chirpstack 91 | host: localhost 92 | -------------------------------------------------------------------------------- /host_vars/vagrant.yml: -------------------------------------------------------------------------------- 1 | # iptable configuration 2 | # 3 | # All ports will be blocked, except the ports listed below. 4 | iptables: 5 | accept: 6 | - 7 | port: 22 8 | source: 0.0.0.0/0 9 | protocol: tcp 10 | - 11 | port: 80 12 | source: 0.0.0.0/0 13 | protocol: tcp 14 | - 15 | port: 443 16 | source: 0.0.0.0/0 17 | protocol: tcp 18 | - 19 | port: 8883 20 | source: 0.0.0.0/0 21 | protocol: tcp 22 | - 23 | port: 3001 24 | source: 0.0.0.0/0 25 | protocol: tcp 26 | - 27 | port: 1700 28 | source: 0.0.0.0/0 29 | protocol: udp 30 | 31 | # Apt configuration. 32 | apt: 33 | # Use ChirpStack repository. 34 | # If set to false, you must specify a package_url variable in the ChirpStack 35 | # components below. With the ChirpStack repo enabled, Ansible will always 36 | # install the latest version. 37 | use_chirpstack_repo: true 38 | 39 | # Mosquitto configuration 40 | mosquitto: 41 | # the full domain by which the MQTT broker is reachable 42 | # e.g. subdomain.example.com 43 | fqdn: localhost 44 | 45 | # ChirpStack Gateway Bridge configuration (UDP) 46 | chirpstack_gateway_bridge: 47 | # Region. 48 | # This is used as MQTT topic prefix, and must match one of the available 49 | # regions that are configured in the chirpstack.toml configuration file. 50 | region: eu868 51 | 52 | # ChirpStack Gateway Bridge configuration (Basics Station) 53 | chirpstack_gateway_bridge_basicstation: 54 | # Region. 55 | # This defines the configuration file that will be copied from the 56 | # roles/chirpstack-gateway-bridge-basicstation/templates directory. 57 | # The file copied will be equal to: 58 | # chirpstack-gateway-bridge-basicstation-[region].toml 59 | region: eu868 60 | 61 | # The full domain by which the ChirpStack Gateway Bridge Basics Station 62 | # backend is available. 63 | # e.g. subdomain.example.com 64 | fqdn: localhost 65 | 66 | # ChirpStack configuration. 67 | chirpstack: 68 | # The full domain by which ChirpStack is reachable. 69 | # e.g. subdomain.example.com 70 | fqdn: localhost 71 | 72 | # If enabled, a Let's Encrypt certificate will be configured. Else a 73 | # self-signed certificate will be used. 74 | letsencrypt: 75 | email: info@example.com 76 | request: false 77 | 78 | # API configuration. 79 | api: 80 | # You must replace this value! 81 | # To generate random secret: 82 | # openssl rand -base64 32 83 | secret: ReplaceMe 84 | 85 | # PostgreSQL database credentials. 86 | # The role and database will be created by Ansible. 87 | postgresql: 88 | db: chirpstack 89 | user: chirpstack 90 | password: chirpstack 91 | host: localhost 92 | -------------------------------------------------------------------------------- /inventory.example: -------------------------------------------------------------------------------- 1 | [chirpstack] 2 | example.com ansible_ssh_user=root 3 | -------------------------------------------------------------------------------- /roles/base/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: upgrade installed packages 2 | ansible.builtin.apt: 3 | update_cache: 'yes' 4 | upgrade: 'yes' 5 | 6 | - name: install packages 7 | ansible.builtin.package: name={{ item }} state=latest 8 | with_items: 9 | - apt-transport-https 10 | - iptables-persistent 11 | - sudo 12 | - gpg 13 | - golang-cfssl 14 | 15 | - name: import ChirpStack gpg key 16 | ansible.builtin.apt_key: 17 | keyserver: keyserver.ubuntu.com 18 | id: 1CE2AFD36DBCCA00 19 | 20 | - name: add ChirpStack deb repository 21 | ansible.builtin.apt_repository: 22 | repo: deb https://artifacts.chirpstack.io/packages/4.x/deb stable main 23 | when: apt.use_chirpstack_repo 24 | -------------------------------------------------------------------------------- /roles/chirpstack-ca/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: create directory 2 | ansible.builtin.file: 3 | path: /etc/chirpstack-certs 4 | state: directory 5 | owner: root 6 | group: root 7 | mode: "0700" 8 | 9 | - name: copy configuration 10 | ansible.builtin.template: 11 | src: "{{ item }}" 12 | dest: "/etc/chirpstack-certs/{{ item }}" 13 | owner: root 14 | group: root 15 | mode: "0600" 16 | with_items: 17 | - ca-config.json 18 | - ca-csr.json 19 | 20 | - name: generate chirpstack ca 21 | ansible.builtin.shell: "cfssl gencert -initca ca-csr.json | cfssljson -bare /etc/chirpstack-certs/ca" 22 | args: 23 | chdir: /etc/chirpstack-certs 24 | creates: /etc/chirpstack-certs/ca.pem 25 | -------------------------------------------------------------------------------- /roles/chirpstack-ca/templates/ca-config.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | "signing": { 4 | "default": { 5 | "expiry": "8760h" 6 | }, 7 | "profiles": { 8 | "server": { 9 | "expiry": "8760h", 10 | "usages": [ 11 | "signing", 12 | "key encipherment", 13 | "server auth" 14 | ] 15 | } 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /roles/chirpstack-ca/templates/ca-csr.json: -------------------------------------------------------------------------------- 1 | { 2 | "CN": "ChirpStack CA", 3 | "key": { 4 | "algo": "rsa", 5 | "size": 4096 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: reload systemctl daemon 2 | ansible.builtin.systemd: 3 | daemon_reload: true 4 | 5 | - name: restart chirpstack-gateway-bridge-basicstation 6 | ansible.builtin.service: 7 | name: chirpstack-gateway-bridge-basicstation 8 | state: restarted 9 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: install chirpstack-gateway-bridge 2 | ansible.builtin.package: 3 | name: chirpstack-gateway-bridge 4 | state: latest 5 | when: apt.use_chirpstack_repo 6 | notify: 7 | - restart chirpstack-gateway-bridge-basicstation 8 | 9 | - name: install chirpstack-gateway-bridge from package_url 10 | ansible.builtin.apt: 11 | deb: "{{ chirpstack_gateway_bridge.package_url }}" 12 | when: not apt.use_chirpstack_repo 13 | notify: 14 | - restart chirpstack-gateway-bridge-basicstation 15 | 16 | - name: create certs directory 17 | ansible.builtin.file: 18 | path: /etc/chirpstack-gateway-bridge/certs 19 | state: directory 20 | owner: gatewaybridge 21 | group: gatewaybridge 22 | mode: "0700" 23 | 24 | - name: copy server cert config 25 | ansible.builtin.template: 26 | src: server-cert.json 27 | dest: /etc/chirpstack-gateway-bridge/certs/server-cert.json 28 | owner: gatewaybridge 29 | group: gatewaybridge 30 | mode: "0600" 31 | 32 | - name: generate server certificate 33 | ansible.builtin.shell: "cfssl gencert -ca /etc/chirpstack-certs/ca.pem -ca-key /etc/chirpstack-certs/ca-key.pem -config /etc/chirpstack-certs/ca-config.json -profile server server-cert.json | cfssljson -bare /etc/chirpstack-gateway-bridge/certs/server" 34 | args: 35 | chdir: /etc/chirpstack-gateway-bridge/certs 36 | notify: 37 | - restart chirpstack-gateway-bridge-basicstation 38 | 39 | - name: copy ca cert 40 | ansible.builtin.copy: 41 | src: /etc/chirpstack-certs/ca.pem 42 | dest: /etc/chirpstack-gateway-bridge/certs/ca.pem 43 | remote_src: "yes" 44 | owner: gatewaybridge 45 | group: gatewaybridge 46 | mode: "0600" 47 | notify: 48 | - restart chirpstack-gateway-bridge-basicstation 49 | 50 | - name: set certificate permissions 51 | ansible.builtin.file: 52 | path: /etc/chirpstack-gateway-bridge/certs 53 | state: directory 54 | recurse: "yes" 55 | owner: gatewaybridge 56 | group: gatewaybridge 57 | mode: "0600" 58 | 59 | - name: set certificate directory permissions 60 | ansible.builtin.file: 61 | path: /etc/chirpstack-gateway-bridge/certs 62 | state: directory 63 | owner: gatewaybridge 64 | group: gatewaybridge 65 | mode: "0700" 66 | 67 | - name: add systemd service 68 | ansible.builtin.template: 69 | src: chirpstack-gateway-bridge-basicstation.service 70 | dest: /lib/systemd/system/chirpstack-gateway-bridge-basicstation.service 71 | notify: 72 | - reload systemctl daemon 73 | 74 | - name: copy configuration 75 | ansible.builtin.template: 76 | src: "chirpstack-gateway-bridge-basicstation-{{ chirpstack_gateway_bridge_basicstation.region }}.toml" 77 | dest: /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge-basicstation.toml 78 | owner: gatewaybridge 79 | group: gatewaybridge 80 | mode: "0640" 81 | notify: 82 | - restart chirpstack-gateway-bridge-basicstation 83 | 84 | - name: start chirpstack-gateway-bridge-basicstation on boot 85 | ansible.builtin.service: 86 | name: chirpstack-gateway-bridge-basicstation 87 | state: started 88 | enabled: true 89 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-as923.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="AS923" 24 | frequency_min=915000000 25 | frequency_max=928000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 923200000, 33 | 923400000, 34 | 923600000, 35 | 923800000, 36 | 924000000, 37 | 924200000, 38 | 924400000, 39 | 924600000, 40 | ] 41 | 42 | [backend.basic_station.concentrators.lora_std] 43 | frequency=924500000 44 | bandwidth=250000 45 | spreading_factor=7 46 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-as923_2.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="AS923" 24 | frequency_min=915000000 25 | frequency_max=928000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 921400000, 33 | 921600000, 34 | 921800000, 35 | 922000000, 36 | 922200000, 37 | 922400000, 38 | 922600000, 39 | 922800000, 40 | ] 41 | 42 | [backend.basic_station.concentrators.lora_std] 43 | frequency=922700000 44 | bandwidth=250000 45 | spreading_factor=7 46 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-as923_3.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="AS923" 24 | frequency_min=915000000 25 | frequency_max=928000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 916600000, 33 | 916800000, 34 | 917000000, 35 | 917200000, 36 | 917400000, 37 | 917600000, 38 | 917800000, 39 | 918000000, 40 | ] 41 | 42 | [backend.basic_station.concentrators.lora_std] 43 | frequency=917900000 44 | bandwidth=250000 45 | spreading_factor=7 46 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-as923_4.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="AS923" 24 | frequency_min=915000000 25 | frequency_max=928000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 917300000, 33 | 917500000, 34 | 917700000, 35 | 917900000, 36 | 918100000, 37 | 918300000, 38 | 918500000, 39 | 918700000, 40 | ] 41 | 42 | [backend.basic_station.concentrators.lora_std] 43 | frequency=918600000 44 | bandwidth=250000 45 | spreading_factor=7 46 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-au915_0.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="AU915" 24 | frequency_min=915000000 25 | frequency_max=928000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 915200000, 33 | 915400000, 34 | 915600000, 35 | 915800000, 36 | 916000000, 37 | 916200000, 38 | 916400000, 39 | 916600000, 40 | ] 41 | 42 | [backend.basic_station.concentrators.lora_std] 43 | frequency=915900000 44 | bandwidth=500000 45 | spreading_factor=8 46 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-au915_1.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="AU915" 24 | frequency_min=915000000 25 | frequency_max=928000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 916800000, 33 | 917000000, 34 | 917200000, 35 | 917400000, 36 | 917600000, 37 | 917800000, 38 | 918000000, 39 | 918200000, 40 | ] 41 | 42 | [backend.basic_station.concentrators.lora_std] 43 | frequency=917500000 44 | bandwidth=500000 45 | spreading_factor=8 46 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-au915_2.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="AU915" 24 | frequency_min=915000000 25 | frequency_max=928000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 918400000, 33 | 918600000, 34 | 918800000, 35 | 919000000, 36 | 919200000, 37 | 919400000, 38 | 919600000, 39 | 919800000, 40 | ] 41 | 42 | [backend.basic_station.concentrators.lora_std] 43 | frequency=919100000 44 | bandwidth=500000 45 | spreading_factor=8 46 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-au915_3.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="AU915" 24 | frequency_min=915000000 25 | frequency_max=928000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 920000000, 33 | 920200000, 34 | 920400000, 35 | 920600000, 36 | 920800000, 37 | 921000000, 38 | 921200000, 39 | 921400000, 40 | ] 41 | 42 | [backend.basic_station.concentrators.lora_std] 43 | frequency=920700000 44 | bandwidth=500000 45 | spreading_factor=8 46 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-au915_4.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="AU915" 24 | frequency_min=915000000 25 | frequency_max=928000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 921600000, 33 | 921800000, 34 | 922000000, 35 | 922200000, 36 | 922400000, 37 | 922600000, 38 | 922800000, 39 | 923000000, 40 | ] 41 | 42 | [backend.basic_station.concentrators.lora_std] 43 | frequency=922300000 44 | bandwidth=500000 45 | spreading_factor=8 46 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-au915_5.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="AU915" 24 | frequency_min=915000000 25 | frequency_max=928000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 923200000, 33 | 923400000, 34 | 923600000, 35 | 923800000, 36 | 924000000, 37 | 924200000, 38 | 924400000, 39 | 924600000, 40 | ] 41 | 42 | [backend.basic_station.concentrators.lora_std] 43 | frequency=923900000 44 | bandwidth=500000 45 | spreading_factor=8 46 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-au915_6.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="AU915" 24 | frequency_min=915000000 25 | frequency_max=928000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 924800000, 33 | 925000000, 34 | 925200000, 35 | 925400000, 36 | 925600000, 37 | 925800000, 38 | 926000000, 39 | 926200000, 40 | ] 41 | 42 | [backend.basic_station.concentrators.lora_std] 43 | frequency=925500000 44 | bandwidth=500000 45 | spreading_factor=8 46 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-au915_7.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="AU915" 24 | frequency_min=915000000 25 | frequency_max=928000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 926400000, 33 | 926600000, 34 | 926800000, 35 | 927000000, 36 | 927200000, 37 | 927400000, 38 | 927600000, 39 | 927800000, 40 | ] 41 | 42 | [backend.basic_station.concentrators.lora_std] 43 | frequency=927100000 44 | bandwidth=500000 45 | spreading_factor=8 46 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-cn470_0.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="US915" 24 | frequency_min=470000000 25 | frequency_max=510000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 470300000, 33 | 470500000, 34 | 470700000, 35 | 470900000, 36 | 471100000, 37 | 471300000, 38 | 471500000, 39 | 471700000, 40 | ] 41 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-cn470_1.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="US915" 24 | frequency_min=470000000 25 | frequency_max=510000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 471900000, 33 | 472100000, 34 | 472300000, 35 | 472500000, 36 | 472700000, 37 | 472900000, 38 | 473100000, 39 | 473300000, 40 | ] 41 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-cn470_10.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="US915" 24 | frequency_min=470000000 25 | frequency_max=510000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 486300000, 33 | 486500000, 34 | 486700000, 35 | 486900000, 36 | 487100000, 37 | 487300000, 38 | 487500000, 39 | 487700000, 40 | ] 41 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-cn470_11.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="US915" 24 | frequency_min=470000000 25 | frequency_max=510000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 487900000, 33 | 488100000, 34 | 488300000, 35 | 488500000, 36 | 488700000, 37 | 488900000, 38 | 489100000, 39 | 489300000, 40 | ] 41 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-cn470_2.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="US915" 24 | frequency_min=470000000 25 | frequency_max=510000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 473500000, 33 | 473700000, 34 | 473900000, 35 | 474100000, 36 | 474300000, 37 | 474500000, 38 | 474700000, 39 | 474900000, 40 | ] 41 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-cn470_3.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="US915" 24 | frequency_min=470000000 25 | frequency_max=510000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 475100000, 33 | 475300000, 34 | 475500000, 35 | 475700000, 36 | 475900000, 37 | 476100000, 38 | 476300000, 39 | 476500000, 40 | ] 41 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-cn470_4.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="US915" 24 | frequency_min=470000000 25 | frequency_max=510000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 476700000, 33 | 476900000, 34 | 477100000, 35 | 477300000, 36 | 477500000, 37 | 477700000, 38 | 477900000, 39 | 478100000, 40 | ] 41 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-cn470_5.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="US915" 24 | frequency_min=470000000 25 | frequency_max=510000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 478300000, 33 | 478500000, 34 | 478700000, 35 | 478900000, 36 | 479100000, 37 | 479300000, 38 | 479500000, 39 | 479700000, 40 | ] 41 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-cn470_6.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="US915" 24 | frequency_min=470000000 25 | frequency_max=510000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 479900000, 33 | 480100000, 34 | 480300000, 35 | 480500000, 36 | 480700000, 37 | 480900000, 38 | 481100000, 39 | 481300000, 40 | ] 41 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-cn470_7.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="US915" 24 | frequency_min=470000000 25 | frequency_max=510000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 481500000, 33 | 481700000, 34 | 481900000, 35 | 482100000, 36 | 482300000, 37 | 482500000, 38 | 482700000, 39 | 482900000, 40 | ] 41 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-cn470_8.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="US915" 24 | frequency_min=470000000 25 | frequency_max=510000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 483100000, 33 | 483300000, 34 | 483500000, 35 | 483700000, 36 | 483900000, 37 | 484100000, 38 | 484300000, 39 | 484500000, 40 | ] 41 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-cn470_9.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="US915" 24 | frequency_min=470000000 25 | frequency_max=510000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 484700000, 33 | 484900000, 34 | 485100000, 35 | 485300000, 36 | 485500000, 37 | 485700000, 38 | 485900000, 39 | 486100000, 40 | ] 41 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-eu433.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="EU433" 24 | frequency_min=433050000 25 | frequency_max=434900000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 433175000, 33 | 433375000, 34 | 433575000, 35 | ] 36 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-eu868.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="EU868" 24 | frequency_min=863000000 25 | frequency_max=870000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 868100000, 33 | 868300000, 34 | 868500000, 35 | 867100000, 36 | 867300000, 37 | 867500000, 38 | 867700000, 39 | 867900000, 40 | ] 41 | 42 | [backend.basic_station.concentrators.lora_std] 43 | frequency=868300000 44 | bandwidth=250000 45 | spreading_factor=7 46 | 47 | [backend.basic_station.concentrators.fsk] 48 | frequency=868800000 49 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-in865.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="IN865" 24 | frequency_min=865000000 25 | frequency_max=867000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 865062500, 33 | 865402500, 34 | 865985000, 35 | ] 36 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-kr920.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="KR920" 24 | frequency_min=920900000 25 | frequency_max=923300000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 922100000, 33 | 922300000, 34 | 922500000, 35 | ] 36 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-ru864.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="RU864" 24 | frequency_min=863000000 25 | frequency_max=870000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 868900000, 33 | 869100000, 34 | ] 35 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-us915_0.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="US915" 24 | frequency_min=923000000 25 | frequency_max=928000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 902300000, 33 | 902500000, 34 | 902700000, 35 | 902900000, 36 | 903100000, 37 | 903300000, 38 | 903500000, 39 | 903700000, 40 | ] 41 | 42 | [backend.basic_station.concentrators.lora_std] 43 | frequency=903000000 44 | bandwidth=500000 45 | spreading_factor=8 46 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-us915_1.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="US915" 24 | frequency_min=923000000 25 | frequency_max=928000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 903900000, 33 | 904100000, 34 | 904300000, 35 | 904500000, 36 | 904700000, 37 | 904900000, 38 | 905100000, 39 | 905300000, 40 | ] 41 | 42 | [backend.basic_station.concentrators.lora_std] 43 | frequency=904600000 44 | bandwidth=500000 45 | spreading_factor=8 46 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-us915_2.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="US915" 24 | frequency_min=923000000 25 | frequency_max=928000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 905500000, 33 | 905700000, 34 | 905900000, 35 | 906100000, 36 | 906300000, 37 | 906500000, 38 | 906700000, 39 | 906900000, 40 | ] 41 | 42 | [backend.basic_station.concentrators.lora_std] 43 | frequency=906200000 44 | bandwidth=500000 45 | spreading_factor=8 46 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-us915_3.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="US915" 24 | frequency_min=923000000 25 | frequency_max=928000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 907100000, 33 | 907300000, 34 | 907500000, 35 | 907700000, 36 | 907900000, 37 | 908100000, 38 | 908300000, 39 | 908500000, 40 | ] 41 | 42 | [backend.basic_station.concentrators.lora_std] 43 | frequency=907800000 44 | bandwidth=500000 45 | spreading_factor=8 46 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-us915_4.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="US915" 24 | frequency_min=923000000 25 | frequency_max=928000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 908700000, 33 | 908900000, 34 | 909100000, 35 | 909300000, 36 | 909500000, 37 | 909700000, 38 | 909900000, 39 | 910100000, 40 | ] 41 | 42 | [backend.basic_station.concentrators.lora_std] 43 | frequency=909400000 44 | bandwidth=500000 45 | spreading_factor=8 46 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-us915_5.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="US915" 24 | frequency_min=923000000 25 | frequency_max=928000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 910300000, 33 | 910500000, 34 | 910700000, 35 | 910900000, 36 | 911100000, 37 | 911300000, 38 | 911500000, 39 | 911700000, 40 | ] 41 | 42 | [backend.basic_station.concentrators.lora_std] 43 | frequency=911000000 44 | bandwidth=500000 45 | spreading_factor=8 46 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-us915_6.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="US915" 24 | frequency_min=923000000 25 | frequency_max=928000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 911900000, 33 | 912100000, 34 | 912300000, 35 | 912500000, 36 | 912700000, 37 | 912900000, 38 | 913100000, 39 | 913300000, 40 | ] 41 | 42 | [backend.basic_station.concentrators.lora_std] 43 | frequency=912600000 44 | bandwidth=500000 45 | spreading_factor=8 46 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation-us915_7.toml: -------------------------------------------------------------------------------- 1 | # See https://www.chirpstack.io/gateway-bridge/install/config/ for a full 2 | # configuration example and documentation. 3 | 4 | [integration.mqtt.auth.generic] 5 | servers=["tcp://localhost:1883"] 6 | username="" 7 | password="" 8 | 9 | [integration.mqtt] 10 | event_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 11 | state_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 12 | command_topic_template="{{ chirpstack_gateway_bridge_basicstation.region }}{% raw %}/gateway/{{ .GatewayID }}/command/#{% endraw %}" 13 | 14 | [backend] 15 | type="basic_station" 16 | 17 | [backend.basic_station] 18 | bind=":3001" 19 | tls_cert="/etc/chirpstack-gateway-bridge/certs/server.pem" 20 | tls_key="/etc/chirpstack-gateway-bridge/certs/server-key.pem" 21 | ca_cert="/etc/chirpstack-gateway-bridge/certs/ca.pem" 22 | 23 | region="US915" 24 | frequency_min=923000000 25 | frequency_max=928000000 26 | 27 | 28 | [[backend.basic_station.concentrators]] 29 | 30 | [backend.basic_station.concentrators.multi_sf] 31 | frequencies=[ 32 | 913500000, 33 | 913700000, 34 | 913900000, 35 | 914100000, 36 | 914300000, 37 | 914500000, 38 | 914700000, 39 | 914900000, 40 | ] 41 | 42 | [backend.basic_station.concentrators.lora_std] 43 | frequency=914200000 44 | bandwidth=500000 45 | spreading_factor=8 46 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/chirpstack-gateway-bridge-basicstation.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=ChirpStack Gateway Bridge (Basics Station) 3 | Documentation=https://www.chirpstack.io/ 4 | Wants=network-online.target 5 | After=network-online.target 6 | 7 | [Service] 8 | User=gatewaybridge 9 | Group=gatewaybridge 10 | ExecStart=/usr/bin/chirpstack-gateway-bridge -c /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge-basicstation.toml 11 | Restart=on-failure 12 | 13 | [Install] 14 | WantedBy=multi-user.target 15 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge-basicstation/templates/server-cert.json: -------------------------------------------------------------------------------- 1 | { 2 | "CN": "{{ chirpstack_gateway_bridge_basicstation.fqdn }}", 3 | "hosts": [ 4 | "{{ chirpstack_gateway_bridge_basicstation.fqdn }}" 5 | ], 6 | "key": { 7 | "algo": "rsa", 8 | "size": 4096 9 | } 10 | } -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: restart chirpstack-gateway-bridge 2 | ansible.builtin.service: 3 | name: chirpstack-gateway-bridge 4 | state: restarted 5 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: install chirpstack-gateway-bridge 2 | ansible.builtin.package: 3 | name: chirpstack-gateway-bridge 4 | state: latest 5 | when: apt.use_chirpstack_repo 6 | notify: 7 | - restart chirpstack-gateway-bridge 8 | 9 | - name: install chirpstack-gateway-bridge from package_url 10 | ansible.builtin.apt: 11 | deb: "{{ chirpstack_gateway_bridge.package_url }}" 12 | when: not apt.use_chirpstack_repo 13 | notify: 14 | - restart chirpstack-gateway-bridge 15 | 16 | - name: copy configuration 17 | ansible.builtin.template: 18 | src: chirpstack-gateway-bridge.toml 19 | dest: /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml 20 | owner: gatewaybridge 21 | group: gatewaybridge 22 | mode: "0640" 23 | notify: 24 | - restart chirpstack-gateway-bridge 25 | 26 | - name: start chirpstack-gateway-bridge on boot 27 | ansible.builtin.service: 28 | name: chirpstack-gateway-bridge 29 | state: started 30 | enabled: "yes" 31 | -------------------------------------------------------------------------------- /roles/chirpstack-gateway-bridge/templates/chirpstack-gateway-bridge.toml: -------------------------------------------------------------------------------- 1 | # For a full configuration example, see: 2 | # https://www.chirpstack.io/docs/chirpstack-gateway-bridge/configuration.html 3 | 4 | [integration.mqtt] 5 | event_topic_template="{{ chirpstack_gateway_bridge.region }}/{% raw %}gateway/{{ .GatewayID }}/event/{{ .EventType }}{% endraw %}" 6 | state_topic_template="{{ chirpstack_gateway_bridge.region }}/{% raw %}gateway/{{ .GatewayID }}/state/{{ .StateType }}{% endraw %}" 7 | command_topic_template="{{ chirpstack_gateway_bridge.region }}/{% raw %}gateway/{{ .GatewayID }}/command/#{% endraw %}" 8 | 9 | [integration.mqtt.auth.generic] 10 | server="tcp://127.0.0.1:1883" 11 | -------------------------------------------------------------------------------- /roles/chirpstack/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: restart chirpstack 2 | ansible.builtin.service: 3 | name: chirpstack 4 | state: restarted 5 | -------------------------------------------------------------------------------- /roles/chirpstack/tasks/gen_self_signed_cert.yml: -------------------------------------------------------------------------------- 1 | - name: create certs directory 2 | ansible.builtin.file: 3 | path: /etc/nginx/certs 4 | state: directory 5 | owner: root 6 | group: root 7 | mode: "0700" 8 | 9 | - name: copy server cert config 10 | ansible.builtin.template: 11 | src: server-cert.json 12 | dest: /etc/nginx/certs/chirpstack.json 13 | owner: root 14 | group: root 15 | mode: "0600" 16 | 17 | - name: generate server certificate 18 | ansible.builtin.shell: "cfssl gencert -ca /etc/chirpstack-certs/ca.pem -ca-key /etc/chirpstack-certs/ca-key.pem -config /etc/chirpstack-certs/ca-config.json -profile server chirpstack.json | cfssljson -bare /etc/nginx/certs/chirpstack" 19 | args: 20 | chdir: /etc/nginx/certs 21 | notify: 22 | - reload nginx 23 | -------------------------------------------------------------------------------- /roles/chirpstack/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: install chirpstack 2 | ansible.builtin.package: 3 | name: chirpstack 4 | state: latest 5 | when: apt.use_chirpstack_repo 6 | 7 | - name: install chirpstack from package_url 8 | ansible.builtin.apt: 9 | deb: "{{ chirpstack.package_url }}" 10 | when: not apt.use_chirpstack_repo 11 | 12 | - name: copy configuration 13 | ansible.builtin.template: 14 | src: chirpstack.toml 15 | dest: /etc/chirpstack/chirpstack.toml 16 | owner: chirpstack 17 | group: chirpstack 18 | mode: "0640" 19 | notify: 20 | - restart chirpstack 21 | 22 | - name: create certs directory 23 | ansible.builtin.file: 24 | path: /etc/chirpstack/certs 25 | state: directory 26 | owner: chirpstack 27 | group: chirpstack 28 | mode: "0700" 29 | 30 | - name: copy ca cert 31 | ansible.builtin.copy: 32 | src: "/etc/chirpstack-certs/{{ item }}" 33 | dest: "/etc/chirpstack/certs/{{ item }}" 34 | remote_src: "yes" 35 | owner: chirpstack 36 | group: chirpstack 37 | mode: "0600" 38 | with_items: 39 | - ca.pem 40 | - ca-key.pem 41 | notify: 42 | - restart chirpstack 43 | 44 | - name: request letsencrypt certificate 45 | ansible.builtin.command: "certbot --nginx certonly --non-interactive --agree-tos -m {{ chirpstack.letsencrypt.email }} -d {{ chirpstack.fqdn }}" 46 | when: chirpstack.letsencrypt.request 47 | 48 | - name: generate self-signed certificate 49 | include_tasks: gen_self_signed_cert.yml 50 | when: not chirpstack.letsencrypt.request 51 | 52 | - name: add nginx proxy configuration 53 | ansible.builtin.template: 54 | src: chirpstack.nginx 55 | dest: /etc/nginx/sites-enabled/chirpstack 56 | notify: 57 | - reload nginx 58 | 59 | - name: start chirpstack on boot 60 | ansible.builtin.service: 61 | name: chirpstack 62 | state: started 63 | enabled: "yes" 64 | -------------------------------------------------------------------------------- /roles/chirpstack/templates/chirpstack.nginx: -------------------------------------------------------------------------------- 1 | server { 2 | listen 80; 3 | server_name {{ chirpstack.fqdn }}; 4 | 5 | location / { 6 | return 301 https://{{ chirpstack.fqdn }}$request_uri; 7 | } 8 | } 9 | 10 | server { 11 | listen 443 ssl http2; 12 | server_name {{ chirpstack.fqdn }}; 13 | {% if chirpstack.letsencrypt.request %} 14 | ssl_certificate /etc/letsencrypt/live/{{ chirpstack.fqdn }}/fullchain.pem; 15 | ssl_certificate_key /etc/letsencrypt/live/{{ chirpstack.fqdn }}/privkey.pem; 16 | {% else %} 17 | ssl_certificate /etc/nginx/certs/chirpstack.pem; 18 | ssl_certificate_key /etc/nginx/certs/chirpstack-key.pem; 19 | {% endif %} 20 | 21 | location ^~ /api { 22 | grpc_pass grpc://localhost:8080; 23 | } 24 | 25 | location / { 26 | proxy_pass http://localhost:8080; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /roles/chirpstack/templates/chirpstack.toml: -------------------------------------------------------------------------------- 1 | # For a full configuration example, see: 2 | # https://www.chirpstack.io/docs/chirpstack/configuration.html 3 | 4 | [postgresql] 5 | dsn="postgresql://{{ chirpstack.postgresql.user }}:{{ chirpstack.postgresql.password }}@{{ chirpstack.postgresql.host }}/{{ chirpstack.postgresql.db }}?sslmode=disable" 6 | 7 | 8 | [redis] 9 | servers=[ 10 | "redis://127.0.0.1/", 11 | ] 12 | 13 | 14 | [api] 15 | secret="{{ chirpstack.api.secret }}" 16 | 17 | 18 | [gateway] 19 | ca_cert="/etc/chirpstack/certs/ca.pem" 20 | ca_key="/etc/chirpstack/certs/ca-key.pem" 21 | 22 | 23 | [network] 24 | net_id="000000" 25 | 26 | enabled_regions=[ 27 | "as923", 28 | "as923_2", 29 | "as923_3", 30 | "as923_4", 31 | "au915_0", 32 | "cn779", 33 | "eu433", 34 | "eu868", 35 | "in865", 36 | "ism2400", 37 | "kr920", 38 | "ru864", 39 | "us915_0", 40 | "us915_1", 41 | ] 42 | 43 | 44 | [integration] 45 | enabled = [ 46 | "mqtt" 47 | ] 48 | 49 | [integration.mqtt.client] 50 | ca_cert="/etc/chirpstack/certs/ca.pem" 51 | ca_key="/etc/chirpstack/certs/ca-key.pem" 52 | -------------------------------------------------------------------------------- /roles/chirpstack/templates/server-cert.json: -------------------------------------------------------------------------------- 1 | { 2 | "CN": "{{ chirpstack.fqdn }}", 3 | "hosts": [ 4 | "{{ chirpstack.fqdn }}" 5 | ], 6 | "key": { 7 | "algo": "rsa", 8 | "size": 4096 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /roles/iptables/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: persist iptables 2 | ansible.builtin.shell: iptables-save > /etc/iptables/rules.v4 3 | 4 | -------------------------------------------------------------------------------- /roles/iptables/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: allow connections on configured ports 2 | ansible.builtin.iptables: 3 | chain: INPUT 4 | jump: ACCEPT 5 | protocol: "{{ item.protocol }}" 6 | destination_port: "{{ item.port }}" 7 | source: "{{ item.source }}" 8 | with_items: "{{ iptables.accept }}" 9 | notify: 10 | - persist iptables 11 | 12 | - name: allow established connections 13 | ansible.builtin.iptables: 14 | chain: INPUT 15 | ctstate: ESTABLISHED,RELATED 16 | jump: ACCEPT 17 | notify: 18 | - persist iptables 19 | 20 | - name: allow loopback input 21 | ansible.builtin.iptables: 22 | chain: INPUT 23 | in_interface: lo 24 | jump: ACCEPT 25 | notify: 26 | - persist iptables 27 | 28 | - name: allow loopback output 29 | ansible.builtin.iptables: 30 | chain: OUTPUT 31 | out_interface: lo 32 | jump: ACCEPT 33 | notify: 34 | - persist iptables 35 | 36 | - name: drop all other connections 37 | ansible.builtin.command: iptables -P INPUT DROP 38 | notify: 39 | - persist iptables 40 | -------------------------------------------------------------------------------- /roles/letsencrypt/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: install packages 2 | ansible.builtin.package: 3 | name: "{{ item }}" 4 | state: latest 5 | with_items: 6 | - certbot 7 | - python3-certbot-nginx 8 | 9 | - name: setup renew cron 10 | ansible.builtin.cron: 11 | name: "certbot renew" 12 | minute: "0" 13 | hour: "0" 14 | job: "certbot renew > /dev/null" 15 | -------------------------------------------------------------------------------- /roles/mosquitto/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: restart mosquitto 2 | ansible.builtin.service: 3 | name: mosquitto 4 | state: restarted 5 | -------------------------------------------------------------------------------- /roles/mosquitto/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: install packages 2 | ansible.builtin.package: name={{ item }} state=latest 3 | with_items: 4 | - mosquitto 5 | - mosquitto-clients 6 | 7 | - name: copy mosquitto acl configuration 8 | ansible.builtin.template: 9 | src: acl 10 | dest: /etc/mosquitto/acl 11 | notify: 12 | - restart mosquitto 13 | 14 | - name: copy mosquitto listener configuration 15 | ansible.builtin.template: 16 | src: listeners.conf 17 | dest: /etc/mosquitto/conf.d/listeners.conf 18 | notify: 19 | - restart mosquitto 20 | 21 | - name: create certs directory 22 | ansible.builtin.file: 23 | path: /etc/mosquitto/certs 24 | state: directory 25 | owner: mosquitto 26 | group: mosquitto 27 | mode: "0700" 28 | 29 | - name: copy server cert config 30 | ansible.builtin.template: 31 | src: server-cert.json 32 | dest: /etc/mosquitto/certs/server-cert.json 33 | owner: mosquitto 34 | group: mosquitto 35 | mode: "0600" 36 | 37 | - name: generate server certificate 38 | ansible.builtin.shell: "cfssl gencert -ca /etc/chirpstack-certs/ca.pem -ca-key /etc/chirpstack-certs/ca-key.pem -config /etc/chirpstack-certs/ca-config.json -profile server server-cert.json | cfssljson -bare /etc/mosquitto/certs/server" 39 | args: 40 | chdir: /etc/mosquitto/certs 41 | notify: 42 | - restart mosquitto 43 | 44 | - name: copy ca cert 45 | ansible.builtin.copy: 46 | src: /etc/chirpstack-certs/ca.pem 47 | dest: /etc/mosquitto/certs/ca.pem 48 | remote_src: "yes" 49 | owner: mosquitto 50 | group: mosquitto 51 | mode: "0600" 52 | notify: 53 | - restart mosquitto 54 | 55 | - name: set certificate permissions 56 | ansible.builtin.file: 57 | path: /etc/mosquitto/certs 58 | state: directory 59 | recurse: "yes" 60 | owner: mosquitto 61 | group: mosquitto 62 | mode: "0600" 63 | 64 | - name: set certificate directory permissions 65 | ansible.builtin.file: 66 | path: /etc/mosquitto/certs 67 | state: directory 68 | owner: mosquitto 69 | group: mosquitto 70 | mode: "0700" 71 | 72 | - name: start mosquitto on boot 73 | ansible.builtin.service: 74 | name: mosquitto 75 | state: started 76 | enabled: yes 77 | -------------------------------------------------------------------------------- /roles/mosquitto/templates/acl: -------------------------------------------------------------------------------- 1 | pattern readwrite +/gateway/%u/# 2 | pattern readwrite application/%u/# 3 | -------------------------------------------------------------------------------- /roles/mosquitto/templates/listeners.conf: -------------------------------------------------------------------------------- 1 | per_listener_settings true 2 | 3 | listener 1883 127.0.0.1 4 | allow_anonymous true 5 | 6 | listener 8883 7 | cafile /etc/mosquitto/certs/ca.pem 8 | certfile /etc/mosquitto/certs/server.pem 9 | keyfile /etc/mosquitto/certs/server-key.pem 10 | allow_anonymous false 11 | require_certificate true 12 | use_identity_as_username true 13 | acl_file /etc/mosquitto/acl 14 | -------------------------------------------------------------------------------- /roles/mosquitto/templates/server-cert.json: -------------------------------------------------------------------------------- 1 | { 2 | "CN": "{{ mosquitto.fqdn }}", 3 | "hosts": [ 4 | "{{ mosquitto.fqdn }}" 5 | ], 6 | "key": { 7 | "algo": "rsa", 8 | "size": 4096 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /roles/nginx/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: reload nginx 2 | ansible.builtin.service: 3 | name: nginx 4 | state: reloaded 5 | 6 | -------------------------------------------------------------------------------- /roles/nginx/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: install nginx 2 | ansible.builtin.package: 3 | name: nginx 4 | state: latest 5 | 6 | - name: start nginx on boot 7 | ansible.builtin.service: 8 | name: nginx 9 | state: started 10 | enabled: yes 11 | 12 | - name: disable server tokens 13 | ansible.builtin.lineinfile: 14 | dest: /etc/nginx/nginx.conf 15 | regexp: server_tokens 16 | line: 'server_tokens off;' 17 | notify: 18 | - reload nginx 19 | -------------------------------------------------------------------------------- /roles/postgresql/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: setup postgresql 2 | include_tasks: postgresql.yml 3 | when: chirpstack.postgresql.host == 'localhost' 4 | -------------------------------------------------------------------------------- /roles/postgresql/tasks/postgresql.yml: -------------------------------------------------------------------------------- 1 | # The acl package is needed to avoid the following error: 2 | # "Failed to set permissions on the temporary files Ansible needs to create when becoming an unprivileged user" 3 | 4 | - name: install packages 5 | ansible.builtin.package: name={{ item }} state=latest 6 | with_items: 7 | - python3-psycopg2 8 | - postgresql 9 | - acl 10 | 11 | - name: start postgresql on boot 12 | ansible.builtin.service: 13 | name: postgresql 14 | state: started 15 | enabled: yes 16 | 17 | - name: create chirpstack role 18 | ansible.builtin.postgresql_user: 19 | name: "{{ chirpstack.postgresql.user }}" 20 | password: "{{ chirpstack.postgresql.password }}" 21 | role_attr_flags: LOGIN 22 | become_user: postgres 23 | 24 | - name: create chirpstack database 25 | ansible.builtin.postgresql_db: 26 | name: "{{ chirpstack.postgresql.db }}" 27 | owner: "{{ chirpstack.postgresql.user }}" 28 | become_user: postgres 29 | 30 | - name: create trgm extension for chirpstack database 31 | ansible.builtin.postgresql_ext: 32 | db: "{{ chirpstack.postgresql.db }}" 33 | name: pg_trgm 34 | become_user: postgres 35 | 36 | - name: create hstore extension for chirpstack database 37 | ansible.builtin.postgresql_ext: 38 | db: "{{ chirpstack.postgresql.db }}" 39 | name: hstore 40 | become_user: postgres 41 | -------------------------------------------------------------------------------- /roles/redis/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: install redis 2 | ansible.builtin.package: 3 | name: redis-server 4 | state: latest 5 | 6 | - name: start redis on boot 7 | ansible.builtin.service: 8 | name: redis-server 9 | state: started 10 | enabled: yes 11 | --------------------------------------------------------------------------------