Habituellement je suis plus que rétif quant à l'utilisation de solutions se basant sur des supposées intelligences artificielles pour tout un tas de raisons, et en particulier pour ce qui a trait à l'éducation. Voir mon billet dans Médiapart pour plus d'info : https://blogs.mediapart.fr/thierrym/blog/090625/pour-un-debat-citoyen-sur-une-utilisation-raisonnee-de-lintelligence-artificielle.
Mais j'ai découvert à travers cet article de ZD.Net https://www.zdnet.fr/pratique/linux-pratique-installer-la-solution-alternative-open-source-et-puissante-a-notebooklm-485056.htm qu'il était possible de s'installer localement une alternative libre à NoteBookLM de Google. Dans ce cas-là, pourquoi ne pas tester cette solution qui s'appuie sur Open Notebook ? Je vais décrire sur cette page comment j'ai configuré cette application sur mon ordinateur, non sans quelques recherches...
Personnellement, je vais utiliser un modèle LLM (modèle de langage) local en me servant d'Ollama : https://ollama.com/. Ce fonctionnement par contre nécessite des ressources sur l'ordinateur local et il vaut mieux avoir une carte graphique qui pourra aléger la tâche du processeur. Il faut également pas mal de place : le LLM Qwen3 par exemple fait plus de 5 Go...
Remarque : il est possible d'intégrer Ollama dans VSCodium (à la place de l'IA de Microsoft Copilot).
Sources :
- déploiement de Open Notebook : https://github.com/lfnovo/open-notebook/blob/main/docs/deployment/docker.md
- Utilisation de Ollama dans Open Notebook : https://github.com/lfnovo/open-notebook/blob/main/docs/features/ollama.md
- Changer le dossier de stockage des modèles LLM dans Ollama : https://medium.com/@rosgluk/move-ollama-models-to-different-location-755eaec1df96
- Modèles proposés par Ollama : https://ollama.com/models
- Choisir son fournisseur le modèle d'IA et de LLM : https://github.com/lfnovo/open-notebook/blob/main/docs/features/ai-models.md
I- Particularité de Ollama et de Docker en tant que services
Ollama et Docker s'installent en tant que service. Cela signifie qu'ils se lancent automatiquement à chaque redémarrage de l'ordinateur. Si on ne veut pas cela, il va falloir les désactiver lorsqu'on ne les utilise plus, ce qui permet d'économiser des ressources. Pour arrêter et désactiver, il faut taper les commandes suivantes :sudo systemctl stop nom-du-servicesudo systemctl disable nom-du-service
On verra comment automatiser tout cela avec des fichiers de scripts à la fin de cet article.
II- Installation de Ollama et des LLM
A- Installation de Ollama
L'installation se fait très simplement : il suffit de taper la commande suivante qui permettra d'installer Ollama en tant que service (systemd) :
curl -fsSL https://ollama.com/install.sh | sh
Lors de l'installation d'Ollama (qui prend du temps selon la connexion Internet dont on dispose), il sera indiqué à la fin s'il y a un GPU utilisable. Ça n'a pas été mon cas...
B- Modification du chemin d'installation des modèles LLM (si besoin)
Il est peut-être nécessaire d'indiquer un dossier de stockage des modèles LLM différent de celui par défaut (sous Linux, c'est "/usr/share/ollama/.ollama/models"). C'est mon cas, car je n'ai plus tellement de place dans mon dossier "usr". Pour cela, je vais me créer un dossier "ollama_models" sur la partition "/mnt/HD_divers" et lui donner des droits d'accès et permissions avec les commandes :sudo chown -R ollama:ollama /mnt/HD_divers/ollama_models/sudo chmod -R 755 /mnt/HD_divers/ollama_models/
Ensuite il faut alors éditer le fichier de configuration avec la commande :sudo nano /etc/systemd/system/ollama.service
Dans ce fichier on va rajouter dans la partie [Service] ces 2 lignes qui dans mon cas renvoie vers un disque dur monté à l'emplacement /mnt/HD_divers et l'accès à Ollama pour toutes les adresses :Environment="OLLAMA_MODELS=/mnt/HD_divers/ollama/models"
Environment="OLLAMA_HOST=0.0.0.0:11434"
C- Installation des modèles de langues LLM et utilisation de Ollama
Après avoir sauvegardé, il faut relancer les services avec ces 2 commandes :sudo systemctl daemon-reloadsudo systemctl restart ollama.service
On peut maintenant installer les LLM qui nous intéressent avec les commandes suivantes pour par exemple ces 2 modèles (compter 10 Go d'espace occupé) :ollama pull qwen3ollama pull llama3
Pour connaître la liste des modèles LLM installés, taper la commande :ollama list
Pour lancer un modèle :ollama run qwen3
Pour supprimer un modèle LLM, taper :ollama rm qwen3
Pour connaître l'état d'Ollama :systemctl status ollama.service
III- Installation de Docker
Tout d'abord, il faut un ordinateur sous GNU/Linux (raison supplémentaire pour se détacher de Windows 😉) et y installer Docker. Étant sous Linux Mint 22.2 (Zara), le plus simple est d'installer directement docker via les dépôts avec les commandes :
sudo apt update
sudo apt install docker.io docker-compose
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker $USER
Info : sous Linux Mint 22.2, docker-compose est en version 2.40.3 (contrairement à Primtux 8 basée sur Linux Mint 21.3 et ça a une incidence).
IV- Lancement de Open Notebook avec Docker
J'ai créé un dossier "open_notebook" sur ma partition avec beaucoup d'espace pour recueillir l'image Docker de Open Notebook avec les commandes :mkdir /mnt/HD_divers/open-notebook
On se place sur ce nouveau dossier avec :cd /mnt/HD_divers/open-notebook
On crée et on édite un fichier "docker-compose.yml" avec :nano docker-compose.yml
Et on y ajoute les lignes suivantes :
services: open_notebook: image: lfnovo/open_notebook:v1-latest-single ports: - "8502:8502" # Web UI - "5055:5055" # API environment: - OLLAMA_API_BASE=http://host.docker.internal:11434
- API_CLIENT_TIMEOUT=1200 # 20 minutes avec un CPU
- ESPERANTO_LLM_TIMEOUT=180 # 3 minutes # Database connection (required) - SURREAL_URL=ws://localhost:8000/rpc - SURREAL_USER=root - SURREAL_PASSWORD=root - SURREAL_NAMESPACE=open_notebook - SURREAL_DATABASE=production volumes: - ./notebook_data:/app/data - ./surreal_data:/mydata
extra_hosts:
- "host.docker.internal:host-gateway" restart: always
Ensuite on lance le programme, toujours à partir du dossier "/mnt/HD_divers/open-notebook" avec la commande :docker compose up -dCela prend un peu de temps (selon sa connexion Internet) car il faut récupérer l'image docker avant que le contener ne se lance.
Si tout s'est bien passé, il suffit d'ouvrir cette page avec son navigateur Internet : http://localhost:8502/ et on arrive sur la page d'Open-Notebook.
Commandes utiles pour Docker (au cas où on en aurait besoin)
- Pour arrêter le service :
docker compose down - Pour avoir des info sur les conteneurs actifs :
docker ps - Pour avoir des info sur tous les conteneurs (même ceux arrêtés) :
docker ps -a - Pour entrer dans le conteneur Open Notebook dans un terminal :
docker exec -it open-notebook-open_notebook-1 /bin/bash - Pour y installer les outils pour analyser le réseau du conteneur :
apt update && apt install -y iproute2 net-tools curl - Pour connaître les adresses IP du conteneur :
ip route
V- Utilisation de Open Notebook
Dans Open Notebook, la première chose à faire est de configurer un modèle. Pour tester, j'ai pris le modèle Ollama "qwen3".
Il faut aller dans la partie "Manage" → "Models" ①, puis on ajoute un modèle avec le bouton "+ Add Model" ② et on choisit comme "Provider" : "ollama" et comme modèle "qwen3" qui s'affiche ici ③. Ensuite, on indique ce modèle pour différents types de modèles ④.
Remarque : On peut laisser vide le "Embedding Model".

Un fois sur la page d'Open Notebook, il faut se créer un carnet de notes avec le bouton "New Notebook" ou "Create".
Ensuite, on ajoute les documents à analyser comme des liens Internet, des documents pdf, etc. et on dialogue dans le Tchat pour demander à l'IA de répondre à nos demandes.
Remarque : avec mon ordinateur, ça prend un peu de temps mais ça fonctionne.
VI- Lancement et arrêt automatique des services Ollama, Socat et Open Notebook avec des scripts
Quand on a constaté que tout fonctionne correctement, on peut maintenant créer 2 fichiers de scripts qui permettront de lancer ou désactiver les 3 services en jeu : Ollama, Socat et le conteneur Docker d'Open Notebook. Cela est utile pour ne pas consommer des ressources inutil
Pour pouvoir les retrouver facilement, je les ai rangés dans le dossier contenant l'image docker "/mnt/HD_divers/open-notebook" : de cette façon, tout ce dont j'ai besoin se trouvera au même endroit.
Voici le fichier "enable_services_open-notebook.sh" qui permettra de lancer les 3 services :#!/bin/bash
echo "Activation et démarrage des services Open-Notebook, Ollama et tunnel socat"
# Chemin vers le répertoire contenant docker-compose.ymlDOCKER_DIR="/mnt/HD_divers/open-notebook"
# Aller dans le bon répertoirecd "$DOCKER_DIR" || { echo "Répertoire $DOCKER_DIR introuvable"; exit 1; }
# Activation et démarrage d'Ollamaecho "Activation et démarrage du service Ollama..."sudo systemctl enable ollamasudo systemctl start ollama
# Démarrage des conteneurs Docker Open-Notebookecho "Démarrage des conteneurs Docker Open-Notebook..."docker compose up -d
echo "Tous les services ont été activés et démarrés"
# Attendre une touche
read -p "Appuyez sur une touche pour quitter..."
De la même façon, voici le fichier "disable_services_open-notebook.sh" qui permettra de stopper et désactiver (pas de lancement automatique au redémarrage de l'ordi) les 3 services :#!/bin/bash
echo "Arrêt et désactivation des services Open-Notebook, Ollama et tunnel socat"
# Chemin vers le répertoire contenant docker-compose.ymlDOCKER_DIR="/mnt/HD_divers/open-notebook"
# Aller dans le bon répertoirecd "$DOCKER_DIR" || { echo "Répertoire $DOCKER_DIR introuvable"; exit 1; }
# Arrêt et désactivation d'Ollamaecho "Arrêt et désactivation du service Ollama..."sudo systemctl stop ollamasudo systemctl disable ollama
# Arrêt des conteneurs Docker Open-Notebookecho "Arrêt des conteneurs Docker Open-Notebook..."docker compose down
echo "Tous les services ont été arrêtés et désactivés"
# Attendre une touche
read -p "Appuyez sur une touche pour quitter..."
Comme d'habitude, il faudra autoriser l'exécution comme un programme (permission) pour ces 2 fichiers afin que les scripts puissent se lancer. On peut le faire avec cette commande qui va les rendre exécutables :chmod +x enable_services_open-notebook.sh disable_services_open-notebook.sh
VII- Et sous Primtux 8
Afin de tester cette installation, j'ai tenté de le faire sous Primtux 8 qui est basé sur Linux Mint 21.3 lui-même basé sur Ubuntu 22.04. Ça n'a pas fonctionné à cause d'une version trop ancienne de Docker dans les dépôts. Une des preuves est que la commande "docker compose up -d" ne fonctionne pas contrairement à l'ancienne avec un tiret "docker-compose up -d" qui est en version 1.29.2.
Du coup, il est nécessaire d'installer Docker à partir du site officiel pour disposer d'une version plus récente dans Primtux 8. Source : https://docs.docker.com/engine/install/ubuntu.
Tout d'abord il faut désinstaller l'ancienne version de docker avec la commande :sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc | cut -f1)
Ensuite, il faut installer le dépôt avec ce commandes :# Add Docker's official GPG key:sudo apt updatesudo apt install ca-certificates curlsudo install -m 0755 -d /etc/apt/keyringssudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.ascsudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:sudo tee /etc/apt/sources.list.d/docker.sources <<EOFTypes: debURIs: https://download.docker.com/linux/ubuntuSuites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")Components: stableSigned-By: /etc/apt/keyrings/docker.ascEOF
sudo apt update
Puis on installe la dernière version de Docker avec :sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Et on lance docker avec :sudo systemctl daemon-reloadsudo systemctl start docker.service
Pour connaître la version de docker compose installée maintenant, taper :docker compose versionLa version est maintenant la 2.40.3.
VIII- Partie inutile mais laissée comme aide-mémoire car elle fonctionne
Installation de Socat en tant que service
Afin que Open Notebook puisse communiquer avec Ollama, il faut installer le paquet socat pour rediriger le port 11435 du conteneur Docker de Open Notebook vers le port 11434 de Ollama avec la commande :sudo apt install socat
Puis il faut lancer cette commande :sudo socat TCP-LISTEN:11435,fork TCP:127.0.0.1:11434
Le problème de cette commande, c'est qu'il faudrait la lancer à chaque fois. Aussi, on peut plutôt en faire un service qui démarrera après le lancement du réseau et de Ollama. Pour cela, on va créer et éditer un fichier avec la commande :sudo nano /etc/systemd/system/ollama-tunnel.service
Et on colle le code suivant :
[Unit]Description=Socat tunnel for Ollama Docker accessAfter=network.target ollama.serviceRequires=ollama.service
[Service]Type=simpleUser=rootExecStart=/usr/bin/socat TCP-LISTEN:11435,fork TCP:127.0.0.1:11434Restart=alwaysRestartSec=5
[Install]WantedBy=multi-user.target
Ensuite il faut lancer ce nouveau service avec les commandes :sudo systemctl daemon-reloadsudo systemctl enable ollama-tunnelsudo systemctl start ollama-tunnel