r-io suiter-io suitereference docs
← Documentation home
Reference / First run

Getting started

From an archive to a first deduced collaborative process in one sitting: run the standalone, open r-ioga, load the IMT Albi Crisis use case, replay a sensor scenario in r-iosemit, watch the alerts in r-iota, then deduce, deploy and follow a process.

Everything is embedded by default

The standalone ships its own JRE and starts an embedded Neo4j and an embedded MongoDB. No database, application server or Python installation is required for a first run; the AI assistants only need an LLM provider key if you want to use them.

01 · Get the suite

Download an archive or build it

Option A

Prebuilt distribution

Download the Linux or Windows archive from the Nexus distribution site listed in Quick start & releases (stable v2026-01-01 or the current 1.0-SNAPSHOT), then unzip it in a path without spaces. The archive weighs about 1.3 GB because it bundles a JRE and every web application.

Option B

Build from source

For the current development branch, the infrastructure POM requires JDK 27; use Maven 3.9.16 and Python 3.13, long path support on Windows. Build ts/ first, then java/, with mvn clean install -Dmaven.test.skip -T 1C -Dlicense.skip=true. Generate the distribution from java/packaging/gind-r-io-standalone with -Ddistrib=windows or -Ddistrib=linux; the archive lands in target/.

Layout

Inside the archive

bin/ start and stop scripts, lib/ the launcher jar (gind-r-io-standalone-<version>.jar), conf/ the unified_config.properties and the generated per-component configurations, jre/<os>/ the bundled Java runtime, plus the process repository and logs created at run time.

02 · Run the standalone

One script, sixteen services, fourteen web applications

The scripts adjust the host key of the configuration files (startup-local-distrib forces localhost, startup keeps the network name) and then run the launcher with the start command. The launcher checks that every configured port is free, starts the embedded databases, the backend services in four waves and finally the web applications, then opens r-ioga in your browser.

bin/Linux · Windows
# Linux
cd bin
./startup-local-distrib.sh          # or ./startup.sh on a machine reachable by its network name

# Windows
cd bin
startup-local-distrib.bat

# equivalent command run by the scripts
../jre/<os>/bin/java -Dfile.encoding=UTF-8 -Xmx4048m --add-opens=... -jar ../lib/gind-r-io-standalone-<version>.jar start

The console then shows the r-iosuite> prompt. Type info to list the started web services with their host and port, shutdown to stop the suite and exit to leave the console. The first start takes a few minutes: embedded MongoDB and Neo4j initialise, metamodels and domains are published, and the predefined use cases listed in load-predefined-usecases are loaded.

ApplicationURLUse it to
r-iogahttp://localhost:9100/r-iogaSign in, manage collaborations, knowledge spaces, projects and use cases; deploy and follow processes
r-iodahttp://localhost:9102/r-iodaModel partners, resources, functions, objectives and risks
r-iosemithttp://localhost:9112/r-iosemitReplay sensor datasets and mock partner endpoints
r-iotahttp://localhost:9108/r-iotaFollow alerts, detection and the situation on the map
r-iodedhttp://localhost:9120/r-iodedPick and edit deduction strategies
Otherssee web application portsr-iose 9110, r-iored 9118, r-iosepe 9114, r-ioplay 9104, r-iome 9116, r-iocal 9122, r-iomega 9124, r-iote 9128
03 · First session

Sign in and choose a working context

Step 1

Sign in

When defaultAdmin is true (the default), an administrator account is created at first start; its credentials are those of your installation and are not reproduced here. You can also create a user from the sign-in page (register) and, once an administrator exists, manage accounts in r-ioga.

Step 2

Create or select a collaboration

A collaboration groups users and knowledge spaces; a knowledge space is the graph you will work in. Create both from r-ioga, or select the ones a use case created. Every application you open afterwards shares this context.

Step 3

Open the project entry point

r-ioga lists the projects of the collaboration. A project ties a domain, its model extensions, a detection strategy and shared resources together; use cases are ready-made projects.

04 · Create a use case

Build Fire at Albi Cathedral from scratch

