Skip to content
Nick Bradshaw edited this page Feb 11, 2026 · 3 revisions

Here is a complete rewrite of the Wiki page.

I have structured this to be the "Deep Dive" companion to the README. It removes all references to the obsolete file-based configuration (like prompt.txt) and focuses on the new Database/WebUI-driven workflow.


Complete Installation & Setup Guide

This guide covers the end-to-end process of setting up Scribble, from configuring your server to running your first session.

🐳 Phase 1: Server Preparation

Scribble runs inside a Docker container. This ensures all dependencies (ffmpeg, python libraries, system tools) are isolated and don't mess with your host OS.

1. Prerequisites

You need a machine (Linux, Windows, or Mac) with:

2. Directory Setup

Create a dedicated folder for Scribble. This will hold your configuration and your data.

mkdir scribble
cd scribble

3. The Compose File

Create a docker-compose.yaml file in this folder. Choose the version that matches your hardware.

Option A: NVIDIA GPU (Recommended) Best performance. Transcription is significantly faster.

services:
  scribble:
    container_name: scribble
    image: ghcr.io/goose-ws/scribble:cuda-latest
    ports:
      - 13131:13131
    environment:
      - TZ=America/New_York  # Set your timezone
      - PUID=1000            # User ID to own files
      - PGID=1000            # Group ID to own files
    volumes:
      - "./data:/data"       # Persistent storage for DB and audio
    deploy:
      resources:
        reservations:
          devices:
          - driver: nvidia
            count: all
            capabilities: [gpu]
    restart: unless-stopped

Option B: CPU Only Universal compatibility, but slower transcription speeds.

services:
  scribble:
    container_name: scribble
    image: ghcr.io/goose-ws/scribble:cpu-latest
    ports:
      - 13131:13131
    environment:
      - TZ=America/New_York
      - PUID=1000
      - PGID=1000
    volumes:
      - "./data:/data"
    restart: unless-stopped

4. Launch

Start the container in the background:

docker compose up -d

πŸ” Phase 2: Initial Login & Security

Scribble does not have a default password. On the very first run, it generates a secure, random temporary password.

  1. Find the Password: Check the container logs.
docker logs scribble
  1. Locate the Banner: Scroll until you see a block that looks like this:
==================================================
FIRST RUN - TEMPORARY PASSWORD: xxxxx-xxxxx-xxxxx
==================================================

  1. Login: Go to http://YOUR_SERVER_IP:13131 and log in with that token.
  2. Secure It: Immediately go to the Settings page and set your own permanent WebUI Password.

βš™οΈ Phase 3: System Configuration

Before processing files, you need to tell Scribble how to listen and think. Go to the Settings tab.

1. Whisper (The Ears)

This handles the Speech-to-Text.

  • Model Size:

  • small: Fast, good for clear audio. Low RAM usage.

  • medium: The "Goldilocks" zone. Good balance.

  • large-v3: Best accuracy, but requires ~4GB-8GB VRAM (or lots of RAM on CPU).

  • Threads:

  • GPU Users: Leave this at 0.

  • CPU Users: Set this to the number of physical cores you want to dedicate (e.g., 4 or 8).

2. LLM Provider (The Brain)

Scribble needs an AI to read the transcript and write the recap. Select one provider:

Enter your API Key and the Model Name (e.g., gemini-2.0-flash or claude-3-5-sonnet-20240620) and save.


βš”οΈ Phase 4: Campaign Setup

Unlike older versions of Scribble, you now manage Campaigns in the database. This allows you to run multiple different games (e.g., a Tuesday D&D game and a Friday Sci-Fi game) with different settings.

  1. Go to the Campaigns tab (or Settings).
  2. Create a New Campaign.
  3. Name: The display name (e.g., "Curse of Strahd").
  4. Discord Webhook: (See Phase 5 below).
  5. System Prompt: This is where you teach the AI how to write.
  • Prompt Variables: You can use these special tags in your prompt, and Scribble will fill them in automatically:

  • ${campaignName}

  • ${sessionNumber}

  • ${sessionDate}

  • Example Prompt:

You are the chronicler for the campaign "${campaignName}". Summarize the following transcript from Session {sessionDate}). The players are: Alice (Cleric), Bob (Wizard)... Keep the tone dark and mysterious.


πŸ’¬ Phase 5: Discord Integration

Scribble relies on Craig for recording and Webhooks for posting.

1. Recording (Craig)

  1. Invite Craig to your server.
  2. Join a voice channel and type /join to start recording.
  3. When finished, Craig will DM you a download link.
  4. IMPORTANT: Download the FLAC (Multi-track) format. This gives you a .zip file. Do not unzip it.

2. Posting (Webhooks)

  1. Create a Forum Channel in your Discord server (e.g., #session-recaps). Forum channels are best because Scribble creates a new thread for every session.
  2. Right-click the channel β†’ Edit Channel β†’ Integrations β†’ Webhooks.
  3. Click New Webhook, name it "Scribble", and copy the Webhook URL.
  4. Paste this URL into your Campaign Settings in Scribble.

πŸš€ Phase 6: Workflow (Running a Session)

  1. Upload:
  • Go to the Scribble Dashboard.
  • Click Upload.
  • Select the Campaign.
  • Session Number: Check the auto-detected number (e.g., Session 5). You can override this if you are uploading old sessions out of order.
  • Drop the Craig .zip file and submit.
  1. Processing:
  • Scribble will extract the audio and transcribe each speaker individually (to ensure high accuracy).
  • It will then merge them into a master transcript.
  • Finally, it sends the transcript to your LLM to generate the recap.
  1. Result:
  • The recap is automatically posted to Discord.
  • You can view, edit, or regenerate the recap from the Session Detail page in the Web UI.
  • You can also download the full transcript or the recap as PDF/Text files.