> 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/configuration-basics.md).

# Noções Básicas de Configuração

Ficheiros de configuração do KiloCenter e definições base — config.docker.yaml, KC-Core, KC-Gateway, mapeamentos de portas.

### Objetivo

Entenda e verifique a configuração de base do tempo de execução para uma implementação local.

### Ficheiros de Configuração

* `kilocenter-modules/config/config.docker.yaml` -- configuração do KC-Core (modo contentor)
* `kilocenter-modules/KC-Core/config.yaml` -- configuração do KC-Core (modo de desenvolvimento a partir do código-fonte)
* `kilocenter-modules/KC-Gateway/config.yaml` -- configuração do KC-Gateway (modo de desenvolvimento a partir do código-fonte)
* `kilocenter-modules/docker-compose.yml` -- definições de serviços e mapeamentos de portas

### Predefinições do Modo Contentor

No modo contentor, o KC-Core lê `config/config.docker.yaml`. Todos os endereços dos serviços usam nomes DNS dos serviços Docker (por ex., `postgres`, `redis`, `mosquitto`). As variáveis de ambiente em `.env` substituem as predefinições do compose.

### Predefinições do Modo de Desenvolvimento a partir do Código-Fonte

`kilocenter-modules/start-dev.sh` exporta variáveis de ambiente e deteta automaticamente a porta do PostgreSQL:

* Se o contentor Docker `kilocenter-postgres` estiver em execução, usa a porta `5433`.
* Caso contrário, recorre a `5432` para um PostgreSQL local no anfitrião.

### Definições a Verificar Antes de Testar

* **Base de dados**: anfitrião, porta, credenciais (predefinição: `localhost:5433`, utilizador `kilocenter`, palavra-passe `changeme`)
* **saúde do KC-Core**: porta `8086`
* **KC-Gateway gRPC-web**: porta `9090`
* **saúde do KC-Gateway**: porta `8087`
* **BSSCI**: porta `5000`, caminhos dos certificados TLS
* **SCACI**: porta `5001`, caminhos dos certificados TLS
* **MQTT**: anfitrião do broker, porta e credenciais

### Caminhos dos Certificados TLS

Os caminhos dos certificados TLS do BSSCI e SCACI estão configurados na secção `protocolo` de `KC-Core/config.yaml` (desenvolvimento a partir do código-fonte) ou `config/config.docker.yaml` (contentor):

```yaml
protocol:
  bsci_tls:
    enabled: true
    cert_file: "certificates/server.crt"
    key_file: "certificates/server.key"
    ca_file: "certificates/ca.crt"
    min_version: "1.2"
  scaci_tls:
    enabled: true
    cert_file: "certificates/server.crt"
    key_file: "certificates/server.key"
    ca_file: "certificates/ca.crt"
    min_version: "1.3"
```

Os caminhos na configuração de desenvolvimento a partir do código-fonte são relativos ao diretório de trabalho do KC-Core. A configuração do contentor usa caminhos absolutos (`/app/certificates/`). Gere os certificados antes da primeira inicialização — veja a Instalação com Docker Compose.

### Credenciais Predefinidas

Estas predefinições existem por conveniência no desenvolvimento local. Altere-as para qualquer implementação não local:

* PostgreSQL: utilizador `kilocenter`, palavra-passe `changeme`
* broker MQTT: utilizador `admin`, palavra-passe `KiloCenter`
* início de sessão de fábrica da estação base AVA: `ubuntu` / `123456`

### Integração MQTT

O MQTT está **desativado por predefinição** em `KC-Core/config.yaml`:

```yaml
mqtt:
  enabled: false
  host: "localhost"
  port: 1883
  username: "admin"
  password: "KiloCenter"
```

Para ativar o MQTT, defina `enabled: true` e reinicie o KC-Core. O broker Mosquitto tem de estar em execução (está incluído na stack do Docker Compose). Consulte Primeiros Passos com MQTT para detalhes de integração.

### Lista de Verificação de Validação

* O KC-Core inicia sem erros e `/health` responde na porta `8086`
* O KC-Gateway inicia e `/health` responde na porta `8087`
* **Modo contêiner**: o KC-Web é carregado em `Altere a palavra-passe de administrador predefinida ou remova esta conta antes de qualquer implementação em produção ou pública. As credenciais predefinidas estão publicadas neste repositório.`
* **Modo de desenvolvimento a partir do código-fonte**: o KC-Web é carregado em `http://localhost:5173`
* O KC-Web consegue alcançar o KC-Gateway na porta `9090` (os pedidos gRPC-web têm sucesso na consola do navegador)


---

# 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/configuration-basics.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.
