> For the complete documentation index, see [llms.txt](https://documentation.efalia.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.efalia.com/documentations/multigest/installation/architecture-application.md).

# Architecture de l'application

Cette page décrit l'architecture fonctionnelle et technique de Multigest, pour comprendre comment les composants s'articulent entre eux.

***

## Architecture Fonctionnelle

Multigest s'organise autour de sept sous-systèmes fonctionnels :

| Sous-système               | Rôle                                                                |
| -------------------------- | ------------------------------------------------------------------- |
| **Interfaces**             | Bannettes, numérisation, recherche, consultation, indexation        |
| **Conversion bureautique** | Traitement des documents Office issus des applications métier       |
| **Base de données**        | Indexation des dossiers et documents utilisateurs                   |
| **Stockage documentaire**  | Conservation des fichiers sur le système de fichiers                |
| **OnlyOffice**             | Ouverture et édition de documents Word/Excel sur les postes clients |
| **Application métier**     | Systèmes en amont (ERP, application de gestion…)                    |
| **SMTP**                   | Distribution des notifications par e-mail                           |

***

## Architecture Logicielle

L'application repose sur cinq sous-systèmes techniques :

### SS1 — Framework + Apache

Couche principale de l'application :

* **Interface utilisateur** web (PHP)
* **Framework C++ Multigest** — logique métier, interactions avec la base de données et le système de fichiers
* Hébergé sur **Apache 2.4**

### SS2 — Conversion Bureautique

Service Windows (**ConversionSrv.exe**) gérant la conversion des documents Office en PDF. Peut être déployé sur le serveur principal ou sur un poste réseau dédié.

→ [Installation de la conversion bureautique](https://github.com/Efalia/documentation-publique/blob/main/docs/documentations/multigest/installation/installation-conversion-bureautique.md)

### SS3 — Base de Données

Instance **MariaDB/MySQL** supportant :

* La base `mtgweb` — données GED (dossiers, index, habilitations)
* La base `mgworkflow` — données workflow

### SS4 — Stockage Fichiers

Système de fichiers hébergeant les documents physiques. Organisé par armoire avec les sous-répertoires `IMAGES/`, `INDEX/`, `OCR/`, `CORBEILLE/`.

Peut être déployé sur un serveur de fichiers dédié via des **liens symboliques**.

→ [Liens symboliques](https://github.com/Efalia/documentation-publique/blob/main/docs/documentations/multigest/installation/liens-symboliques.md)

### SS5 — OnlyOffice

Suite bureautique en ligne composée de :

* **Nginx** — proxy et serveur web
* **PostgreSQL** — base de données OnlyOffice
* **OnlyOffice DocumentServer** — moteur d'édition

→ [Installation d'OnlyOffice](https://github.com/Efalia/documentation-publique/blob/main/docs/documentations/multigest/installation/installation-onlyoffice.md)

***

## Schéma de Déploiement Type

```
┌─────────────────────────────────────────────┐
│               Serveur Multigest              │
│                                              │
│  Apache 2.4 + PHP  ←→  Framework C++        │
│         ↕                    ↕               │
│    MariaDB (SS3)      Stockage fichiers (SS4)│
│         ↕                                   │
│  ConversionSrv (SS2)                         │
└──────────────────┬──────────────────────────┘
                   │ HTTP/HTTPS
        ┌──────────┴──────────┐
        │    Postes clients   │
        │  (navigateur web)   │
        └─────────────────────┘

┌─────────────────────┐
│  Serveur OnlyOffice │  (même serveur ou dédié)
│  Nginx + PostgreSQL │
│  DocumentServer     │
└─────────────────────┘
```

***

## Options de Déploiement

| Configuration         | Description                                                 | Usage                            |
| --------------------- | ----------------------------------------------------------- | -------------------------------- |
| **Mono-serveur**      | Tous les composants sur un seul serveur                     | PME, faible volume               |
| **Serveur BDD dédié** | MariaDB sur serveur séparé                                  | Volume moyen                     |
| **Stockage dédié**    | Fichiers GED sur NAS/serveur fichiers via liens symboliques | Grand volume                     |
| **OnlyOffice dédié**  | OnlyOffice sur serveur séparé                               | Nombreux utilisateurs simultanés |

***

**Pour aller plus loin :**

* [Préconisations matérielles et logicielles](/documentations/multigest/installation/preconisations-materielles-logicielles.md)
* [Installation Apache PHP](https://github.com/Efalia/documentation-publique/blob/main/docs/documentations/multigest/installation/installation-apache-php.md)
* [Installation de la base de données](https://github.com/Efalia/documentation-publique/blob/main/docs/documentations/multigest/installation/installation-base-donnees.md)
* [Liens symboliques](https://github.com/Efalia/documentation-publique/blob/main/docs/documentations/multigest/installation/liens-symboliques.md)


---

# 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://documentation.efalia.com/documentations/multigest/installation/architecture-application.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.
