The Things Network is a global open crowdsourced Internet of Things data network.
When you get started with The Things Network, you'll probably have some questions. Here are some things you can do to find the answer to them:
Although we're all about building an open, public network, we understand that some people rather have everything privately on their own servers. On our website, you'll find some articles describing how you can set up a private routing environment and how you can deploy this environment using Docker.
First, you'll have to prepare your development environment. Follow the steps below to set up your development machine.
protoc
)make
. On Linux install build-essential
. On macOS, make
comes with XCode or the developer tools. On Windows you can get make
from https://gnuarmeclipse.github.io/windows-build-tools/brew bundle
. The Windows installer will setup and start RabbitMQ as a service. Use the RabbitMQ Command Prompt (sbin dir)
to run commands, i.e. to enable plugins.ttn.handler
of type topic
. Using the management plugin, declare the exchange in the web interface http://server-name:15672
or using the management cli, run rabbitmqadmin declare exchange name=ttn.handler type=topic auto_delete=false durable=true
. If your handler's user has sufficient permissions on RabbitMQ, it will attempt to create the exchange if not present.Next, you can clone this repository and set up the TTN part:
git clone --branch develop https://github.com/YOURUSERNAME/ttn.git $GOPATH/src/github.com/TheThingsNetwork/ttn
cd $GOPATH/src/github.com/TheThingsNetwork/ttn
make dev-deps
make test
make build
to build both ttn
and ttnctl
from source. make dev
to install the go binaries into $GOPATH/bin/
make link
to link them to $GOPATH/bin/
(In order to run the commands, you should have export PATH="$GOPATH/bin:$PATH"
in your profile).ttnctl
with the settings in .env/ttnctl.yml.dev-example
by copying that file to ~/.ttnctl.yml
..env/discovery/server.cert
to ~/.ttnctl/ca.cert
.You can check your ttnctl
configuration by running ttnctl config
. It should look like this:
INFO Using config:
config file: /home/your-user/.ttnctl.yml
data dir: /home/your-user/.ttnctl
auth-server: https://account.thethingsnetwork.org
discovery-address: localhost:1900
router-id: dev
handler-id: dev
mqtt-address: localhost:1883
NOTE: From now on you should run all commands from the $GOPATH/src/github.com/TheThingsNetwork/ttn
directory.
Source code for The Things Network is released under the MIT License, which can be found in the LICENSE file. A list of authors can be found in the AUTHORS file.