---
tags: ["note", ollama, ai, api, api-key, nginx, yunohost]
type: "note"
nature: config
ressource: true
univers: PERSO
projects:
  - "[[02_DOMAINES/PERSO-INFORMATIQUE]]"
date: "[[01_JOURNAL/2026/2026-08-04]]"
priority: 10
---
# Configurer Ollama pour utiliser une clé d’authentification à l’API

**Edit 17/10/2026 :** Cette approche a été abandonnée pour privilégier l'utilisation d'une URL locale dans SilverBullet (`https://openrouter.ai/api/v1`).

**Contexte :** 
* Utilisation de Silverbullet et du plug `silverbullet-ai` installé sur un serveur Yunohost.
* Mise en place d'un LLM local via Ollama permettant de réaliser un embeddings des notes Silverbullet
* Ollama n'est pas utilisé pour de l'IA générative et de l'analyse de notes, uniquement l'alimentation du RAG. 

**Principe :**
* Installer Ollama sur le serveur (ollama.datagrandest.net)
* Protéger l'accès à ollama.datagrandest.net avec une clé d’authentification (token) au niveau de la configuration NGINX du serveur.

**Prérequis :**
* Installer Ollama et s’assurer qu’il fonctionne. Cf. https://apps.yunohost.org/app/ollama et https://github.com/YunoHost-Apps/ollama_ynh.
* Désactiver le SSO Yunohost en donnant accès à Ollama aux visiteurs.
* Se connecter au serveur en SSH

## Etape 1 : Générer une clé alétaoire complexe

```bash
openssl rand -hex 32
```

## Etape 2 : Faire une sauvegarde du fichier de configuration

```bash
cd /etc/nginx/conf.d/ollama.datagrandest.net.d
cp ollama.conf ollama.conf.back
```


## Etape 3 : Modifier la configuration NGINX

```bash
location / {
+  if ($http_authorization != "Bearer VALEUR-DU-TOKEN") {
+    return 401;
+  }
  proxy_pass http://127.0.0.1:11434/;
  include proxy_params_no_auth;
  proxy_redirect default;
}
```

## Etape 4

Relance le serveur NGINX

```bash
sudo nginx -t && sudo systemctl reload nginx
```


## Etape 5

Vérifiez le bon fonctionnement de l'API sécurisée.

```bash
curl -H "Authorization: Bearer 1428380090de51bf734b8532fb36f019212b27359f55c11e8bc13203495821b1" https://ollama.datagrandest.net
# doit répondre normalement

curl https://ollama.datagrandest.net
# doit renvoyer 401
```

