Files
Homelab/karakeep-compose.yaml
2026-01-25 00:51:14 -06:00

105 lines
3.2 KiB
YAML

services:
karakeep-web:
image: ghcr.io/karakeep-app/karakeep:${KARAKEEP_VERSION:-release}
restart: unless-stopped
volumes:
# By default, the data is stored in a docker volume called "data".
# If you want to mount a custom directory, change the volume mapping to:
# - /path/to/your/directory:/data
- /data/karakeep:/data
# ports:
# - 3000:3000
env_file:
# - .env
- /data/secrets/karakeep
environment:
MEILI_ADDR: http://meilisearch:7700
BROWSER_WEB_URL: http://karakeep-chrome:9222
OLLAMA_BASE_URL: http://ollama:11434 #comma separated ollama hosts
INFERENCE_TEXT_MODEL: gemma3
INFERENCE_IMAGE_MODEL: llava
INFERENCE_OUTPUT_SCHEMA: json
INFERENCE_CONTEXT_LENGTH: 1024
INFERENCE_JOB_TIMEOUT_SEC: 120
CRAWLER_FULL_PAGE_ARCHIVE: true
BROWSER_COOKIE_PATH: /data/cookies.json
LOG_LEVEL: info
# You almost never want to change the value of the DATA_DIR variable.
# If you want to mount a custom directory, change the volume mapping above instead.
DATA_DIR: /data # DON'T CHANGE THIS
networks:
- karakeep
- karakeep-int
- ollama-int
karakeep-chrome:
image: gcr.io/zenika-hub/alpine-chrome:123
restart: unless-stopped
command:
- --no-sandbox
- --disable-gpu
- --disable-dev-shm-usage
- --remote-debugging-address=0.0.0.0
- --remote-debugging-port=9222
- --hide-scrollbars
networks:
- karakeep-int
meilisearch:
image: getmeili/meilisearch:v1.13.3
restart: unless-stopped
env_file:
- .env
environment:
MEILI_NO_ANALYTICS: "true"
volumes:
- /data/meilisearch:/meili_data
networks:
- karakeep-int
ollama:
image: docker.io/ollama/ollama:rocm
volumes:
- .:/code
- /data/library/ollama/ollama:/root/.ollama
devices:
- /dev/dri:/dev/dri
- /dev/kfd:/dev/kfd
# pull_policy: always
tty: true
restart: always
environment:
- OLLAMA_KEEP_ALIVE=24h
- OLLAMA_HOST=0.0.0.0
- OLLAMA_DEBUG=1
networks:
- ollama-int
ollama-webui:
image: ghcr.io/open-webui/open-webui:main
volumes:
- /data/library/ollama/ollama-webui:/app/backend/data
depends_on:
- ollama
environment: # https://docs.openwebui.com/getting-started/env-configuration#default_models
- OLLAMA_BASE_URLS=http://ollama:7869 #comma separated ollama hosts
- ENABLE_OPENAI_API=False
- WEBUI_URL=https://ollama.loadingm.xyz
- ENV=dev
- ENABLE_OAUTH_SIGNUP=true
- OAUTH_MERGE_ACCOUNTS_BY_EMAIL=true
- OPENID_PROVIDER_URL=https://auth.loadingm.xyz/.well-known/openid-configuration
- OAUTH_PROVIDER_NAME=Authelia
- OAUTH_SCOPES=openid email profile groups
- ENABLE_OAUTH_ROLE_MANAGEMENT=true
- OAUTH_ALLOWED_ROLES=openwebui,openwebui-admin
- OAUTH_ADMIN_ROLES=openwebui-admin
- OAUTH_ROLES_CLAIM=groups
- OAUTH_CODE_CHALLENGE_METHOD=S256
env_file: /data/secrets/ollama-webui
# - WEBUI_AUTH=True
# - WEBUI_NAME=valiantlynx AI
# - WEBUI_SECRET_KEY=t0p-s3cr3t
extra_hosts:
- host.docker.internal:host-gateway
restart: unless-stopped
networks:
- ollama
- ollama-int