Skip to content

Commit

Permalink
doc: Move cloud section to top
Browse files Browse the repository at this point in the history
  • Loading branch information
KrishnaIyer committed Dec 3, 2024
1 parent 96caebf commit 1003c6b
Show file tree
Hide file tree
Showing 47 changed files with 249 additions and 236 deletions.
2 changes: 1 addition & 1 deletion CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
/doc/content/the-things-stack/host/docker @KrishnaIyer
/doc/content/the-things-stack/host/aws @KrishnaIyer @johanstokking @happyRip
/doc/content/the-things-stack/migrating @happyRip @KrishnaIyer
/doc/content/the-things-stack/cloud @happyRip @KrishnaIyer
/doc/content/cloud @happyRip @KrishnaIyer
/doc/content/the-things-stack/management/events @johanstokking @KrishnaIyer

/doc/content/api @KrishnaIyer @johanstokking
Expand Down
2 changes: 1 addition & 1 deletion doc/content/api/concepts/troubleshooting/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ The most common cause for this error is not following the regex pattern in the `

###### Listing gateways via API call works for the eu1 {{% tts %}} Cloud cluster, but won't work for the nam1 cluster.

Unlike other server components, the Identity Server component of {{% tts %}} is hosted only in the `eu1` cluster for [{{% tts %}} Cloud]({{< ref "/the-things-stack/cloud/addresses#api-endpoints" >}}) and [{{% tts %}} Sandbox]({{< ref "/reference/ttn/addresses#api-endpoints" >}}). This is the reason why Identity Server API request to any cluster other than `eu1` will fail.
Unlike other server components, the Identity Server component of {{% tts %}} is hosted only in the `eu1` cluster for [{{% tts %}} Cloud]({{< ref "/cloud/server-addresses#api-endpoints" >}}) and [{{% tts %}} Sandbox]({{< ref "/reference/ttn/addresses#api-endpoints" >}}). This is the reason why Identity Server API request to any cluster other than `eu1` will fail.

###### "426 Upgrade Required" error

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
---
title: "The Things Stack Cloud"
description: "This section contains concepts specific to The Things Stack Cloud"
weight: 1
aliases: [/guides/cloud-hosted/cloud-hosted, /getting-started/cloud-hosted]
description: "Concepts specific to The Things Stack Cloud"
menu:
main:
weight: 2
aliases:
[/guides/cloud-hosted/cloud-hosted, /getting-started/cloud-hosted, /cloud]
---

The Things Industries offers {{% tts %}} as hosted software as a service (SaaS).
Expand Down Expand Up @@ -35,7 +38,7 @@ If you navigate to [this link](https://console.cloud.thethings.industries), you

{{< figure src="cluster-location.png" alt="Recommended clusters" >}}

See the [Cloud Addresses]({{< ref "/the-things-stack/cloud/addresses" >}}) for details about cluster, Console, API endpoints and other {{% tts %}} Cloud addresses.
See the [Cloud Addresses]({{< ref "/cloud/server-addresses" >}}) for details about cluster, Console, API endpoints and other {{% tts %}} Cloud addresses.

## Status Page

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
---
title: "Server Addresses"
description: ""
weight: 5
aliases:
[
/getting-started/server-addresses,
/the-things-stack/concepts/server-addresses,
]
weight: 1
aliases: [/getting-started/server-addresses, /cloud/server-addresses]
---

To access the [Console]({{< ref "/the-things-stack/interact/console" >}}), register a [command line client]({{< ref "the-things-stack/interact/cli" >}}), [connect gateways]({{< ref "/gateways/concepts/adding-gateways" >}}), or schedule uplinks via [webhooks]({{< ref "integrations/webhooks" >}}), it is necessary to know the server address of your {{% tts %}} instance. This section contains information about addresses for different {{% tts %}} deployments.
Expand All @@ -24,7 +20,7 @@ You can update the examples below with your tenant ID and cluster ID by filling

## Deployments

**Cloud**: See [Cloud Addresses]({{< ref "/the-things-stack/cloud/addresses" >}}).
**Cloud**: See [Cloud Addresses]({{< ref "/cloud/server-addresses" >}}).

**AWS Launcher**: This is the domain you specify in your [CloudFormation configuration]({{< ref "the-things-stack/host/aws/ami/deployment-guide#step-2-configure-the-deployment" >}}).

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
---
title: "Basic Concepts"
title: "Concepts"
description: "Guides on basic concepts of working with The Things Stack"
weight: 1
aliases: [/reference/spec-regional-parameters]
menu:
main:
weight: 2
aliases:
[/reference/spec-regional-parameters, doc/content/the-things-stack/concepts]
---

This section introduces basic concepts of working with {{% tts %}}.

We start with a general technical discussion of {{% tts %}} architecture and progress to other more detailed topics that can be found in the **left menu**.
We start with a general technical discussion of {{% tts %}} architecture and progress to other more detailed topics.

<!--more-->
49 changes: 49 additions & 0 deletions doc/content/concepts/architecture/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
title: "Architecture"
description: "This section explains the architecture and components of The Things Stack"
weight: 1
aliases: [the-things-stack/concepts/architecture]
---

{{% tts %}} follows a API driven microservice architecture, well suited for high availability and reliability.

<!--more-->

{{< figure src="tts-architecture.jpeg" alt="The Things Stack Architecture" >}}

{{% tts %}} has the following main components.

<div class="fixed-table table-tts-components">

| Component (Service) | Short | Description |
| ---------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Gateway Server | `GS` | Maintains connections with gateways supporting the Basic Station, UDP, MQTT and gRPC protocols. It forwards uplink traffic to Network Servers directly or indirectly, and schedules downlink traffic on gateways. |
| Network Server | `NS` | Handles the LoRaWAN® network layer, including MAC commands, regional parameters and adaptive data rate (ADR). |
| Application Server | `AS` | Handles the LoRaWAN application layer, including uplink data decryption and decoding, downlink queuing and downlink data encoding and encryption. |
| Identity Server | `IS` | Provides the registries that store entities such as applications with their end devices, gateways, users, organizations, OAuth clients and authentication providers. It also manages access control through memberships and API keys. |
| Join Server | `JS` | Handles the LoRaWAN join flow, including Network and Application Server authentication and session key generation. |
| Device Claiming Server | `DCS` | Allows users to claim devices and gateways in a secure manner. |
| Gateway Configuration Server | `GCS` | Generates configuration files for UDP gateways and manages gateway configuration and firmware updates for Basic Station and The Things Kickstarter gateways. |
| Packet Broker Agent | `PBA` | Connects The Things Stack with Packet Broker for exchanging traffic with other networks. |
| Network Operations Center | `NOC` | Provides aggregated insight in a network operated with The Things Stack. |
| Console | NA | Is the web application used to interact with The Things Stack. |

</div>

<br>
{{% tts %}} also has the following additional/supporting components.
<br>

<div class="fixed-table table-tts-components">

| Component (Service) | Short | Description |
| ------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Tenant Billing Server | `TBS` | Manages the creation, suspension and billing of tenants using different payment backends (only for {{% tts %}} cloud). |
| QR Generator | `QRG` | Generates QR codes for devices in various formats. These QR codes can be used for various purposes, including identification and device claiming to transfer ownership.. |
| Device Template Converter | `DTC` | Converts data to device templates for migrating networks and importing vendor-specific data. |

</div>

If you want more detailed information on each component, check the [components reference]({{< relref "components" >}}) section.

Now that the architecture is introduced, let's take a look at the various methods to interact with {{% tts %}}.
15 changes: 7 additions & 8 deletions doc/content/gateways/concepts/lora-basics-station/cups.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ aliases: [/gateways/lora-basics-station/cups]

## Create a Gateway

To connect a gateway using the CUPS protocol, you must first add the gateway in {{% tts %}}. This can be done either in the console, or via the command line. See instructions for [Adding Gateways]({{< ref "/gateways/concepts/adding-gateways" >}}).
To connect a gateway using the CUPS protocol, you must first add the gateway in {{% tts %}}. This can be done either in the console, or via the command line. See instructions for [Adding Gateways]({{< ref "/gateways/concepts/adding-gateways" >}}).

## Create Separate CUPS and LNS API Keys

Expand Down Expand Up @@ -58,7 +58,7 @@ Press **Save Changes** to update the gateway settings. When your gateway connect

{{< tabs/tab "CLI" >}}

We need to configure CUPS in {{% tts %}} to transmit the LNS API key when a gateway connects. Use the following command to do so, replacing `"your-gateway-id"` with your gateway ID in {{% tts %}} and `"your-lns-api-key"` with the [LNS API key]({{< ref "/gateways/concepts/lora-basics-station/cups#create-separate-cups-and-lns-api-keys" >}}) you created in the last step:
We need to configure CUPS in {{% tts %}} to transmit the LNS API key when a gateway connects. Use the following command to do so, replacing `"your-gateway-id"` with your gateway ID in {{% tts %}} and `"your-lns-api-key"` with the [LNS API key]({{< ref "/gateways/concepts/lora-basics-station/cups#create-separate-cups-and-lns-api-keys" >}}) you created in the last step:

```bash
GTW_ID="your-gateway-id"
Expand All @@ -81,15 +81,14 @@ If successful, you should receive a response as follows:
},
"created_at": "2020-10-13T10:49:02.730Z",
"updated_at": "2020-11-17T14:52:06.440Z",
"version_ids": {

},
"version_ids": {},
"lbs_lns_secret": {
"key_id": "is/gateway-secrets-encryption-key",
"value": "<encrpyted-base64-lns-api-key>"
}
}
```

</details>

{{</ tabs/tab >}}
Expand All @@ -98,15 +97,15 @@ If successful, you should receive a response as follows:

## Configure Gateway

All {{% lbs %}} gateways support the following configuration options. Consult your gateway documentation for more information about configuring your specific gateway.
All {{% lbs %}} gateways support the following configuration options. Consult your gateway documentation for more information about configuring your specific gateway.

### CUPS Server Address

The server address is the network endpoint of {{% tts %}} CUPS. It is a combination of the **protocol** (https), the **server address**, and the **port**.

Enter the following in your gateway as CUPS Server Address: `https://<server-address>:443`.
Enter the following in your gateway as CUPS Server Address: `https://<server-address>:443`.

The `<server-address>` is the address of your {{% tts %}} deployment. See [Server Addresses]({{< ref "the-things-stack/concepts/server-addresses" >}}) for more info.
The `<server-address>` is the address of your {{% tts %}} deployment. See [Server Addresses]({{< ref "/cloud/server-addresses" >}}) for more info.

### CUPS Server Certificate / CUPS Trust

Expand Down
6 changes: 3 additions & 3 deletions doc/content/gateways/concepts/lora-basics-station/lns.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ These are general instructions for all {{% lbs %}} gateways. For specific instru

## Create a Gateway

To connect a gateway using the LNS protocol, you must first add the gateway in {{% tts %}}. This can be done either in the console, or via the command line. See instructions for [Adding Gateways]({{< ref "/gateways/concepts/adding-gateways" >}}).
To connect a gateway using the LNS protocol, you must first add the gateway in {{% tts %}}. This can be done either in the console, or via the command line. See instructions for [Adding Gateways]({{< ref "/gateways/concepts/adding-gateways" >}}).

## Create an API Key

Expand All @@ -34,15 +34,15 @@ To create this API key for your gateway, follow instructions for [Creating a Gat

## Configure Gateway

All {{% lbs %}} gateways support the following configuration options. Consult your gateway documentation for more information about configuring your specific gateway.
All {{% lbs %}} gateways support the following configuration options. Consult your gateway documentation for more information about configuring your specific gateway.

### LNS Server Address

The server address is the network endpoint of {{% tts %}} LNS. It is a combination of the **protocol** (wss), the **server address**, and the **port**.

Enter the following in your gateway as the LNS Server Address: `wss://<server-address>:8887`.

The `<server-address>` is the address of your {{% tts %}} deployment. See [Server Addresses]({{< ref "the-things-stack/concepts/server-addresses" >}}) for more info.
The `<server-address>` is the address of your {{% tts %}} deployment. See [Server Addresses]({{< ref "/cloud/server-addresses" >}}) for more info.

### LNS Server Certificate / LNS Trust

Expand Down
28 changes: 14 additions & 14 deletions doc/content/gateways/models/ciscowirelessgateway/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ This page guides you to connecting the Cisco Wireless Gateway for LoRaWAN® to {

<!--more-->

Technical specifications for this gateway can be found in [Cisco's official documentation](https://www.cisco.com/c/en/us/products/routers/wireless-gateway-lorawan/).
Technical specifications for this gateway can be found in [Cisco's official documentation](https://www.cisco.com/c/en/us/products/routers/wireless-gateway-lorawan/).

{{< figure src="cisco.png" alt="Cisco LoRaWAN Gateway" class="float plain" width="60%" >}}

Expand All @@ -29,7 +29,7 @@ Create a gateway by following the instructions for the [Console]({{< ref "/the-t

The gateway EUI is derived from the MAC address that can be found on the back panel of the gateway. To get the EUI from the MAC address insert `FFFE` after the first 6 characters to make it a 64-bit EUI. For example, if the gateway's MAC address is `5B:A0:CB:80:04:2B` then the EUI is `5B A0 CB FF FE 80 04 2B`.

The **Gateway Server Address** is the address of your {{% tts %}} deployment. See [Server Addresses]({{< ref "the-things-stack/concepts/server-addresses" >}}).
The **Gateway Server Address** is the address of your {{% tts %}} deployment. See [Server Addresses]({{< ref "/cloud/server-addresses" >}}).

## Configuration

Expand Down Expand Up @@ -62,7 +62,7 @@ Gateway> enable
To configure your Cisco Gateway to your network, type the following commands:

```
Gateway# configure terminal
Gateway# configure terminal
Gateway(config)# interface FastEthernet 0/1
```

Expand Down Expand Up @@ -146,7 +146,7 @@ This command may return the message `packet-forwarder firmware is not installed`
As a final step before setting up the packet forwarder software, we are going to enable the radio. You can see radio information with the `show radio` command:

```
Gateway# show radio
Gateway# show radio
ORA_SN: FOC21028R8S
ORA_PN: 95.1602T01
ORA_SKU: 915
Expand All @@ -164,7 +164,7 @@ on
If the radio is off, enable it with:

```
Gateway# configure terminal
Gateway# configure terminal
Gateway(config)# no radio off
Gateway(config)# exit
```
Expand All @@ -177,22 +177,22 @@ To prevent unauthorized access to the gateway, you'll want to set up user authen

To enable this secret system, you can use the following commands:

+ `Gateway# configure terminal` to enter global configuration mode.
+ To set the secret, you can use different commands:
`Gateway(config)# enable secret <secret>` to enter in plaintext the secret you wish to set, instead of `<secret>`. *Note*: Special characters cannot be used in plain secrets.
- `Gateway# configure terminal` to enter global configuration mode.
- To set the secret, you can use different commands:
`Gateway(config)# enable secret <secret>` to enter in plaintext the secret you wish to set, instead of `<secret>`. _Note_: Special characters cannot be used in plain secrets.
`Gateway(config)# enable secret 5 <secret>` to enter the md5-encrypted secret.
`Gateway(config)# enable secret 8 <secret>` to enter the SHA512-encrypted secret.
+ `Gateway(config)# exit` to exit global configuration mode.
+ `Gateway#copy running-config startup-config` to save the configuration.
- `Gateway(config)# exit` to exit global configuration mode.
- `Gateway#copy running-config startup-config` to save the configuration.

### Verification

Before we install the packet forwarder, let's run verification to ensure that the gateway is ready.

+ Type `show radio` to verify that the radio is enabled. The result should indicate **radio status: on**.
+ Type `show inventory` to verify that the **FPGAStatus** is **Ready**.
+ Type `show gps status` to verify that the GPS is correctly connected. You can get additional GPS metadata by typing `show gps info`.
+ Verify that the network connection is working. You can test this by pinging common ping servers with `ping ip <IP>`, if your local network does not block ping commands. For example, you can ping Google's servers with `ping ip 8.8.8.8`.
- Type `show radio` to verify that the radio is enabled. The result should indicate **radio status: on**.
- Type `show inventory` to verify that the **FPGAStatus** is **Ready**.
- Type `show gps status` to verify that the GPS is correctly connected. You can get additional GPS metadata by typing `show gps info`.
- Verify that the network connection is working. You can test this by pinging common ping servers with `ping ip <IP>`, if your local network does not block ping commands. For example, you can ping Google's servers with `ping ip 8.8.8.8`.

If some of those checks fail, go back to the appropriate section earlier in order to fix it.

Expand Down
Loading

0 comments on commit 1003c6b

Please sign in to comment.