A use case is nothing more than a project whose models are complete. The hello world of r-io builds one in about thirty minutes, from an r-io where nothing is loaded, with the AI assistants of r-ioda. The guided walkthrough shows every screen.

  1. In r-ioga, create a Crisis project named Fire at Albi Cathedral (the name cannot change afterwards) and clear its reference projects.
  2. In r-ioda, Context And Partners, let the AI Creator Assistant create the city Albi and the building Albi Cathedral fixed onto Albi, and check in r-ioplay that both sit at the right place on the map. Then create the role Firefighter with its functions and one firefighter, renamed Owen Hartley (Olivia Hartley if the generated person is a woman), with Generate corresponding user to give him an r-io4U account (login ohartley). Add the function Confirm Fire, with a Radio output Fire Confirmed: Extinguish fires Needs it, and the edge carries the condition @Fire Confirmed[Confirm Fire] == "Yes".
  3. In Objectives, with only Freeze checked, add a Fire_Alert, generate its Treats objective and make Extinguish fires satisfy it.
  4. Back in Context And Partners, create a dedicated smoke sensor on the cathedral that references the frozen alert.
  5. r-iota shows no alert. Play the dataset of the sensor step by step in r-iosemit: at the fourth step the alert becomes sure. Click Find solution(s) in r-iota: in the execution graph, the Sequence_Flow toward Extinguish fires carries the copied condition (CE badge, shown on hover).
  6. In r-io4U, logged in as Owen Hartley, the tasks appear on their own after the deduction: tick Confirm Fire, answer Yes in its output form, then tick Extinguish fires: the process ends and r-iota shows no more alert. As the expert, validate the resolution with Delete positive deviations in r-iota: the active objective and alert are deleted, the flames leave the cathedral and the supervision ends. Replay the sensor: the fire starts again as a new alert; answer No this time and the process ends through the otherwise flow. Export the project as a zip archive to import it elsewhere.
The process deduced for the fire: Confirm Fire, then Extinguish fires if the fire is confirmed.
The process deduced for the fire: Confirm Fire, then Extinguish fires if the fire is confirmed.

Open the guided walkthrough →

05 · Load a use case

Start from IMT Albi Crisis

Two use cases are on the runtime classpath: IMT Albi Crisis and Crisis Event Show Parc des Princes. The released distribution pre-loads IMT Albi Crisis into the knowledge space named after it, inside the “R-IO Suite” collaboration; if your configuration does not, load it from r-ioga.

  1. In r-ioga, open the Load use cases dialog: it lists the packaged use cases and can download further ones from Nexus (downloadRemoteUsecase).
  2. Choose IMT Albi Crisis. The models are published to the graph through the governance (batch publication, interceptors and history), and its game scenarios and shared resources come with it.
  3. Open r-ioda in the same context to browse the campus: buildings, networks, partners, sensors, risks and objectives, exactly as described on the use case page.
06 · Play a scenario

Feed the platform without real sensors

r-iosemit

Select the game scenario

IMT Albi Crisis now ships “Default Game Scenario”. Select it or create a dated timeline; older fixed-step Albi scenarios are no longer bundled. See Scenario timelines for the current format.

r-iosemit

Play the datasets

Advance the shared preparation/principal pairs. Every participating controller must acknowledge each phase before the next begins. Replayed readings follow the real path: sensor manager, time series, event broker, CEP or ML rules.

r-iota

Watch the alerts

Interpreted facts (dangers, effects, emerging risks) appear as alerts and on the map; CEP alerts are sure, ML alerts ask for validation. The detection page compares the expected situation with the field.

07 · Deduce and run

From objectives to a supervised process

  1. From r-iota (deduce dialog) or r-ioded, launch a deduction with the Drools Simple Satisfaction strategy on the objectives manager of the project. The campaign runs asynchronously; progress arrives through the SOLUTION topic.
  2. Review the solutions: each one is a planned collaborative process with assigned actors, resources and expected dates. Select the one to execute.
  3. Deploy and run it: r-ioga (or r-iosepe’s run-and-supervise chain) deploys the process on the workflow engine, starts it and supervises it. Computer tasks call the mock endpoints created by the scenario; human tasks appear in the to-do list of the assigned persons and in r-io4U.
  4. Follow execution in r-iota and r-iomega: monitoring events show each exchange and the progression of the instance.
08 · Stop

Shut down cleanly

console or bin/
r-iosuite> shutdown        # stops services, web applications and embedded databases, waits for ports to free
r-iosuite> exit

# or, from another terminal
./stop.sh        # Linux
stop.bat         # Windows
09 · Troubleshooting

The usual first-run issues

