Skip to content

2.1.15 Frontend SillyTavern

av edited this page Apr 2, 2026 · 2 revisions

Handle: sillytavern
URL: http://localhost:34791

SillyTavern Screenshot

SillyTavern is a feature-rich, locally-installed web UI for interacting with LLMs. It supports multiple AI backends (Ollama, llama.cpp, OpenAI-compatible APIs, and more), advanced prompt engineering, personas, lorebooks, extensions, and a wide range of customization options. Originally a fork of TavernAI, it has grown into a full-featured power-user frontend for local AI.

Key Features:

  • Multi-backend support: Ollama, llama.cpp, OpenAI-compatible APIs, Claude, Gemini, and many more
  • Personas & Characters: Create and manage character cards with detailed personality profiles
  • Advanced prompting: Lorebooks, author's notes, custom system prompts, and injection controls
  • Extensions: Rich plugin ecosystem with STScript, Regex scripting, and third-party modules
  • UI customization: Themes, movable panels, and extensive visual configuration options

Starting

harbor pull sillytavern
harbor up sillytavern --open

No default credentials are required. Access is controlled by an IP whitelist, which Harbor preconfigures to accept all connections (0.0.0.0/0). If you expose this service publicly, enable basic auth via SILLYTAVERN_BASICAUTHMODE=true in services/sillytavern/override.env, or enable multi-user mode.

Configuration

Environment Variables

Following options can be set via harbor config:

# Host port for the SillyTavern web UI
HARBOR_SILLYTAVERN_HOST_PORT       34791

# Docker image and version
HARBOR_SILLYTAVERN_IMAGE           ghcr.io/sillytavern/sillytavern
HARBOR_SILLYTAVERN_VERSION         latest

# Workspace directory for persistent data
HARBOR_SILLYTAVERN_WORKSPACE       ./services/sillytavern

Additional SillyTavern-specific env vars can be set in services/sillytavern/override.env. The environment variable naming convention for SillyTavern config overrides is SILLYTAVERN_<CONFIG_KEY> (uppercase, dots replaced with underscores). For example:

# Enable HTTP basic auth
SILLYTAVERN_BASICAUTHMODE=true
SILLYTAVERN_BASICAUTHUSER_USERNAME=myuser
SILLYTAVERN_BASICAUTHUSER_PASSWORD=mysecretpassword

# Enable multi-user mode
SILLYTAVERN_ENABLEUSERACCOUNTS=true

Volumes

SillyTavern persists all user data, characters, chats, and settings to the workspace directory:

Container Path Host Path Purpose
/home/node/app/config ./services/sillytavern/config Server configuration (config.yaml)
/home/node/app/data ./services/sillytavern/data User data: chats, characters, settings
/home/node/app/plugins ./services/sillytavern/plugins Server-side plugins
/home/node/app/public/scripts/extensions/third-party ./services/sillytavern/extensions UI extensions

Note: The config/, data/, plugins/, and extensions/ subdirectories are excluded from Git (.gitignore) to prevent committing personal AI chat history and configuration.

Connecting to AI Backends

SillyTavern connects to AI backends through its API Connections UI panel. It cannot auto-detect backends from environment variables alone, so you need to set the URL in the UI after startup.

Ollama

  1. Start SillyTavern with Ollama: harbor up sillytavern ollama
  2. In the SillyTavern UI, open API Connections
  3. Select Ollama as the API type
  4. Set the URL to the Ollama internal address: run harbor url ollama to fetch it
  5. Select a model and connect

When started together, SillyTavern and Ollama are placed on the same Docker network (harbor-network), so the internal URL is accessible without port forwarding.

llama.cpp

  1. Start SillyTavern with llama.cpp: harbor up sillytavern llamacpp
  2. In the SillyTavern UI, open API Connections
  3. Select llama.cpp as the API type
  4. Set the URL to the llama.cpp internal address: run harbor url llamacpp to fetch it

OpenAI-Compatible APIs

SillyTavern supports any OpenAI-compatible endpoint. Use the Custom (OpenAI-compatible) API type and set the base URL accordingly.

Troubleshooting

harbor logs sillytavern

Service is unreachable: Ensure SILLYTAVERN_LISTEN=true is set (it is by default in harbor). Without this, SillyTavern only binds to 127.0.0.1 inside the container.

Connection refused from browser: Check that SILLYTAVERN_WHITELIST includes your IP or is set to ["0.0.0.0/0"] (Harbor default). On Linux Docker CE, whitelistDockerHosts does not work — Harbor's compose sets the open whitelist explicitly.

Cannot connect to Ollama from SillyTavern UI: Make sure both services are running with harbor up sillytavern ollama. Use harbor url ollama to get the correct internal URL.

Links

Clone this wiki locally