{"id":21371508,"url":"https://github.com/chirpstack/chirpstack-ansible-playbook","last_synced_at":"2026-01-03T01:39:34.885Z","repository":{"id":52060326,"uuid":"65127831","full_name":"chirpstack/chirpstack-ansible-playbook","owner":"chirpstack","description":"Ansible playbook for setting up ChirpStack.","archived":false,"fork":false,"pushed_at":"2024-01-12T15:18:33.000Z","size":125,"stargazers_count":84,"open_issues_count":3,"forks_count":43,"subscribers_count":19,"default_branch":"master","last_synced_at":"2025-01-22T20:51:51.227Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.chirpstack.io","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chirpstack.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"chirpstack"}},"created_at":"2016-08-07T10:31:30.000Z","updated_at":"2024-08-14T08:28:47.000Z","dependencies_parsed_at":"2024-01-12T20:20:29.956Z","dependency_job_id":"e52be385-da6d-4d29-a305-c69b9641baa3","html_url":"https://github.com/chirpstack/chirpstack-ansible-playbook","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chirpstack%2Fchirpstack-ansible-playbook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chirpstack%2Fchirpstack-ansible-playbook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chirpstack%2Fchirpstack-ansible-playbook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chirpstack%2Fchirpstack-ansible-playbook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chirpstack","download_url":"https://codeload.github.com/chirpstack/chirpstack-ansible-playbook/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243846982,"owners_count":20357297,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-22T08:13:41.753Z","updated_at":"2026-01-03T01:39:34.831Z","avatar_url":"https://github.com/chirpstack.png","language":null,"funding_links":["https://github.com/sponsors/chirpstack"],"categories":[],"sub_categories":[],"readme":"# ChirpStack stack setup (Ansible \u0026 Vagrant)\n\nThis repository provides an [Ansible](https://www.ansible.com) playbook to\nsetup the [ChirpStack](https://www.chirpstack.io/) open-source LoRaWAN Network Server (v4).\nWith the included [Vagrant](https://www.vagrant.com) file, ChirpStack can also be setup\nlocally inside a VM (e.g. using [VirtualBox](https://www.virtualbox.org)).\n\nIt will:\n\n* Setup firewall rules (iptables)\n* Setup Mosquitto (MQTT broker) + client and server-certificate configuration\n* Setup Redis\n* Setup PostgreSQL + creation of role and database\n* Setup [ChirpStack Gateway Bridge](https://www.chirpstack.io/docs/chirpstack-gateway-bridge/) for UDP\n* Setup [ChirpStack Gateway Bridge](https://www.chirpstack.io/docs/chirpstack-gateway-bridge/) for Basics Station\n* Setup [ChirpStack](https://www.chirpstack.io/docs/chirpstack/)\n* Request a HTTPS certificate from [Let's Encrypt](https://letsencrypt.org)\n\n## Vagrant (local environment using VirtualBox)\n\n### Ports\n\nThe included `Vagrantfile` will setup a Debian Bullseye (11.x) virtual\nmachine with the latest ChirpStack components installed. It will also forward\nthe following ports to your host system:\n\n* `4443`: ChirpStack UI and gRPC API (with TLS, e.g. [https://localhost:4443/](https://localhost:4443))\n* `1700`: ChirpStack Gateway Bridge UDP listener (configured for EU868 region by default)\n* `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)\n* `8883`: Mosquitto MQTT (with TLS, client-certificate files can be generated in the ChirpStack UI)\n\nNote: when using Vagrant, there is no need to install Ansible (this will be\nautomatically installed inside the Vagrant machine).\n\n### Requirements\n\nWhen setting up ChirpStack, make sure you have a recent\nversion of [Vagrant](https://www.vagrantup.com) installed.\n\nAlso make sure you have a recent version of [VirtualBox](https://www.virtualbox.org)\ninstalled, including the [VirtualBox Extension Pack](https://www.virtualbox.org/wiki/Downloads).\n\n### Getting started\n\n1. Update `host_vars/vagrant.yml` where needed.\n\n2. Within the root of this repository execute the following command:\n    \n    ```bash\n    vagrant up\n    ```\n\n    As this will import the Vagrant box, install all requirements etc... this\n    is going to take a while.\n\n3. Configure your LoRa Gateway so that it points to the IP address of your\n   computer (port `1700`).\n\n4. Point your browser to https://localhost:4443/. As a self-signed certificate\n   is used, your browser will prompt that the certificate can't be trusted.\n   This is ok for testing.\n\n5. For updating your Vagrant environment (e.g. updating the configuration or\n   to upgrade installed packages, execute the following command:\n\n    ```bash\n    vagrant provision\n    ```\n\n6. Other useful commands:\n\n   ```bash\n   # stop the vagrant machine\n   vagrant halt \n\n   # restart the vagrant machine\n   vagrant reload\n\n   # ssh into the vagrant machine\n   vagrant ssh\n\n   # destroy the vagrant machine\n   vagrant destroy\n   ```\n\n## Remote deployment\n\nThis playbook has been tested on \n[DigitalOcean.com](https://m.do.co/c/6cd86e9f1cb8) but should also work on\nbare-metal, AWS, ...\n\nDon't have a DigitalOcean account yet? Use\n[this](https://m.do.co/c/6cd86e9f1cb8) link and get $10 in credits for free :-)\n\n### Ports\n\n* `443`: ChirpStack UI and gRPC API (with TLS, e.g. https://subdomain.example.com/)\n* `1700`: ChirpStack Gateway Bridge UDP listener (configured for EU868 region by default)\n* `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)\n* `8883`: Mosquitto MQTT (with TLS, client-certificate files can be generated in the ChirpStack UI)\n\n### Requirements\n\nOn the machine from where you will execute this Ansible playbook (e.g. your own\ncomputer), make sure you have Ansible 2.10+ installed. You can install Ansible with\npip (`pip install ansible`) or using Homebrew (OS X) (`brew install ansible`).\nRefer to the [Ansible installation guide](http://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html)\nfor more installation instructions.\n\nThe Ansible playbook has been tested on the following images:\n\n* Debian\n    * Bullseye (11.x)\n\n* Ubuntu\n    * Jammy (22.04 LTS)\n\n### Configuration\n\n1. Create a new Debian Bullseye 11.x instance and make sure that from your own machine\n   on which Ansible is installed, you can ssh to this machine using public-key\n   authentication (e.g. `ssh user@ip`).\n\n2. Configure a DNS record for your target instance and wait until this record\n   resolves to your IP address.\n\n3. Copy the `inventory.example` inside this repository to `inventory` and\n   replace `example.com` with the hostname created in step 2.\n\n4. Copy the `group_vars/chirpstack.example.yml` inside this repository to\n   `group_vars/chirpstack.yml` and change the settings where needed.\n\nFor more information, see also:\n\n* https://www.chirpstack.io/docs/\n\n### Provisioning\n\nRun the following command from your machine to deploy ChirpStack to your\ntarget instance, to upgrade to the latest versions or to update the\nconfiguration:\n\n```bash\nansible-playbook -i inventory deploy.yml\n```\n\nAfter the playbook has been completed, ChirpStack should be accessible from the domain you configured as fqdn in the `group_vars/chirpstack.yml`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchirpstack%2Fchirpstack-ansible-playbook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchirpstack%2Fchirpstack-ansible-playbook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchirpstack%2Fchirpstack-ansible-playbook/lists"}