# Hoarder/Karakeep - Bookmark manager
# Port: 3000
# URL: https://hoarder.thevish.io
# AI-powered bookmark and note manager
# SSO: Authentik OIDC (sso.vish.gg/application/o/hoarder/)
services:
  web:
    image: ghcr.io/hoarder-app/hoarder:${HOARDER_VERSION:-release}
    restart: unless-stopped
    volumes:
      - /home/homelab/docker/hoarder/data:/data
    ports:
      - 3482:3000
    environment:
      MEILI_ADDR: http://meilisearch:7700
      BROWSER_WEB_URL: http://chrome:9222
      OLLAMA_BASE_URL: http://192.168.0.145:31434
      OLLAMA_KEEP_ALIVE: -1m
      INFERENCE_TEXT_MODEL: qwen3-coder:latest
      DATA_DIR: /data
      NEXTAUTH_SECRET: "REDACTED_NEXTAUTH_SECRET"
      NEXTAUTH_URL: https://hoarder.thevish.io
      MEILI_MASTER_KEY: ${MEILI_MASTER_KEY}
      # Authentik OIDC SSO
      OAUTH_WELLKNOWN_URL: https://sso.vish.gg/application/o/hoarder/.well-known/openid-configuration
      OAUTH_CLIENT_ID: hoarder
      OAUTH_CLIENT_SECRET: "REDACTED_CLIENT_SECRET" # pragma: allowlist secret
      OAUTH_PROVIDER_NAME: Authentik
      OAUTH_ALLOW_DANGEROUS_EMAIL_ACCOUNT_LINKING: "true"
  chrome:
    image: gcr.io/zenika-hub/alpine-chrome:123
    restart: unless-stopped
    command:
      - chromium-browser
      - --no-sandbox
      - --disable-gpu
      - --disable-dev-shm-usage
      - --remote-debugging-address=0.0.0.0
      - --remote-debugging-port=9222
      - --hide-scrollbars
    ports:
      - 9222:9222   # optional, for debugging
  meilisearch:
    image: getmeili/meilisearch:v1.6
    restart: unless-stopped
    environment:
      MEILI_NO_ANALYTICS: "true"
    volumes:
      - /root/docker/hoarder/meilisearch:/meili_data

volumes:
  meilisearch:
  data:
