# Pagerino: **Application server**

### Description

Dockerized server communicating with Chirpstack (v4) and processing incoming data.

### Features

Current working and in-progress capabilities include:
 - receiving uplinks
 - sending downlinks
 - logging messages and telemetery
 - managing users, devices, messages and other objects
 - accepting api requests

### Configuration

Can be found in server.env:
**CHIRP_API_KEY** - used to get more detailed information about the network
of devices from Chirpstack

**MQTT_ADDRESS** - address for MQTT broker that manages uplinks & downlinks,
do not change unless you reconfigure the chirpstack as well

**MQTT_CLIENT_ID** - ID to use when communicating with broker, can be anything

**MQTT_QOS** - quality of service level, leave at zero unless your network supports it

**APP_ID** - ID of accessing application registred in Chirpstack

**API_PORT** - port at which API is provided, this and its wrappers are the
only way to officially communicate with the server

The app requires some other shared variables from shared.env.
If not present, provide the following:
**LOG_PREFIX**
**SERVER_NAME**
**TIMEOUT** - used for establishing connections

### Prerequisites

The server communicates through ssl with MQTT and needs the following files
generated from Chirpstack in the certs directory:
- ca.pem
- client.key
- client.pem

It uses Chirpstack's gRPC API, so it needs the compiled proto files into go in
the src/app_comm/api directory.

### Usage

The server requires to be on the same docker network as MQTT broker and Chirpstack
to properly function.

To start have Chirpstack v4 running in detached state and execute:
```docker compose up```


*Created by Olek \@ Gorak Industries*  

