Vikunja reports "unsupported protocol scheme typesense"

Hi all,
I tried a self hosted, docker based instance of Vikunja. I followed the documentation and decided to add the typesense container. Apparently the configuration is ok, but when I log into Vikunja, I always get this error:

2024-12-17T12:49:30Z: ERROR :arrow_forward: 118 Get “typesense:///collections/tasks/documents/search?exhaustive_search=true&filter_by=project_id%3A+%5B1%2C+2%5D+%26%26+%28done%3A%3Dfalse%29&page=1&per_page=50&q=%2A&query_by=title%2C+identifier%2C+description%2C+comments.comment&sort_by=due_date%28missing_values%3Alast%29%3Aasc%2Ccreated%28missing_values%3Alast%29%3Adesc”: unsupported protocol scheme “typesense”

These are the relevant compose lines:

typesense:
image: docker.io/typesense/typesense:0.25.1
environment:
TYPESENSE_DATA_DIR: /data TYPESENSE_API_KEY: typesense
volumes: - ./data:/data deploy: resources: limits: cpus: “2” memory: “4G” reservations: cpus: ‘0.5’ memory: ‘2G’

How did you configure Vikunja so that it uses Typesense?

My relevant config files are:
docker-compose.yml

version: '3'

services:
  vikunja:
    image: vikunja/vikunja
    environment:
        VIKUNJA_SERVICE_PUBLICURL: https://vikunja-dev.infn.it
        VIKUNJA_DATABASE_HOST: db
        VIKUNJA_DATABASE_PASSWORD: changeme
        VIKUNJA_DATABASE_TYPE: postgres
        VIKUNJA_DATABASE_USER: vikunja
        VIKUNJA_DATABASE_DATABASE: vikunja
        VIKUNJA_SERVICE_JWTSECRET: MySuperSecret
        VIKUNJA_CACHE_ENABLED: 1
        VIKUNJA_CACHE_TYPE: redis
        VIKUNJA_REDIS_HOST: 'redis:6379'
        VIKUNJA_TYPESENSE_URL: 'typesense:8108'
    ports:
      - 3456:3456
    volumes:
      - ./files:/app/vikunja/files
    configs:
      - source: vconfig
        target: /app/vikunja/config.yml
    depends_on:
      db:
        condition: service_healthy
    restart: unless-stopped
    deploy:
      resources:
        limits:
          cpus: "2"
          memory: "4G"
        reservations:
          cpus: '2'
          memory: '4G'

  typesense:
    image: docker.io/typesense/typesense:27.1
    environment:
      TYPESENSE_DATA_DIR: /data
      TYPESENSE_API_KEY: typesense
    volumes:
      - ./data:/data
    deploy:
      resources:
        limits:
          cpus: "2"
          memory: "4G"
        reservations:
          cpus: '0.5'
          memory: '2G'

config.yml

typesense:
  # Whether to enable the Typesense integration. If true, all tasks will be synced to the configured Typesense
  # instance and all search and filtering will run through Typesense instead of only through the database.
  # Typesense allows fast fulltext search including fuzzy matching support. It may return different results than
  # what you'd get with a database-only search.
  enabled: true
  # The url to the Typesense instance you want to use. Can be hosted locally or in Typesense Cloud as long
  # as Vikunja is able to reach it.
  url: 'typesense:8108'
  # The Typesense API key you want to use.
  apikey: 'typesense'

I changed the typesense version as I realized that it was pretty old and move to 27.1, but still no luck yet.
Thanks in advance for your support,
Marco

Since Typesense communicates via http, you need to add that as a protocol.

Thanks for the hint, it wasn’t clear from the documentation. Just a further question: I read that I have to run “vikunja index” to create the collections into typesense and index the tasks. Should I run it on a regular basis to sync new tasks that the users create? Or is it something that Vikunja takes care of?
Thanks again for your support.
Marco

Happy to help!

You only need to do this once after enabling Typesense. All changes after that will be synced automatically.