Service Setup Guide

Step-by-step instructions for connecting each service to Prism. For every service you'll need a URL and usually an API key or token. Prism's Service Discovery can auto-detect most local services, but you'll still need to provide authentication credentials.

LM Studio

LM Studio provides a local OpenAI-compatible API for running language models on your own hardware.

FieldValue
Default URLhttp://localhost:1234
AuthNone required

Setup

  1. Download and install LM Studio
  2. Load a model (e.g., Qwen, Llama, Mistral) from the Discover tab
  3. Click Start Server in the Local Server tab — it starts on port 1234 by default
  4. The server URL is shown in the Server tab header (e.g., http://192.168.86.77:1234)
  5. To allow network access from other machines, enable Serve on Local Network in Server settings

Finding your model name

  • Open LM Studio → Local Server tab → the loaded model name is shown at the top
  • Or visit http://<your-ip>:1234/v1/models in a browser — the id field is the model name
  • Prism auto-detects the loaded model during onboarding

Ollama

Unverified path. Prism has no named Ollama connector. Ollama exposes an OpenAI-compatible API, so pointing a custom model at http://localhost:11434/v1 should work, but this route has not been through a verified setup pass. LM Studio is the tested local runtime.

Ollama runs open-source models locally with a simple CLI.

FieldValue
Default URLhttp://localhost:11434
AuthNone required

Setup

  1. Install Ollama
  2. Pull a model: ollama pull llama3.2:latest
  3. Ollama starts automatically and listens on port 11434
  4. To allow network access, set the environment variable:
    • macOS/Linux: OLLAMA_HOST=0.0.0.0 ollama serve
    • Windows: Set OLLAMA_HOST=0.0.0.0 in System Environment Variables, then restart Ollama
    • Docker: -e OLLAMA_HOST=0.0.0.0

Finding your model name

  • Run ollama list in terminal — the NAME column shows available models
  • Or visit http://<your-ip>:11434/api/tags — the name field in each model entry
  • Use the full name including tag, e.g., llama3.2:latest (not just llama3.2)

Paperless-ngx

Document management system that indexes PDFs, images, and office documents with OCR.

FieldValue
Default URLhttp://localhost:8010
AuthAPI Token

Setup

  1. Install Paperless-ngx (Docker recommended)
  2. The default port is 8000, but many setups use 8010 — check your docker-compose.yml
  3. Log in to the Paperless web UI

Finding your API token

  1. Open Paperless web UI → click your username (top-right) → My Profile
  2. Scroll down to Auth Tokens section
  3. Click + Add to create a new token, or copy an existing one
  4. The token looks like: a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2

Alternative (Django admin)

  1. Go to http://<your-url>/admin/authtoken/tokenproxy/
  2. Click Add Token, select your user, and save
  3. Copy the token string

Obsidian (Local REST API)

Connects to your Obsidian vault via the Local REST API community plugin.

FieldValue
Default URLhttp://127.0.0.1:27123 or https://127.0.0.1:27124
AuthAPI Key (Bearer token)

Setup

  1. Open Obsidian → SettingsCommunity plugins → Browse
  2. Search for "Local REST API" and install it
  3. Enable the plugin in Community plugins
  4. Go to the plugin's settings (click the gear icon next to it)

Finding your API key

  1. In the Local REST API plugin settings, you'll see the API Key field
  2. Copy the key — it's a long alphanumeric string
  3. The settings also show the port (default: 27123 for HTTP, 27124 for HTTPS)
  4. If using HTTPS (recommended for network access), Prism automatically handles the self-signed certificate

Network access

  • By default the plugin only listens on 127.0.0.1 (localhost)
  • To access from another machine, go to plugin settings → enable "Enable Non-local Requests"
  • Use the IP of the machine running Obsidian (e.g., http://192.168.86.103:27123)

BookStack

Self-hosted wiki platform for organizing documentation.

FieldValue
Default URLhttp://localhost:8080
AuthToken ID + Token Secret

Setup

  1. Install BookStack (Docker recommended)
  2. Default port is 8080 — check your docker-compose.yml port mapping

Finding your API tokens

  1. Log in to BookStack web UI
  2. Click your profile icon (top-right) → Edit Profile
  3. Scroll down to API Tokens section
  4. Click Create Token
  5. Give it a name (e.g., "Prism") and click Save
  6. Copy both values:
    • Token ID — short alphanumeric string (e.g., GaE5y9k3E6rL)
    • Token Secret — longer string (e.g., lGiCc3IpIkBE5t0r4muMvQxMbhv9oOET)
  7. Important: The Token Secret is only shown once — save it immediately

Nextcloud

Self-hosted cloud storage and collaboration platform.

FieldValue
Default URLhttp://localhost:8443
AuthUsername + App Password

Setup

  1. Install Nextcloud (Docker, Snap, or manual)
  2. Check your port in the Nextcloud config or docker-compose.yml

Creating an App Password

  1. Log in to Nextcloud web UI
  2. Click your avatar (top-right) → Settings
  3. Go to Security in the left sidebar
  4. Scroll down to Devices & sessions
  5. Enter a name (e.g., "Prism") in the App name field
  6. Click Create new app password
  7. Copy the generated password — it looks like: xY3kL-mN7pQ-rS9tU-vW2xA-bC4dE
  8. Use your Nextcloud username (not email) in the Username field

Local Files

Indexes files on your local filesystem using a full-text search engine.

FieldValue
Search PathsComma-separated directory paths
ExtensionsComma-separated file extensions
AuthNone (local filesystem)

Setup

  1. Enter one or more directories to index, separated by commas:
    ~/Documents, ~/Projects, ~/Notes
    Use absolute paths on Windows: C:\Users\you\Documents, D:\Projects
  2. Optionally customize which file types to include:
    • Default: md, txt, pdf, docx, csv, json, rs, ts, py (and many more)
    • Add or remove extensions as needed
  3. Click Sync to trigger the initial indexing

Supported file types

  • Text: .md, .txt, .csv, .json, .yaml, .toml, .xml
  • Documents: .pdf (text extraction via lopdf), .docx (via docx_rs)
  • Code: .rs, .ts, .tsx, .js, .jsx, .py, .go, .java, .c, .cpp, .h, .sh
  • Web: .html, .css, .svg

Email (Gmail / Outlook / FastMail)

Search your email inbox directly from Prism.

FieldValue
ProviderGmail, Outlook or FastMail
AuthOAuth2 Access Token

Gmail setup

  1. Go to Google Cloud Console
  2. Create a project → Enable the Gmail API
  3. Create OAuth 2.0 credentials (Desktop app type)
  4. Use the OAuth flow to get an access token with scope: https://www.googleapis.com/auth/gmail.readonly
  5. Paste the access token into Prism

Outlook / Microsoft setup

  1. Go to Azure PortalApp registrations → New registration
  2. Add Microsoft Graph API permission: Mail.Read
  3. Use the OAuth flow to get an access token
  4. Paste the access token into Prism
Note: OAuth access tokens expire (typically 1 hour). You'll need to refresh them periodically. A future Prism update will add built-in OAuth flows.

SearXNG

Self-hosted metasearch engine that aggregates results from multiple search engines.

FieldValue
Default URLhttp://localhost:8080
AuthNone required

Setup

  1. Install SearXNG (Docker recommended):
    docker run -d -p 8080:8080 --name searxng searxng/searxng
  2. Ensure JSON output is enabled in settings.yml:
    search:
      formats:
        - html
        - json
  3. The default port is 8080 — check your Docker port mapping if different

Qdrant

Vector database used by Prism for semantic search (RAG pipeline).

FieldValue
Default URLhttp://localhost:6333
AuthAPI Key (optional for local)

Setup

  1. Install Qdrant (Docker recommended):
    docker run -d -p 6333:6333 -p 6334:6334 \
      -v qdrant_storage:/qdrant/storage \
      qdrant/qdrant
  2. Default ports: 6333 (REST API), 6334 (gRPC)
  3. Dashboard available at http://localhost:6333/dashboard
  4. For local instances, no API key is needed
  5. If you set an API key in Qdrant's config, enter it in Prism

Auto-created collections

Prism creates these collections automatically:

  • prism_paperless — Paperless document embeddings
  • prism_bookstack — BookStack page embeddings
  • prism_obsidian — Obsidian note embeddings
  • prism_feedback — User feedback embeddings

Embedding Model

Prism uses an embedding model to convert text into vectors for semantic search.

FieldDefault
Modelnomic-embed-text-v1.5
Dimension768
Providerlocal (LM Studio/Ollama)

Local setup (default)

  1. In LM Studio: Go to Discover → search for nomic-embed-text-v1.5 → Download
  2. The embedding model runs alongside your chat model
  3. No additional configuration needed — Prism uses the same LM Studio URL

OpenAI setup (alternative)

  1. In Source Priority advanced settings, change Embedding Provider to openai
  2. Enter your OpenAI API key
  3. Endpoint: https://api.openai.com (default)
  4. Model: text-embedding-3-small or text-embedding-ada-002

Default Ports

ServiceDefault PortProtocol
LM Studio1234HTTP
Ollama11434HTTP
Paperless-ngx8000 / 8010HTTP
BookStack8080HTTP
Obsidian REST API27123 (HTTP) / 27124 (HTTPS)HTTP/HTTPS
Nextcloud8443 / 443HTTP/HTTPS
SearXNG8080HTTP
Qdrant6333HTTP

Troubleshooting

"Connection refused"

The service isn't running or isn't listening on the expected port. Check:

  • Is the Docker container / service actually running?
  • Is the port correct? Check docker ps or your service config
  • Is the service listening on 0.0.0.0 (all interfaces) vs 127.0.0.1 (localhost only)?

"Connection timed out"

Network can't reach the service. Check:

  • Is the IP address correct?
  • Is there a firewall blocking the port?
  • Are you on the same network / VPN?

"HTTP 401 / 403"

Authentication failed. Check:

  • Is the API key / token correct and not expired?
  • For Paperless: use Token <key> format (Prism handles this automatically)
  • For Obsidian: the API key must match what's in the plugin settings
  • For BookStack: both Token ID and Token Secret are required

"DNS lookup failed"

The hostname can't be resolved. Check:

  • Use an IP address instead of a hostname
  • Check if your DNS resolver is working
  • For .local domains, ensure mDNS/Bonjour is running

Service discovery not finding services

  • Discovery only scans localhost and common ports — it won't find services on other machines
  • Enter the URL manually for remote services (e.g., http://192.168.86.16:8010)
  • Some services need specific ports open for discovery signatures to work