> For the complete documentation index, see [llms.txt](https://docs.kiloiot.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kiloiot.io/kilo-docs-pt/kilo-center/kilo-mioty-service-center/getting-started/prerequisites.md).

# Pré-requisitos

Pré-requisitos do KiloCenter — Docker, Docker Compose, Git e toolchains opcionais (Go, Bun) para instalação ou compilação.

### Obrigatório

* Docker e Docker Compose v2
* Git

### Requisitos adicionais para compilação a partir do código-fonte

Se você estiver compilando KC-Core, KC-Gateway ou KC-Web a partir do código-fonte (desenvolvimento ou contribuição):

* Go 1.24.4+
* Runtime Bun (para compilação do KC-Web e servidor de desenvolvimento)

### Ferramentas opcionais

Úteis para validação e solução de problemas:

* `grpcurl` para verificações da API gRPC
* `mosquitto_sub` e `mosquitto_pub` para testes MQTT (necessário apenas se você habilitar a integração MQTT)
* `psql` para inspeção direta do banco de dados

### Dependências de infraestrutura

O KiloCenter requer estes serviços em tempo de execução:

* **PostgreSQL 18+** -- armazenamento primário de dados
* **Redis 7+** -- cache
* **Mosquitto 2.0+** -- broker MQTT (opcional para configuração inicial; o MQTT está desativado por padrão em `KC-Core/config.yaml`)

Na configuração recomendada, os três executam via Docker Compose. O Mosquitto está incluído na stack do Docker Compose, mas o KC-Core não se conectará a ele, a menos que o MQTT seja explicitamente habilitado. Consulte os Primeiros Passos do MQTT para instruções de configuração.

### Portas necessárias

Certifique-se de que estas portas estejam disponíveis antes de iniciar:

| Porta | Serviço             | Observações                        |
| ----- | ------------------- | ---------------------------------- |
| 80    | KC-Web (container)  | nginx — proxy SPA + gRPC-web       |
| 9090  | KC-Gateway          | API gRPC-web externa               |
| 8086  | Saúde do KC-Core    | Saúde e Prometheus                 |
| 8087  | Saúde do KC-Gateway | Endpoint de saúde do gateway       |
| 5000  | BSSCI               | Protocolo da estação base (TLS)    |
| 5001  | SCACI               | Protocolo do centro de aplicação   |
| 50051 | KC-Core gRPC        | Interno, somente loopback          |
| 5433  | PostgreSQL          | Mapeamento de porta do host Docker |
| 6379  | Redis               | Cache                              |
| 1883  | MQTT                | Broker Mosquitto                   |

A porta 5173 é usada apenas no modo de desenvolvimento a partir do código-fonte (servidor de desenvolvimento Vite).

### Certificados TLS

O KiloCenter requer certificados TLS para comunicação com a estação base (BSSCI) e comunicação com o centro de aplicação (SCACI). Gere-os usando o `certgen` serviço compose antes de iniciar o KC-Core pela primeira vez:

```bash
docker compose run --rm certgen
```

> **Propriedade dos arquivos (Linux):** Se os arquivos gerados pertencerem ao root, execute novamente com `UID=$(id -u) GID=$(id -g)` como prefixo.

Consulte as etapas de inicialização dos certificados em Instalação do Docker Compose.

### Estrutura do repositório

Clone o repositório e trabalhe a partir do `kilocenter-modules/` diretório:

```bash
git clone <repository-url>
cd kilocenter-modules
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.kiloiot.io/kilo-docs-pt/kilo-center/kilo-mioty-service-center/getting-started/prerequisites.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
