> 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-fr/kilo-center/kilo-mioty-service-center/project-overview.md).

# Vue d’ensemble du projet

Vue d’ensemble du projet KiloCenter — serveur open source natif MIOTY avec des chemins de déploiement Docker, hôte Linux et Kubernetes.

## KiloCenter - Serveur réseau MIOTY open source

KiloCenter est un serveur réseau MIOTY open source pour l'exploitation de stations de base, de terminaux, du trafic montant et descendant, et d'intégrations applicatives sur un centre de services auto-hébergé.

Il s'agit d'un centre de services natif MIOTY, conçu spécifiquement pour la pile MIOTY dès le départ. Ce n'est ni un fork, ni un habillage, ni une adaptation d'un autre serveur réseau LPWAN.

MIOTY est un protocole LPWAN conçu pour la résilience aux interférences, la communication longue portée et les grandes flottes de terminaux. KiloCenter implémente la partie centre de services de cette pile avec des chemins de déploiement Docker et sur hôte Linux, des intégrations gRPC et MQTT, ainsi qu'une console de gestion web.

### Relation avec Kilo Cloud

KiloCenter Community Edition est le centre de services gratuit, open source et auto-hébergé. Son périmètre est la couche réseau MIOTY : stations de base, terminaux, trafic, opérations du centre de services et interfaces qui transmettent les données à une autre application.

L'édition Enterprise de KiloCenter est intégrée à **Kilo Cloud**. Choisissez Kilo Cloud lorsque le déploiement a également besoin du reste d'une plateforme IoT : données normalisées des appareils, tableaux de bord visuels, graphiques historiques, moteur de règles visuel, déclencheurs de conditions soutenues, alarmes et escalade, historique d'audit, contrôle d'accès et assistant IA. Les appareils MIOTY utilisent alors directement ces fonctionnalités au lieu de nécessiter des systèmes en aval distincts.

| Choisir                          | Quand cela convient                                                                                                                                                                                 |
| -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **KiloCenter Community Edition** | Vous avez besoin d'un centre de services MIOTY, souhaitez l'exploiter vous-même et intégrerez ses données gRPC ou MQTT dans vos propres applications.                                               |
| **Kilo Cloud**                   | Vous souhaitez que le centre de services Enterprise soit géré pour vous et avez besoin de règles, de visualisation, d'alarmes ou d'autres capacités de la plateforme Kilo autour des données MIOTY. |
| **Plateforme IoT Kilo sur site** | Vous avez besoin de la plateforme d'entreprise complète au sein d'une infrastructure que vous contrôlez.                                                                                            |