SymptomCauseFix
“This port is not available” at startThe launcher checks every configured port before booting.Free the port or change the key in conf/unified_config.properties (see Configuration & ports).
Out of memory or very slow startSixteen services and fourteen web applications in one JVM.Keep the 4 GB heap of the scripts; close other Java processes; prefer a lighter profile when embedding the container yourself.
Windows: path too longDeeply nested WebJar and Neo4j paths.Enable LongPathsEnabled and Git core.longpaths as described in the README; unzip near the drive root.
Embedded MongoDB does not startPort 27017 busy or a previous instance left data.Stop the other MongoDB or set mongodb-database-port; at start, the embedded launcher only removes the mongod left by a previous run of the same installation (./target/mongod.pid) and its data; a MongoDB started by another program is never stopped.
No alert after playing a scenarioThe sensor node is not ACTIVE or no CEP/ML rule is deployed for it.Check the sensor in r-iose and its rule in r-iored; the Sensor interceptor deploys the configuration when the node is published.
Deduction ends with no solutionNo actor provides the required functions, or resources cannot be assigned.Read the campaign observation in r-iosepe; complete Provides relations and resources in r-ioda.
Référence / Premier démarrage

Premiers pas

De l’archive à un premier processus collaboratif déduit, en une séance : lancer le standalone, ouvrir r-ioga, charger le cas d’usage IMT Albi Crisis, rejouer un scénario de capteurs dans r-iosemit, suivre les alertes dans r-iota, puis déduire, déployer et suivre un processus.

Tout est embarqué par défaut

Le standalone livre son propre JRE et démarre un Neo4j et un MongoDB embarqués. Aucune base, serveur d’applications ni installation Python n’est requis pour un premier essai ; les assistants IA n’ont besoin d’une clé de fournisseur de LLM que si vous voulez les utiliser.

01 · Obtenir la suite

Télécharger une archive ou la construire

Option A

Distribution préconstruite

Téléchargez l’archive Linux ou Windows depuis le site de distribution Nexus listé dans Démarrage & releases (stable v2026-01-01 ou 1.0-SNAPSHOT courant), puis décompressez-la dans un chemin sans espace. L’archive pèse environ 1,3 Go car elle embarque un JRE et toutes les applications web.

Option B

Construire depuis les sources

Pour la branche de développement actuelle, le POM d’infrastructure impose JDK 27 ; utilisez Maven 3.9.16 et Python 3.13, prise en charge des chemins longs sous Windows. Construisez d’abord ts/, puis java/, avec mvn clean install -Dmaven.test.skip -T 1C -Dlicense.skip=true. Générez la distribution depuis java/packaging/gind-r-io-standalone avec -Ddistrib=windows ou -Ddistrib=linux ; l’archive arrive dans target/.

Arborescence

Dans l’archive

bin/ scripts de démarrage et d’arrêt, lib/ le jar du lanceur (gind-r-io-standalone-<version>.jar), conf/ le unified_config.properties et les configurations générées par composant, jre/<os>/ le runtime Java embarqué, plus le dépôt de processus et les journaux créés à l’exécution.

02 · Lancer le standalone

Un script, seize services, quatorze applications web

Les scripts ajustent la clé host des fichiers de configuration (startup-local-distrib force localhost, startup garde le nom réseau) puis lancent le lanceur avec la commande start. Le lanceur vérifie que chaque port configuré est libre, démarre les bases embarquées, les services backend en quatre vagues et enfin les applications web, puis ouvre r-ioga dans votre navigateur.

bin/Linux · Windows
# Linux
cd bin
./startup-local-distrib.sh          # ou ./startup.sh sur une machine joignable par son nom réseau

# Windows
cd bin
startup-local-distrib.bat

# commande équivalente exécutée par les scripts
../jre/<os>/bin/java -Dfile.encoding=UTF-8 -Xmx4048m --add-opens=... -jar ../lib/gind-r-io-standalone-<version>.jar start

La console affiche ensuite l’invite r-iosuite>. Tapez info pour lister les services web démarrés avec leur hôte et leur port, shutdown pour arrêter la suite et exit pour quitter la console. Le premier démarrage prend quelques minutes : MongoDB et Neo4j embarqués s’initialisent, métamodèles et domaines sont publiés, et les cas d’usage prédéfinis listés dans load-predefined-usecases sont chargés.

ApplicationURLPour
r-iogahttp://localhost:9100/r-iogaSe connecter, gérer collaborations, espaces de connaissance, projets et cas d’usage ; déployer et suivre les processus
r-iodahttp://localhost:9102/r-iodaModéliser partenaires, ressources, fonctions, objectifs et risques
r-iosemithttp://localhost:9112/r-iosemitRejouer des jeux de données capteurs et simuler les endpoints partenaires
r-iotahttp://localhost:9108/r-iotaSuivre alertes, détection et situation sur la carte
r-iodedhttp://localhost:9120/r-iodedChoisir et éditer les stratégies de déduction
Autresvoir ports des applicationsr-iose 9110, r-iored 9118, r-iosepe 9114, r-ioplay 9104, r-iome 9116, r-iocal 9122, r-iomega 9124, r-iote 9128
03 · Première session

