Offre Durée limitée : -10% sur tout le site* avec le code WELCOME10

Installer SillyTavern sur un VPS Linux avec Docker : héberger son interface IA à distance

Mis à jour le 29 octobre 2026 7 min de lecture 12 sections

SillyTavern : une interface de chat IA auto-hébergée

SillyTavern est un frontend open source (licence AGPL-3.0) qui se connecte à un ou plusieurs backends de modèles de langage (LLM) pour offrir une interface de chat IA personnalisable depuis un navigateur web. Le projet cumule plus de 35 000 étoiles sur GitHub et supporte de nombreux backends : Ollama, KoboldAI, Text Generation WebUI (oobabooga), OpenRouter, tabbyAPI, ou encore les API OpenAI et Claude.

Contrairement à Open WebUI qui embarque sa propre logique applicative, SillyTavern se positionne comme un client léger : il ne fait tourner aucun modèle lui-même et délègue l'inférence au backend de votre choix. Cela permet de l'installer sur un VPS modeste et de pointer vers une instance Ollama distante ou locale, un serveur dédié avec GPU, ou un fournisseur d'API tiers.

Ce guide couvre le déploiement de SillyTavern avec Docker Compose sur un VPS Linux Ubuntu ou Debian, la mise en place d'un reverse proxy NGINX avec certificat HTTPS Let's Encrypt pour un accès distant sécurisé, et la connexion à une instance Ollama.

Prérequis

  • Un VPS Linux sous Ubuntu 22.04+ ou Debian 12+ avec accès root ;
  • Docker Engine et Docker Compose installés (installer Docker sur un VPS) ;
  • Un nom de domaine avec un enregistrement DNS A pointant vers l'adresse IP du VPS (nécessaire pour le certificat HTTPS) ;
  • Les ports 80 et 443 ouverts dans le pare-feu (configurer UFW) ;
  • 1 vCPU et 1 Go de RAM suffisent pour SillyTavern seul (l'inférence LLM est déléguée au backend).

Déployer SillyTavern avec Docker Compose

Créez un répertoire de travail et le fichier docker-compose.yml (guide Docker Compose VPS Linux) :

mkdir -p ~/sillytavern && cd ~/sillytavern
nano docker-compose.yml

Contenu du fichier Compose :

services:
  sillytavern:
    image: ghcr.io/sillytavern/sillytavern:latest
    container_name: sillytavern
    restart: unless-stopped
    ports:
      - "127.0.0.1:8000:8000"
    volumes:
      - ./config:/home/node/app/config:rw
      - ./data:/home/node/app/data:rw
      - ./plugins:/home/node/app/plugins:rw
      - ./extensions:/home/node/app/public/scripts/extensions/third-party:rw
    environment:
      - PUID=1000
      - PGID=1000

Points importants :

  • Le port est lié à 127.0.0.1 : SillyTavern n'est pas exposé directement sur Internet. Le reverse proxy NGINX gère l'accès externe avec HTTPS.
  • Les variables PUID et PGID font tourner le conteneur avec les permissions d'un utilisateur non root (UID/GID 1000 par défaut sur Ubuntu et Debian).
  • Les quatre volumes conservent la configuration, les données utilisateur (personnages, historiques), les plugins serveur et les extensions d'interface entre les mises à jour.

Lancez le conteneur :

docker compose up -d
docker compose logs -f sillytavern

Attendez la ligne SillyTavern is listening on dans les logs. Vérifiez que le service répond localement :

curl -s http://127.0.0.1:8000 | head -5

Configurer le reverse proxy NGINX avec HTTPS

La documentation officielle de SillyTavern indique explicitement de ne pas exposer le port du service directement sur Internet. Un reverse proxy NGINX avec certificat TLS Let's Encrypt sécurise l'accès distant (guide Nginx reverse proxy).

Installez NGINX et Certbot si ce n'est pas déjà fait :

sudo apt update
sudo apt install -y nginx certbot python3-certbot-nginx

Créez le fichier de configuration du virtual host :

sudo nano /etc/nginx/sites-available/sillytavern

Contenu :

server {
    listen 80;
    server_name st.votredomaine.fr;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Les directives Upgrade et Connection sont nécessaires : SillyTavern utilise des WebSockets pour le streaming des réponses du LLM en temps réel.

Activez le site et obtenez le certificat TLS (guide Certbot Let's Encrypt) :

sudo ln -s /etc/nginx/sites-available/sillytavern /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
sudo certbot --nginx -d st.votredomaine.fr

Certbot modifie automatiquement le bloc server pour écouter en HTTPS sur le port 443 et redirige le trafic HTTP vers HTTPS. Le renouvellement du certificat est géré par un timer systemd.

Connecter SillyTavern à Ollama

Si vous hébergez Ollama sur le même VPS (installer Ollama sur un VPS Linux), SillyTavern peut s'y connecter directement via le réseau Docker ou l'adresse locale du serveur.

Option 1 : Ollama tourne en natif sur le VPS (sans Docker). Ajoutez l'adresse du réseau Docker dans le fichier /etc/systemd/system/ollama.service.d/override.conf :

[Service]
Environment="OLLAMA_HOST=0.0.0.0"

Rechargez et redémarrez Ollama :

sudo systemctl daemon-reload
sudo systemctl restart ollama

Dans l'interface SillyTavern, allez dans les paramètres de connexion API, sélectionnez Text Completion puis Ollama comme source, et renseignez l'URL http://IP_PRIVEE_VPS:11434 ou http://172.17.0.1:11434 (adresse de la passerelle Docker par défaut).

Option 2 : Ollama tourne dans un conteneur Docker sur le même VPS. Ajoutez un réseau partagé dans le fichier docker-compose.yml :

services:
  sillytavern:
    image: ghcr.io/sillytavern/sillytavern:latest
    container_name: sillytavern
    restart: unless-stopped
    ports:
      - "127.0.0.1:8000:8000"
    volumes:
      - ./config:/home/node/app/config:rw
      - ./data:/home/node/app/data:rw
      - ./plugins:/home/node/app/plugins:rw
      - ./extensions:/home/node/app/public/scripts/extensions/third-party:rw
    environment:
      - PUID=1000
      - PGID=1000
    networks:
      - llm

  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    restart: unless-stopped
    volumes:
      - ollama_data:/root/.ollama
    networks:
      - llm

networks:
  llm:
    driver: bridge

volumes:
  ollama_data:

Dans SillyTavern, renseignez l'URL http://ollama:11434 : le nom du service Docker sert de nom d'hôte sur le réseau interne.

Sécuriser l'accès à SillyTavern

SillyTavern ne dispose pas d'un système d'authentification intégré avec mot de passe par défaut. Sur un VPS accessible depuis Internet, ajoutez au minimum une authentification HTTP Basic au niveau du reverse proxy NGINX.

Créez un fichier de mot de passe :

sudo apt install -y apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd votre_utilisateur

Ajoutez les directives dans le bloc location / du virtual host NGINX :

    auth_basic "SillyTavern";
    auth_basic_user_file /etc/nginx/.htpasswd;

Rechargez NGINX :

sudo nginx -t && sudo systemctl reload nginx

Complétez la sécurisation du VPS :

  • Sécuriser SSH : désactivez l'authentification par mot de passe, utilisez une clé SSH ;
  • Fail2ban : bloquez les tentatives de connexion SSH répétées.

Permissions des volumes sous SELinux

Sur les distributions avec SELinux activé (CentOS, Rocky Linux, Fedora), les montages de volumes Docker peuvent échouer avec des erreurs de permission. Ajoutez le suffixe :z aux volumes dans le fichier Compose pour les partager entre conteneurs, ou :Z pour un accès exclusif :

    volumes:
      - ./config:/home/node/app/config:rw,z
      - ./data:/home/node/app/data:rw,z

Sur Ubuntu et Debian, SELinux n'est pas activé par défaut : cette étape n'est pas nécessaire.

Mettre à jour SillyTavern

L'image Docker officielle suit le canal latest (branche stable). Pour mettre à jour SillyTavern, récupérez la dernière image et recréez le conteneur :

cd ~/sillytavern
docker compose pull
docker compose up -d

Les données sont conservées dans les volumes montés (config, data, plugins, extensions). Le tag staging est aussi disponible pour tester les fonctionnalités en développement, mais il est déconseillé en production.

Après chaque mise à jour, nettoyez les anciennes images inutilisées pour libérer de l'espace disque (nettoyer Docker avec prune).

Sauvegarder les données

Les données persistantes de SillyTavern (personnages, historiques de conversation, configuration, extensions) sont stockées dans les répertoires montés du VPS : config/, data/, plugins/ et extensions/.

Intégrez ces répertoires dans vos scripts de sauvegarde (sauvegarder un VPS avec rsync) :

rsync -avz ~/sillytavern/ user@backup-server:/backups/sillytavern/

SillyTavern propose aussi un export intégré des personnages et des conversations depuis son interface web, utile pour migrer vers une autre instance.

Surveillance avec le healthcheck Docker

SillyTavern intègre un mécanisme de healthcheck. Activez-le dans le fichier Compose pour que Docker redémarre automatiquement le conteneur en cas de blocage :

services:
  sillytavern:
    image: ghcr.io/sillytavern/sillytavern:latest
    # ... volumes, ports, environment ...
    environment:
      - PUID=1000
      - PGID=1000
      - SILLYTAVERN_HEARTBEATINTERVAL=30
    healthcheck:
      test: ["CMD", "node", "src/healthcheck.js"]
      interval: 30s
      timeout: 10s
      start_period: 20s
      retries: 3

La variable SILLYTAVERN_HEARTBEATINTERVAL active l'écriture périodique d'un fichier de heartbeat dans le répertoire data. Le healthcheck vérifie la fraîcheur de ce fichier.

Tableau récapitulatif

ÉlémentValeur
Image Dockerghcr.io/sillytavern/sillytavern:latest
Port interne8000/TCP
RuntimeNode.js 20+
LicenceAGPL-3.0
RAM (SillyTavern seul)~100 à 200 Mo
Backends supportésOllama, KoboldAI/CPP, Text Generation WebUI, OpenRouter, tabbyAPI, API OpenAI, Claude, Mistral
Données persistantesconfig, data, plugins, extensions (volumes Docker)
Authentification nativeAucune (utiliser HTTP Basic via NGINX)

Conclusion

SillyTavern transforme votre VPS Linux en interface de chat IA accessible depuis n'importe quel navigateur. Le déploiement Docker Compose se résume à un fichier de configuration et quelques commandes. Le reverse proxy NGINX avec HTTPS sécurise l'accès distant, et la connexion à Ollama permet d'utiliser des modèles de langage open source hébergés sur le même serveur ou sur un serveur dédié avec GPU.

Pour aller plus loin, explorez les extensions tierces (Text-to-Speech, génération d'images, traduction automatique) et les plugins serveur disponibles dans la documentation officielle du projet.

FAQ

Combien de RAM faut-il pour SillyTavern sur un VPS ?

SillyTavern lui-même consomme environ 100 à 200 Mo de RAM. C'est un frontend léger qui ne fait pas d'inférence IA. La consommation totale dépend du backend LLM choisi : Ollama avec un modèle 7B nécessite 6 à 8 Go de RAM supplémentaires. Si vous utilisez un backend distant ou une API tierce, un VPS avec 1 Go de RAM suffit pour SillyTavern seul.

SillyTavern peut-il fonctionner sans GPU ?

Oui. SillyTavern est un client web, il ne fait aucune inférence de modèle de langage. Le GPU n'est nécessaire que pour le backend LLM (Ollama, vLLM, KoboldAI). Si le backend tourne sur un autre serveur ou via une API distante (OpenRouter, API OpenAI), le VPS hébergeant SillyTavern n'a pas besoin de GPU.

Quelle est la différence entre SillyTavern et Open WebUI ?

Open WebUI est une interface complète qui embarque sa propre gestion d'utilisateurs, un pipeline RAG et une base de données. SillyTavern est un client léger spécialisé dans le chat IA avec des fonctionnalités orientées roleplay : personnages, lorebooks (WorldInfo), mode Visual Novel, génération d'images. Les deux se connectent à Ollama comme backend.

SillyTavern est-il gratuit ?

Oui. SillyTavern est un logiciel libre sous licence AGPL-3.0. Il n'y a aucun abonnement, aucune fonctionnalité payante et aucune limitation d'utilisation. Le code source complet est disponible sur GitHub.

Comment connecter SillyTavern à un backend LLM distant ?

Dans les paramètres de connexion de SillyTavern, sélectionnez le type de backend (Text Completion ou Chat Completion) et renseignez l'URL du serveur distant. Pour Ollama hébergé sur un autre VPS, indiquez https://ollama.votredomaine.fr. Pour une API tierce comme OpenRouter, collez votre clé API dans le champ prévu.

Peut-on utiliser SillyTavern sur mobile ?

Oui. L'interface web de SillyTavern est responsive et fonctionne sur smartphone et tablette via le navigateur. Il n'existe pas d'application mobile native, mais l'accès HTTPS via le reverse proxy NGINX permet d'utiliser SillyTavern depuis n'importe quel appareil connecté à Internet.

Comment sauvegarder les personnages et conversations de SillyTavern ?

Les personnages, historiques de conversation et paramètres sont stockés dans les volumes Docker montés (répertoires config/, data/, extensions/). Intégrez ces répertoires dans vos scripts de sauvegarde rsync. SillyTavern propose aussi un export JSON des personnages et conversations depuis son interface web.

Le tag Docker staging est-il recommandé ?

Non. Le tag staging correspond à la branche de développement et peut contenir des fonctionnalités instables ou des bugs non corrigés. Utilisez le tag latest (branche stable) en production. Réservez staging à un environnement de test si vous souhaitez tester les nouvelles fonctionnalités avant leur sortie.

SillyTavern supporte-t-il les extensions et plugins ?

Oui. SillyTavern supporte les extensions d'interface (third-party extensions) et les plugins serveur. Les extensions ajoutent des fonctionnalités côté navigateur (Text-to-Speech, génération d'images, traduction automatique). Les plugins serveur s'activent dans le fichier config.yaml avec la clé enableServerPlugins. Les deux types sont persistés dans les volumes Docker.