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.
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 ? pour la limite fonctionnelle, ou commencez par le connecteur MIOTY de Kilo Cloud.
Démo en direct
Un environnement de démonstration est disponible à https://servicecenter.kiloiot.io/
Nom d'utilisateur :
demo [at] kiloiot.ioMot 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, etkc-webMigrations 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 :
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
Cloner le dépôt :
Copier le modèle d'environnement :
Démarrer la pile :
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.
Ouvrez l'interface web et connectez-vous avec le compte administrateur par défaut :
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.yamletconfig/config.gateway-docker.yamlsousauth.hmac_secret. Si ces valeurs diffèrent, vous verrez des erreursinvalid_tokenaprès la connexion. Voir le guide Docker Compose 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.
Autres modes d'installation
Installation sur hôte Linux - déploiement manuel sur hôte avec
KC-Core/certgenVM locale et automatisation - flux de travail de VM basé sur Docker
Mise en route - 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 :
Arrêt
Configuration
Copiez .env.example dans .env et adaptez selon les besoins. Clés Docker Compose courantes :
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:9090Santé du gateway :
http://localhost:8087/healthSanté de KC-Core :
http://localhost:8086/healthSanté de KC-Identity :
http://localhost:8088/healthLa 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 SCACIIdentityService- authentification, utilisateurs, organisations et clés APIKiloCenterService- 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 :
Kubernetes
Un chart Helm est fourni pour le déploiement Kubernetes. Voir helm/kilocenter/ pour le chart complet et la référence de configuration.
Reportez-vous au README du chart Helm 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 confianceSauvegardez régulièrement la base de données
Surveillez les alertes système et l'expiration des certificats
Documentation
Licence
KiloCenter Community Edition est sous licence GNU Affero General Public License v3.0 ou ultérieure.
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.
Voir TRADEMARKS.md pour la politique de marques.
Copyright 2024-2026 Tim Kravchunovsky et les contributeurs.
Support
Problèmes: Problèmes GitHub
Documentation: GitBook/
MIOTY Alliance: 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.
Mis à jour