Démarrer

Introduction

Kubuno est une plateforme cloud auto-hébergée et modulaire : un petit core (le « système d'exploitation ») et une constellation de modules indépendants. Cette documentation s'adresse aux développeurs qui veulent créer leur propre module.

Le modèle mental #

Un module Kubuno est un processus séparé (Rust ou Python) qui s'enregistre auprès du core au démarrage. Le core proxifie ensuite ses routes, distribue les événements et gère son cycle de vie. Un module ne lie jamais le core directement : il dialogue par HTTP et par des points d'extension bien définis.

  • Indépendance — chaque module est son propre dépôt git et son propre paquet .deb.
  • Découverte dynamique — ne supposez jamais qu'un autre module est installé.
  • Cohérence — le frontend est chargé au runtime dans un host React unique partagé.

Anatomie d'un module #

mon-module/
├── Cargo.toml
├── module.toml            # le manifeste : id, port, routes, sidebar, events
├── src/
│   ├── main.rs            # bootstrap : config, pool DB, serveur Axum, enregistrement
│   ├── handlers/          # handlers HTTP (les routes déclarées au manifeste)
│   ├── models/            # structs sqlx::FromRow (schéma du module)
│   ├── services/          # logique métier
│   └── events.rs          # publication d'événements
├── migrations/            # SQL versionné, schéma dédié au module
├── frontend/
│   └── src/entry.ts       # register() : routes, sidebar, toolbar, slots
└── build_deb.sh
Note

Le meilleur point de départ pour lire du code est le dépôt core, puis le module pilote calendar.

Ce dont vous aurez besoin #

OutilVersion
Rust≥ 1.82 (edition 2021)
Node.js≥ 24
PostgreSQL16

Passez à l'architecture pour comprendre les pièces, ou directement au démarrage rapide.