Se connecter et choisir un contexte de travail

Étape 1

Se connecter

Quand defaultAdmin vaut true (valeur par défaut), un compte administrateur est créé au premier démarrage ; ses identifiants sont ceux de votre installation et ne sont pas reproduits ici. Vous pouvez aussi créer un utilisateur depuis la page de connexion (register) et, dès qu’un administrateur existe, gérer les comptes dans r-ioga.

Étape 2

Créer ou choisir une collaboration

Une collaboration regroupe des utilisateurs et des espaces de connaissance ; un espace de connaissance est le graphe dans lequel vous travaillez. Créez les deux depuis r-ioga, ou sélectionnez ceux créés par un cas d’usage. Toutes les applications ouvertes ensuite partagent ce contexte.

Étape 3

Ouvrir le point d’entrée projet

r-ioga liste les projets de la collaboration. Un projet relie un domaine, ses extensions de modèle, une stratégie de détection et des ressources partagées ; les cas d’usage sont des projets prêts à l’emploi.

04 · Créer un cas d’usage

Construire Fire at Albi Cathedral à partir de rien

Un cas d’usage n’est rien d’autre qu’un projet dont les modèles sont complets. Le hello world de r-io en construit un en une trentaine de minutes, à partir d’un r-io où rien n’est chargé, avec les assistants IA de r-ioda. Le parcours guidé montre chaque écran.

  1. Dans r-ioga, créez un projet Crisis nommé Fire at Albi Cathedral (le nom ne peut plus changer ensuite) et videz ses projets de référence.
  2. Dans r-ioda, Context And Partners, laissez l’AI Creator Assistant créer la ville Albi et le bâtiment Albi Cathedral fixé sur Albi, et vérifiez dans r-ioplay que tous deux sont au bon endroit sur la carte. Créez ensuite le rôle Firefighter et ses fonctions, et un pompier renommé Owen Hartley (Olivia Hartley si la personne générée est une femme), avec Generate corresponding user pour lui donner un compte r-io4U (identifiant ohartley). Ajoutez la fonction Confirm Fire, avec une sortie Radio Fire Confirmed : Extinguish fires en a besoin (Needs), et l’arête porte la condition @Fire Confirmed[Confirm Fire] == "Yes".
  3. Dans Objectives, avec seulement Freeze coché, ajoutez une Fire_Alert, générez son objectif Treats et faites-le satisfaire par Extinguish fires.
  4. De retour dans Context And Partners, créez un détecteur de fumée dédié sur la cathédrale, qui référence l’alerte gelée.
  5. r-iota n’affiche aucune alerte. Jouez pas à pas le jeu de données du capteur dans r-iosemit : au quatrième pas, l’alerte devient sûre. Cliquez sur Find solution(s) dans r-iota : dans le graphe d’exécution, le Sequence_Flow vers Extinguish fires porte la condition recopiée (badge CE, affichée au survol).
  6. Dans r-io4U, connecté en Owen Hartley, les tâches apparaissent d’elles-mêmes après la déduction : cochez Confirm Fire, répondez Yes dans son formulaire de sortie, puis cochez Extinguish fires : le processus se termine et r-iota n’affiche plus d’alerte. En tant qu’expert, validez la résolution par Delete positive deviations dans r-iota : l’objectif et l’alerte actifs sont supprimés, les flammes quittent la cathédrale et la supervision se clôt. Rejouez le capteur : le feu reprend comme une nouvelle alerte ; répondez cette fois No et le processus se termine par le flux otherwise. Exportez le projet en archive zip pour l’importer ailleurs.
Le processus déduit pour le feu : Confirm Fire, puis Extinguish fires si le feu est confirmé.
Le processus déduit pour le feu : Confirm Fire, puis Extinguish fires si le feu est confirmé.

Ouvrir le parcours guidé →

05 · Charger un cas d’usage

Partir d’IMT Albi Crisis

