---
title: "Installation"
description: "Une seule image Docker sert l'API, le MCP et l'interface web sur le port 3000 ; un unique volume /data conserve tout l'état."
---

# Installation

Notarium se distribue sous la forme d'**une seule image autonome** : un unique processus Node sert l'API REST, le point d'accès MCP pour les agents et l'interface web compilée sur un même port (`3000` par défaut). Aucun service externe — ni base de données, ni broker de messages, ni moteur de recherche séparé — n'est requis : le moteur de connaissances tourne à l'intérieur de ce même processus. Tout l'état réside dans un unique volume `/data` : la base de métadonnées, les index dérivés, vos fichiers Markdown (la source de vérité) et les artefacts d'export.

> [!note] Ce qu'il vous faut
> Simplement **Docker** (ou Docker Desktop) et un port libre. Inutile d'installer Node, une base de données ou un index vectoriel séparément — tout est dans l'image.

## Lancer l'image

Le chemin le plus rapide consiste à démarrer un conteneur à partir de l'image préconstruite :

```bash
docker run -d --name notarium \
  -p 3000:3000 \
  -v notarium-data:/data \
  docouno/notarium:latest
```

Un unique volume `/data` conserve tout l'état : la base de métadonnées, les index, vos notes et les artefacts d'export. Il n'y a rien d'autre à paramétrer — le port `3000` et le chemin de données `/data` sont déjà intégrés à l'image. Le volume survit à la recréation du conteneur ; le port à gauche de `:3000` peut être remplacé par n'importe quel port libre.

Inutile d'ajouter une commande à `docker run` : le point d'entrée de l'image est la CLI `notarium` intégrée, et par défaut elle lance `start`. C'est cette même CLI qui porte les commandes d'opérateur — `backup`, `restore`, `admin`, `healthcheck`, `version`. Voir [CLI de l'image](/docs/self-hosting/cli/).

## Avec Docker Compose

Pour une instance destinée à durer, un fichier compose est plus commode : il se modifie et se versionne plus facilement, et `restart` relance le conteneur après un redémarrage de l'hôte.

```yaml
services:
  notarium:
    image: docouno/notarium:latest
    restart: unless-stopped
    ports:
      - "3000:3000"
    volumes:
      - notarium-data:/data

volumes:
  notarium-data:
```

Enregistrez-le sous le nom `compose.yaml` et lancez-le avec `docker compose up -d`. Le volume nommé `notarium-data` vit indépendamment du conteneur : `docker compose down` n'y touche pas, et seule une commande explicite `docker volume rm` le supprime.

> [!note] Les réglages se placent ici aussi
> Les variables d'environnement se déclarent dans le bloc `environment:` du service. Si vous préférez les garder dans un fichier à part, ajoutez au même endroit une ligne `env_file: .env` — un fichier `.env` simplement posé à côté du fichier compose n'atteint **pas** le conteneur de lui-même : Docker Compose se contente d'en injecter les valeurs dans le texte du fichier compose lui-même. La liste complète — [Variables d'environnement](/docs/reference/environment-variables/).

## Premier lancement

Ouvrez `http://localhost:3000` : l'**écran de configuration initiale** vous accueille. Par défaut, l'instance fonctionne en mode `password`, et le premier visiteur crée le **propriétaire** — l'unique compte doté des droits d'administrateur et de la propriété des espaces qu'il crée. Aucun mot de passe n'est prédéfini ; une fois le propriétaire enregistré, la configuration se ferme définitivement. Pour en savoir plus sur les modes, voir [Authentification](/docs/self-hosting/authentication/).

## Volumes de données

| Volume | Ce qu'il contient | Nature |
|---|---|---|
| `/data` | Vos fichiers Markdown (`/data/spaces`, un dossier par espace), la base de métadonnées (`/data/meta.db` — identifiants, historique des versions, utilisateurs, accès), les index dérivés du moteur (`/data/engine`) et les artefacts d'export. | Les fichiers sont la source de vérité (le principe file-first) ; la base de métadonnées ne peut pas être dérivée des fichiers ; les index sont dérivés et se restaurent par une reconstruction. |

Protégez le volume lui-même : le perdre, c'est perdre vos données avec lui. Si les index de `/data/engine` sont perdus, ils se reconstruisent à partir des fichiers, mais la base de métadonnées (`/data/meta.db` — historique, utilisateurs, accès) et les notes elles-mêmes (`/data/spaces`) ne peuvent être restaurées de nulle part — leur sauvegarde est obligatoire. Pour savoir comment réaliser une sauvegarde vérifiée sans arrêter le service, voir [Sauvegarde et restauration](/docs/self-hosting/backup/).

## Construction depuis les sources

Si vous travaillez avec le dépôt Notarium, le point d'entrée unique pour Docker est `make` :

```bash
cp .env.example .env   # les valeurs par défaut conviennent — rien à remplir
make up                # image prod en local → http://localhost:3000
make dev               # stack de dev avec hot-reload (HMR)
```

Commandes utiles : `make logs` (logs), `make ps` (statut), `make down` (arrêter et supprimer), `make sh` (shell dans le conteneur).

## Installation sans registre (air-gapped)

Pour déployer dans un environnement isolé, l'image peut être transférée sous forme de fichier, sans accès à un registre :

```bash
make image                              # construire l'image
make save                               # exporter vers notarium-<version>.tar.gz
# transférez l'archive vers l'hôte cible, puis :
docker load < notarium-<version>.tar.gz # charger l'image
```

Lancez-la ensuite avec vos propres `compose`/`.env` — la référence du registre n'est pas figée dans l'image.

L'étape suivante consiste à adapter l'instance à vos besoins : voir [Configuration](/docs/self-hosting/configuration/).