Voir [KiloCenter ou Kilo Cloud ?](/kilo-docs-fr/kilo-center/kilo-mioty-service-center.md#kilocenter-or-kilo-cloud) pour la limite fonctionnelle, ou commencez par le [connecteur MIOTY de Kilo Cloud](/kilo-docs-fr/kilo-iot-server/connectors/mioty-connector.md).

### Démo en direct

Un environnement de démonstration est disponible à <https://servicecenter.kiloiot.io/>

* **Nom d'utilisateur :** `demo [at] kiloiot.io`
* **Mot de passe :** `demo1234`

> Remplacez `[at]` par `@` lors de la connexion.

### Avis d'utilisation en production

L'édition communautaire est fournie telle quelle, sans support commercial. L'utilisation en production se fait à vos propres risques.

Pour des déploiements de production pris en charge, utilisez Kilo Cloud ou la plateforme IoT Kilo sur site (Contact Sales). L'édition Enterprise de KiloCenter est intégrée à Kilo Cloud et inclut un support commercial, un fonctionnement couvert par SLA, le multi-tenant et des capacités MIOTY optionnelles, notamment les sous-canaux BSSCI, l'attachement Variable MAC (VM) et la prise en charge de l'extension ReCon. Kilo Cloud ajoute également la plateforme complète autour des données MIOTY : gestion des appareils, normalisation, tableaux de bord, règles, alarmes, historique d'audit, contrôle d'accès et opérations assistées par IA.

### Fonctionnalités

#### Serveur réseau MIOTY

* **Protocole MIOTY BSSCI v1.0.0** - communication station de base vers centre de services sécurisée par TLS
* **Gestion des stations de base** - authentification basée sur certificat et surveillance de l'état
* **Gestion des terminaux** - registre des terminaux avec propagation des attachements
* **Traitement des messages** - gestion du trafic montant et descendant avec déduplication
* **Fonctionnement multi-stations de base** - couverture partagée entre les stations de base dans un déploiement auto-hébergé
* **Prise en charge du découpage des télégrammes** - prise en charge native du comportement PHY MIOTY
* **Diversité des motifs** - prise en charge de la transmission multi-motif pour plus de robustesse
* **Sécurité** - gestion des clés réseau et applicatives AES-128

#### Fonctionnalités du centre de services

* **Interface BSSCI** - prise en charge du protocole station de base vers centre de services
* **Interface SCACI** - prise en charge du protocole centre de services vers centre d'applications avec TLS, persistance de session, supervision et flux de file d'attente/statut
* **Système d'événements** - persistance centralisée des événements et alertes
* **Gestion des certificats** - modèle de confiance basé sur une autorité de certification avec prise en charge de la rotation et de la supervision
* **Partitionnement de la base de données** - stockage des messages partitionné par mois
* **Système d'archivage** - prise en charge du cycle de vie et de la rétention des données
* **Intégration MQTT** - chemin d'intégration applicative basé sur Mosquitto
* **API gRPC** - API de gestion gRPC et gRPC-web via KC-Gateway

#### Interface de gestion

* **Tableau de bord web** - console de gestion basée sur React
* **Supervision en temps réel** - vues en direct de l'état, du trafic et des alertes
* **Enregistrement des stations de base** - flux de provisioning basés sur l'interface graphique
* **Enregistrement des terminaux** - flux de gestion des terminaux via l'interface graphique
* **Flux de certificats** - statut, renouvellement du certificat serveur et flux de certificats de station de base
* **Visionneuse de messages** - vues du trafic pour différents types de messages

#### Fonctionnalités de la plateforme

* **Déploiement avec Docker Compose** - `postgres`, `redis`, `mosquitto`, `certgen`, `kc-identity`, `kilocenter`, `kc-gateway`, et `kc-web`
* **Migrations de base de données** - modifications de schéma contrôlées par version
* **Journalisation structurée** - journaux et points de terminaison de santé configurables
* **Développement multiplateforme** - Linux, macOS et Windows via WSL

### Architecture

KiloCenter utilise une architecture de services modulaire :

```
+-----------------+     +-----------------+
|   Navigateur     | --> |    KC-Web       | (:80 nginx / :5173 dev)
+-----------------+     +--------+--------+
                                 |
                                 | gRPC-web
                                 v
+-----------------+     +-----------------+          +-----------------+
| Externe         | --> |  KC-Gateway     | -------> |  KC-Identity    |
| Applications    | gRPC| (:9090 externe |  public | (:50052 interne |
| / Intégrateurs  | /   |  gRPC +         |  RPC    |  :8088 santé)   |
|                 |gRPC-|  gRPC-web,      |         +--------+--------+
|                 | web |  :8087 santé)  |                  ^
+-----------------+     +--------+--------+                   |
                                 |                            | RPC d'identité internes
                                 | gRPC interne de confiance      |
                                 v                            |
+-----------------+     +-----------------+                   |
|   Station de base | --> |    KC-Core      | ------------------+
|   (MIOTY BS)      |BSSCI| (:50051 interne|   org / adhésion /
|   (:5000 TLS)     |     |  :5000 BSSCI    |   résolution admin
+-----------------+     |  :5001 SCACI    |
                        |  :8086 santé)    | -------> +-----------------+
+-----------------+     +--------+--------+   SQL    |   PostgreSQL    |
| Centre d'applications | ------------>|                   |   via KC-DB     |
|                      |    SCACI TLS |                   | (:5433 mappage hôte)|
|   (:5001 TLS)       |              |                   +-----------------+
+-----------------+              |
                                 +-----------------> +-----------------+
                                 |                   |      Redis      |
                                 |                   |     (:6379)     |
                                 |                   +-----------------+
                                 |
                                 +-----------------> +-----------------+
                                                     |   Mosquitto     |
                                                     |   via KC-MQTT   |
                                                     | (:1883 / :9001) |
                                                     +-----------------+
```

C'est la vue d'exécution. `KC-Gateway` est le point d'entrée API externe du centre de services. Il expose gRPC natif et gRPC-web sur le port `9090`, donc à la fois `KC-Web` et les applications tierces s'intègrent à KiloCenter via la même surface d'API publique. `KC-Core` utilise également des RPC internes vers `KC-Identity` pour les flux d'organisation, d'adhésion et de résolution admin. Dans Docker Compose, un service `certgen` à exécution unique s'exécute également avant KC-Core au premier démarrage pour créer l'autorité de certification partagée et l'ensemble des certificats serveur. Les modules du dépôt sont listés ci-dessous.

#### Modules du dépôt

* **KC-Web** - interface de gestion web servie par nginx sur le port 80
* **KC-Gateway** - point d'entrée gRPC-web externe et proxy de requêtes sur le port 9090
* **KC-Identity** - service d'identité et d'organisation sur le port 50052
* **KC-Core** - BSSCI, SCACI, API gRPC interne et logique du centre de services
* **KC-DB** - migrations PostgreSQL, dépôts et interfaces de stockage utilisés par les services d'exécution
* **KC-MQTT** - package d'intégration MQTT utilisé par KC-Core ; non déployé comme conteneur séparé dans la pile Docker communautaire
* **pkg** - gestion de version partagée et utilitaires Go communs utilisés dans tous les modules

### Mise en route

#### Démarrage rapide (Docker Compose)

Prérequis :

* Docker et Docker Compose v2
* Git

1. Cloner le dépôt :

```
git clone https://github.com/Kiloiot/KiloServiceCenter.git
cd KiloServiceCenter
```

2. Copier le modèle d'environnement :

```
cp .env.example .env
```

3. Démarrer la pile :

```
docker compose up --build -d
```

Cela démarre `postgres`, `redis`, `mosquitto`, `certgen`, `kc-identity`, `kilocenter`, `kc-gateway`, et `kc-web`.

Les certificats TLS sont générés automatiquement au premier démarrage. Les migrations de base de données s'exécutent au lancement.

4. Ouvrez l'interface web et connectez-vous avec le compte administrateur par défaut :

```
http://localhost/
```

|                  |                               |
| ---------------- | ----------------------------- |
| **E-mail**       | `admin [at] kilocenter.local` |
| **Mot de passe** | `admin123!`                   |

> Remplacez `[at]` par `@` lors de la connexion.

> **Avertissement :** Modifiez le mot de passe administrateur par défaut ou supprimez ce compte avant tout déploiement en production ou exposé au public. Les identifiants par défaut sont publiés dans ce dépôt.

> **Important :** KC-Identity et KC-Gateway doivent partager le même secret HMAC pour que l'authentification JWT fonctionne. Le secret est configuré dans `config/config.identity-docker.yaml` et `config/config.gateway-docker.yaml` sous `auth.hmac_secret`. Si ces valeurs diffèrent, vous verrez des erreurs `invalid_token` après la connexion. Voir le [guide Docker Compose](https://github.com/Kiloiot/kilo-service-center/blob/3d0674b296989f1f2337563549e59d6ebd480b65/GitBook/02-GettingStarted/03-installation-docker-compose.md#authentication-secret-hmac) pour plus de détails.

Pour des détails spécifiques à Docker, la configuration d'un nom d'hôte TLS personnalisé et l'export de l'autorité de certification, voir [Installation avec Docker Compose](https://github.com/Kiloiot/kilo-service-center/blob/3d0674b296989f1f2337563549e59d6ebd480b65/GitBook/02-GettingStarted/03-installation-docker-compose.md).

#### Autres modes d'installation

* [Installation sur hôte Linux](https://github.com/Kiloiot/kilo-service-center/blob/3d0674b296989f1f2337563549e59d6ebd480b65/GitBook/02-GettingStarted/04-installation-linux-host.md) - déploiement manuel sur hôte avec `KC-Core/certgen`
* [VM locale et automatisation](https://github.com/Kiloiot/kilo-service-center/blob/3d0674b296989f1f2337563549e59d6ebd480b65/GitBook/02-GettingStarted/05-installation-local-vm-and-automation.md) - flux de travail de VM basé sur Docker
* [Mise en route](https://github.com/Kiloiot/kilo-service-center/blob/3d0674b296989f1f2337563549e59d6ebd480b65/GitBook/02-GettingStarted/README.md) - architecture, prérequis et routage d'installation

#### Export du certificat de l'autorité de certification

Les stations de base et les centres d'applications SCACI externes ont besoin du certificat de l'autorité de certification pour établir la confiance TLS :

```
docker compose cp kilocenter:/app/certificates/ca.crt ./ca.crt
```

#### Arrêt

```
# Arrêter les services et conserver les volumes de données
docker compose down

# Réinitialisation complète : supprime la base de données, les certificats et les autres volumes Docker
docker compose down -v
```

### Configuration

Copiez `.env.example` dans `.env` et adaptez selon les besoins. Clés Docker Compose courantes :

```
KILOCENTER_POSTGRESQL_USERNAME=kilocenter
KILOCENTER_POSTGRESQL_PASSWORD=changeme
KILOCENTER_POSTGRESQL_DATABASE=kilocenter
KILOCENTER_LOG_LEVEL=info
# KILOCENTER_TLS_SERVER_NAME=localhost
```

Définissez `KILOCENTER_TLS_SERVER_NAME` avant le premier `docker compose up` si vous avez besoin d'un certificat serveur pour un nom d'hôte spécifique au lieu de `localhost`.

### Documentation de l'API

#### Accès gRPC

* point de terminaison gRPC / gRPC-web externe : `http://localhost:9090`
* Santé du gateway : `http://localhost:8087/health`
* Santé de KC-Core : `http://localhost:8086/health`
* Santé de KC-Identity : `http://localhost:8088/health`
* La réflexion gRPC est activée par défaut sur KC-Core et KC-Identity pour les outils

#### Surfaces de service

* `CoreService` - gestion des appareils, opérations de protocole, analytique, supervision, certificats et RPC de supervision SCACI
* `IdentityService` - authentification, utilisateurs, organisations et clés API
* `KiloCenterService` - surface de compatibilité qui délègue à Core et Identity

Dans le développement local à partir des sources, KC-Web peut diriger son proxy Vite vers une autre cible gateway via `INGRESS_GRPC_URL`. Dans les déploiements conteneurisés, KC-Web est servi par nginx et redirige automatiquement vers KC-Gateway.

### Déploiement depuis les sources et sur hôte

Docker Compose est le chemin d'installation recommandé pour l'évaluation et la plupart des déploiements.

Si vous avez besoin d'un flux de travail sans conteneur, utilisez les guides dédiés plutôt qu'un démarrage manuel ponctuel :

* [Installation sur hôte Linux](https://github.com/Kiloiot/kilo-service-center/blob/3d0674b296989f1f2337563549e59d6ebd480b65/GitBook/02-GettingStarted/04-installation-linux-host.md)
* [VM locale et automatisation](https://github.com/Kiloiot/kilo-service-center/blob/3d0674b296989f1f2337563549e59d6ebd480b65/GitBook/02-GettingStarted/05-installation-local-vm-and-automation.md)

#### Kubernetes

Un chart Helm est fourni pour le déploiement Kubernetes. Voir [helm/kilocenter/](https://github.com/Kiloiot/kilo-service-center/blob/3d0674b296989f1f2337563549e59d6ebd480b65/helm/kilocenter) pour le chart complet et la référence de configuration.

```
# Installer KiloCenter (nécessite PostgreSQL et Redis externes)
helm install kilocenter helm/kilocenter -f my-values.yaml
```

Reportez-vous au [README du chart Helm](https://github.com/Kiloiot/kilo-service-center/blob/3d0674b296989f1f2337563549e59d6ebd480b65/helm/kilocenter/README.md) pour les prérequis, les options de configuration et les valeurs d'exemple.

### Prise en charge du protocole MIOTY

KiloCenter implémente la pile centre de services MIOTY définie par la MIOTY Alliance :

* Conscience de la couche physique pour le découpage des télégrammes
* Traitement des messages des couches MAC et réseau
* Prise en charge des terminaux unidirectionnels et bidirectionnels
* Gestion des adresses courtes
* Flux d'attachement et de détachement
* Prise en charge du chiffrement de bout en bout

L'édition communautaire se concentre sur la pile centrale du centre de services. Les capacités MIOTY optionnelles telles que les sous-canaux BSSCI, l'attachement Variable MAC (VM), les extensions ReCon et le fonctionnement multi-locataire d'entreprise relèvent de l'offre Enterprise.

#### Profils et comportements pris en charge

* MIOTY TS-UNB
* Fonctionnement de terminaux alimentés par batterie
* Plusieurs motifs de redondance
* Gestion de la réception multi-stations de base

### Déploiement en production

Ce dépôt n'est pas le véhicule recommandé pour un déploiement en production. Utilisez Kilo Cloud ou la plateforme IoT Kilo sur site pour les déploiements de production nécessitant un support commercial, des garanties opérationnelles, une couverture SLA, le multi-tenant et des capacités MIOTY optionnelles telles que les sous-canaux BSSCI, Variable MAC (VM) et les extensions ReCon. Choisissez Kilo Cloud lorsque le déploiement a également besoin de règles visuelles, de tableaux de bord, de données historiques, d'alarmes et d'escalade, d'un historique d'audit ou d'autres flux de travail de la plateforme sans construire vous-même ces systèmes autour de la Community Edition.

#### Configuration système

* Minimum : 2 cœurs CPU, 4 Go de RAM, 20 Go de stockage
* Recommandé : 4 cœurs CPU, 8 Go de RAM, 100 Go de SSD
* OS : Linux (Ubuntu 22.04 LTS recommandé)

#### Considérations de sécurité

* Utilisez toujours des certificats TLS en production
* Changez les identifiants par défaut avant le déploiement
* Restreindre BSSCI (`5000`) et SCACI (`5001`) aux réseaux de confiance
* Sauvegardez régulièrement la base de données
* Surveillez les alertes système et l'expiration des certificats

### Documentation

* [Mise en route](https://github.com/Kiloiot/kilo-service-center/blob/3d0674b296989f1f2337563549e59d6ebd480b65/GitBook/02-GettingStarted/README.md)
* [Architecture et composants](https://github.com/Kiloiot/kilo-service-center/blob/3d0674b296989f1f2337563549e59d6ebd480b65/GitBook/02-GettingStarted/01-architecture-and-components.md)
* [Installation avec Docker Compose](https://github.com/Kiloiot/kilo-service-center/blob/3d0674b296989f1f2337563549e59d6ebd480b65/GitBook/02-GettingStarted/03-installation-docker-compose.md)
* [Installation sur hôte Linux](https://github.com/Kiloiot/kilo-service-center/blob/3d0674b296989f1f2337563549e59d6ebd480b65/GitBook/02-GettingStarted/04-installation-linux-host.md)
* [Bases de la configuration](https://github.com/Kiloiot/kilo-service-center/blob/3d0674b296989f1f2337563549e59d6ebd480b65/GitBook/02-GettingStarted/06-configuration-basics.md)
* [Documentation de l'API](https://github.com/Kiloiot/kilo-service-center/blob/3d0674b296989f1f2337563549e59d6ebd480b65/GitBook/04-Integrations/02-api.md)
* [Intégration MQTT](https://github.com/Kiloiot/kilo-service-center/blob/3d0674b296989f1f2337563549e59d6ebd480b65/GitBook/04-Integrations/03-mqtt-first-steps.md)
* [Sécurité](https://github.com/Kiloiot/kilo-service-center/blob/3d0674b296989f1f2337563549e59d6ebd480b65/GitBook/05-Security/01-security-and-tenant-isolation-basics.md)

### Licence

KiloCenter Community Edition est sous licence [GNU Affero General Public License v3.0 ou ultérieure](https://github.com/Kiloiot/kilo-service-center/blob/3d0674b296989f1f2337563549e59d6ebd480b65/LICENSE).

Si vous exécutez une version modifiée en tant que service réseau, l'AGPL exige que vous mettiez le code source modifié à la disposition des utilisateurs. Le dépôt source est [github.com/Kiloiot/KiloServiceCenter](https://github.com/Kiloiot/KiloServiceCenter).

Voir [TRADEMARKS.md](https://github.com/Kiloiot/kilo-service-center/blob/3d0674b296989f1f2337563549e59d6ebd480b65/TRADEMARKS.md) pour la politique de marques.

Copyright 2024-2026 Tim Kravchunovsky et les contributeurs.

### Support

* **Problèmes**: [Problèmes GitHub](https://github.com/Kiloiot/KiloServiceCenter/issues)
* **Documentation**: [GitBook/](https://github.com/Kiloiot/kilo-service-center/blob/3d0674b296989f1f2337563549e59d6ebd480b65/GitBook)
* **MIOTY Alliance**: [mioty-alliance.com](https://mioty-alliance.com/)

### Remerciements

KiloCenter repose sur les normes définies par la MIOTY Alliance et sur des modèles opérationnels courants pour l'infrastructure IoT auto-hébergée.

<br>


---

# 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-fr/kilo-center/kilo-mioty-service-center/project-overview.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.