Deux cas d’usage sont sur le classpath runtime : IMT Albi Crisis et Crisis Event Show Parc des Princes. La distribution publiée précharge IMT Albi Crisis dans l’espace de connaissance qui porte son nom, au sein de la collaboration « R-IO Suite » ; si votre configuration ne le fait pas, chargez-le depuis r-ioga.

  1. Dans r-ioga, ouvrez le dialogue Charger des cas d’usage : il liste les cas d’usage embarqués et peut en télécharger d’autres depuis Nexus (downloadRemoteUsecase).
  2. Choisissez IMT Albi Crisis. Les modèles sont publiés dans le graphe via la gouvernance (publication par lots, intercepteurs et historique), avec ses scénarios de jeu et ses ressources partagées.
  3. Ouvrez r-ioda dans le même contexte pour parcourir le campus : bâtiments, réseaux, partenaires, capteurs, risques et objectifs, tels que décrits sur la page du cas d’usage.
06 · Jouer un scénario

Alimenter la plateforme sans capteurs réels

r-iosemit

Choisir le scénario de jeu

IMT Albi Crisis livre désormais « Default Game Scenario ». Sélectionnez-le ou créez une chronologie datée ; les anciens scénarios d’Albi à pas fixes ne sont plus empaquetés. Voir Chronologies de scénario pour le format actuel.

r-iosemit

Jouer les jeux de données

Avancez les paires communes préparation/principal. Tous les contrôleurs participants doivent acquitter chaque phase avant la suivante. Les mesures rejouées suivent le chemin réel : gestionnaire de capteurs, séries temporelles, broker, règles CEP ou ML.

r-iota

Suivre les alertes

Les faits interprétés (dangers, effets, risques émergents) apparaissent en alertes et sur la carte ; les alertes CEP sont sûres, les alertes ML demandent validation. La page de détection compare la situation attendue au terrain.

07 · Déduire et exécuter

Des objectifs à un processus supervisé

  1. Depuis r-iota (dialogue de déduction) ou r-ioded, lancez une déduction avec la stratégie Drools Simple Satisfaction sur le gestionnaire d’objectifs du projet. La campagne s’exécute en asynchrone ; la progression arrive par le topic SOLUTION.
  2. Examinez les solutions : chacune est un processus collaboratif planifié avec acteurs, ressources et dates attendues. Sélectionnez celle à exécuter.
  3. Déployez et exécutez-la : r-ioga (ou la chaîne exécuter-et-superviser de r-iosepe) déploie le processus sur le moteur de workflow, le démarre et le supervise. Les tâches informatiques appellent les mock endpoints créés par le scénario ; les tâches humaines apparaissent dans la liste de tâches des personnes affectées et dans r-io4U.
  4. Suivez l’exécution dans r-iota et r-iomega : les événements de supervision montrent chaque échange et la progression de l’instance.
08 · Arrêter

Arrêter proprement

console ou bin/
r-iosuite> shutdown        # arrête services, applications web et bases embarquées, attend la libération des ports
r-iosuite> exit

# ou, depuis un autre terminal
./stop.sh        # Linux
stop.bat         # Windows
09 · Dépannage

Les problèmes habituels du premier lancement

SymptômeCauseCorrectif
« This port is not available » au démarrageLe lanceur vérifie chaque port configuré avant de démarrer.Libérez le port ou changez la clé dans conf/unified_config.properties (voir Configuration & ports).
Mémoire insuffisante ou démarrage très lentSeize services et quatorze applications web dans une seule JVM.Gardez les 4 Go de heap des scripts ; fermez les autres processus Java ; préférez un profil plus léger si vous embarquez le conteneur vous-même.
Windows : chemin trop longChemins WebJar et Neo4j profondément imbriqués.Activez LongPathsEnabled et core.longpaths de Git comme décrit dans le README ; décompressez près de la racine du disque.
MongoDB embarqué ne démarre pasPort 27017 occupé ou données d’une instance précédente.Arrêtez l’autre MongoDB ou changez mongodb-database-port ; au démarrage, le lanceur embarqué ne supprime que le mongod laissé par une exécution précédente de la même installation (./target/mongod.pid) et ses données ; un MongoDB lancé par un autre programme n’est jamais arrêté.
Aucune alerte après un scénarioLe nœud capteur n’est pas ACTIVE ou aucune règle CEP/ML n’est déployée pour lui.Vérifiez le capteur dans r-iose et sa règle dans r-iored ; l’intercepteur Sensor déploie la configuration à la publication du nœud.
La déduction se termine sans solutionAucun acteur ne fournit les fonctions requises, ou les ressources ne peuvent pas être affectées.Lisez l’observation de la campagne dans r-iosepe ; complétez les relations Provides et les ressources dans r-ioda.