Skip to main content

Self-Host

Learn about how to self-host thynk on your own machine.

Benefits to self-hosting:

  1. Privacy: Your data will never have to leave your private network. You can even use thynk without an internet connection if deployed on your personal computer.
  2. Customization: You can customize thynk to your liking, from models, to host URL, to feature enablement.

Setup thynk

These are the general setup instructions for self-hosted thynk. You can install the thynk server using either Docker or Pip.

Offline Model + GPU

To use the offline chat model with your GPU, we recommend using the Docker setup with Ollama . You can also use the local thynk setup via the Python package directly.

First Run

Restart your thynk server after the first run to ensure all settings are applied correctly.

Prerequisites

Docker

  • Option 1: Click here to install Docker Desktop. Make sure you also install the Docker Compose tool.

  • Option 2: Use Homebrew to install Docker and Docker Compose.

    brew install --cask docker
    brew install docker-compose

Setup

  1. Download the thynk docker-compose.yml file from Github
    mkdir ~/.thynk && cd ~/.thynk
    wget https://raw.githubusercontent.com/khoj-ai/khoj/master/docker-compose.yml
  2. Configure the environment variables in the docker-compose.yml
    • Set thynk_ADMIN_PASSWORD, thynk_DJANGO_SECRET_KEY (and optionally the thynk_ADMIN_EMAIL) to something secure. This allows you to customize thynk later via the admin panel.
    • Set OPENAI_API_KEY, ANTHROPIC_API_KEY, or GEMINI_API_KEY to your API key if you want to use OpenAI, Anthropic or Gemini commercial chat models respectively.
    • Uncomment OPENAI_API_BASE to use Ollama running on your host machine. Or set it to the URL of your OpenAI compatible API like vLLM or LMStudio.
  3. Start thynk by running the following command in the same directory as your docker-compose.yml file.
    cd ~/.thynk
    docker-compose up
Remote Access

By default thynk is only accessible on the machine it is running. To access thynk from a remote machine see Remote Access Docs.

Your setup is complete once you see 🌖 thynk is ready to use in the server logs on your terminal.

Use thynk

You can now open the web app at http://localhost:42110 and start interacting!
Nothing else is necessary, but you can customize your setup further by following the steps below.

First Message to Offline Chat Model

The offline chat model gets downloaded when you first send a message to it. The download can take a few minutes! Subsequent messages should be faster.

Add Chat Models

Login to the thynk Admin Panel

Go to http://localhost:42110/server/admin and login with the admin credentials you setup during installation.

CSRF Error

Ensure you are using localhost, not 127.0.0.1, to access the admin panel to avoid the CSRF error.

DISALLOWED HOST or Bad Request (400) Error

You may hit this if you try access thynk exposed on a custom domain (e.g. 192.168.12.3 or example.com) or over HTTP. Set the environment variables thynk_DOMAIN=your-domain and thynk_NO_HTTPS=True if required to avoid this error.

Note

Using Safari on Mac? You might not be able to login to the admin panel. Try using Chrome or Firefox instead.

Configure Chat Model

Setup which chat model you'd want to use. thynk supports local and online chat models.

Ollama Integration

Using Ollama? See the Ollama Integration section for more custom setup instructions.

  1. Create a new AI Model Api in the server admin settings.
    • Add your OpenAI API key
    • Give the configuration a friendly name like OpenAI
    • (Optional) Set the API base URL. It is only relevant if you're using another OpenAI-compatible proxy server like Ollama or LMStudio.
      example configuration for ai model api
  2. Create a new chat model
    • Set the chat-model field to an OpenAI chat model. Example: gpt-4o.
    • Make sure to set the model-type field to OpenAI.
    • If your model supports vision, set the vision enabled field to true. This is currently only supported for OpenAI models with vision capabilities.
    • The tokenizer and max-prompt-size fields are optional. Set them only if you're sure of the tokenizer or token limit for the model you're using. Contact us if you're unsure what to do here.
      example configuration for chat model options
Multiple Chat Models

Set your preferred default chat model in the Default, Advanced fields of your ServerChatSettings. thynk uses these chat model for all intermediate steps like intent detection, web search etc.

Chat Model Fields
  • The tokenizer and max-prompt-size fields are optional. Set them only if you're sure of the tokenizer or token limit for the model you're using. This improves context stuffing. Contact us if you're unsure what to do here.
  • Only tick the vision enabled field for OpenAI models with vision capabilities like gpt-4o. Vision capabilities in other chat models is not currently utilized.

Sync your Knowledge

  • You can chat with your notes and documents using thynk.
  • thynk can keep your files and folders synced using the thynk Desktop, Obsidian or Emacs clients.
  • Your Notion workspace can be directly synced from the web app.
  • You can also just drag and drop specific files you want to chat with on the Web app.

Setup thynk Clients

The thynk web app is available by default to chat, search and configure thynk.
You can also install a thynk client to easily access it from Obsidian, Emacs, Whatsapp or your OS and keep your documents synced with Khoj.

Note

Set the host URL on your clients settings page to your thynk server URL. By default, use http://127.0.0.1:42110 or http://localhost:42110. Note that localhost may not work in all cases.

Upgrade

Upgrade Server

pip install --upgrade thynk

Note: To upgrade to the latest pre-release version of the thynk server run below command

Upgrade Clients

  • The Desktop app automatically updates to the latest released version on restart.
  • You can manually download the latest version from the thynk Website.

Uninstall

Uninstall Server

# uninstall thynk server
pip uninstall thynk

# delete thynk postgres db
dropdb thynk -U postgres

Uninstall Clients

Uninstall the thynk Desktop client in the standard way from your OS.

Troubleshoot

Dependency conflict when trying to install thynk python package with pip

  • Reason: When conflicting dependency versions are required by thynk vs other python packages installed on your system
  • Fix: Install thynk in a python virtual environment using venv or pipx to avoid this dependency conflicts
  • Process:
    1. Install pipx
    2. Use pipx to install thynk to avoid dependency conflicts with other python packages.
      pipx install thynk
    3. Now start thynk using the standard steps described earlier

Install fails while building Tokenizer dependency

  • Details: pip install thynk fails while building the tokenizers dependency. Complains about Rust.
  • Fix: Install Rust to build the tokenizers package. For example on Mac run:
    brew install rustup
    rustup-init
    source ~/.cargo/env
  • Refer: Issue with Fix for more details

thynk in Docker errors out with "Killed" in error message