{"owner":"odysseus-dev","repo":"odysseus","hasDocker":true,"hasCompose":true,"hasDockerfile":false,"composePath":"docker-compose.gpu-amd.yml","servicesCount":4,"services":[{"name":"odysseus","image":"${ODYSSEUS_IMAGE:-ghcr.io/odysseus-dev/odysseus:latest}","build":".","restart":"unless-stopped","ports":["${APP_BIND:-127.0.0.1}:${APP_PORT:-7011}:7000"],"environment":["LLM_HOST=${LLM_HOST:-localhost}","LLM_HOSTS=${LLM_HOSTS:-}","OPENAI_API_KEY=${OPENAI_API_KEY:-}","OLLAMA_BASE_URL=${OLLAMA_BASE_URL:-}","RESEARCH_LLM_ENDPOINT=${RESEARCH_LLM_ENDPOINT:-}","HF_TOKEN=${HF_TOKEN:-}","HUGGING_FACE_HUB_TOKEN=${HUGGING_FACE_HUB_TOKEN:-}","SEARXNG_INSTANCE=http://searxng:8080","CHROMADB_HOST=chromadb","CHROMADB_PORT=8000","DATABASE_URL=${DATABASE_URL:-sqlite:///./data/app.db}","AUTH_ENABLED=${AUTH_ENABLED:-true}","LOCALHOST_BYPASS=${LOCALHOST_BYPASS:-false}","COMPANION_BASE_URL=${COMPANION_BASE_URL:-}","ODYSSEUS_ADMIN_USER=${ODYSSEUS_ADMIN_USER:-admin}","ODYSSEUS_ADMIN_PASSWORD=${ODYSSEUS_ADMIN_PASSWORD:-}","ALLOWED_ORIGINS=${ALLOWED_ORIGINS:-http://localhost,http://127.0.0.1}","SECURE_COOKIES=${SECURE_COOKIES:-}","EMBEDDING_URL=${EMBEDDING_URL:-}","EMBEDDING_MODEL=${EMBEDDING_MODEL:-}","EMBEDDING_API_KEY=${EMBEDDING_API_KEY:-}","FASTEMBED_MODEL=${FASTEMBED_MODEL:-sentence-transformers/all-MiniLM-L6-v2}","FASTEMBED_CACHE_PATH=${FASTEMBED_CACHE_PATH:-}","CLEANUP_INTERVAL_HOURS=${CLEANUP_INTERVAL_HOURS:-24}","ODYSSEUS_INPROCESS_POLLERS=${ODYSSEUS_INPROCESS_POLLERS:-1}","ODYSSEUS_INPROCESS_TASKS=${ODYSSEUS_INPROCESS_TASKS:-1}","ODYSSEUS_QWEN_NATIVE_COMPACT_BUILTINS=${ODYSSEUS_QWEN_NATIVE_COMPACT_BUILTINS:-1}","ODYSSEUS_QWEN_SUPPRESS_LOCAL_CONTEXT=${ODYSSEUS_QWEN_SUPPRESS_LOCAL_CONTEXT:-0}","ODYSSEUS_CAPTURE_MODEL_REQUESTS=${ODYSSEUS_CAPTURE_MODEL_REQUESTS:-0}","ODYSSEUS_MCP_EMAIL_OWNER=${ODYSSEUS_MCP_EMAIL_OWNER:-}","ODYSSEUS_SCRIPT_HOST=${ODYSSEUS_SCRIPT_HOST:-localhost}","ODYSSEUS_CHAT_UPLOAD_MAX_BYTES=${ODYSSEUS_CHAT_UPLOAD_MAX_BYTES:-10485760}","ODYSSEUS_GALLERY_UPLOAD_MAX_BYTES=${ODYSSEUS_GALLERY_UPLOAD_MAX_BYTES:-104857600}","ODYSSEUS_GALLERY_TRANSFORM_UPLOAD_MAX_BYTES=${ODYSSEUS_GALLERY_TRANSFORM_UPLOAD_MAX_BYTES:-26214400}","ODYSSEUS_MEMORY_IMPORT_MAX_BYTES=${ODYSSEUS_MEMORY_IMPORT_MAX_BYTES:-10485760}","ODYSSEUS_PERSONAL_UPLOAD_MAX_BYTES=${ODYSSEUS_PERSONAL_UPLOAD_MAX_BYTES:-26214400}","ODYSSEUS_EMAIL_COMPOSE_UPLOAD_MAX_BYTES=${ODYSSEUS_EMAIL_COMPOSE_UPLOAD_MAX_BYTES:-26214400}","ODYSSEUS_EDITOR_DRAFT_MAX_BYTES=${ODYSSEUS_EDITOR_DRAFT_MAX_BYTES:-268435456}","ODYSSEUS_STT_MAX_AUDIO_BYTES=${ODYSSEUS_STT_MAX_AUDIO_BYTES:-26214400}","ODYSSEUS_ICS_MAX_BYTES=${ODYSSEUS_ICS_MAX_BYTES:-10485760}","ODYSSEUS_TTS_CACHE_MAX_BYTES=${ODYSSEUS_TTS_CACHE_MAX_BYTES}","ODYSSEUS_WORKSPACE_HOST_ROOT=${ODYSSEUS_WORKSPACE_HOST_ROOT:-}","ODYSSEUS_WORKSPACE_CONTAINER_ROOT=${ODYSSEUS_WORKSPACE_CONTAINER_ROOT:-/workspace}","ODYSSEUS_WORKSPACE_DEFAULT=${ODYSSEUS_WORKSPACE_DEFAULT:-}","DATA_BRAVE_API_KEY=${DATA_BRAVE_API_KEY:-}","GOOGLE_API_KEY=${GOOGLE_API_KEY:-}","GOOGLE_PSE_CX=${GOOGLE_PSE_CX:-}","GOOGLE_OAUTH_CLIENT_ID=${GOOGLE_OAUTH_CLIENT_ID:-}","GOOGLE_OAUTH_CLIENT_SECRET=${GOOGLE_OAUTH_CLIENT_SECRET:-}","GOOGLE_OAUTH_REDIRECT_URI=${GOOGLE_OAUTH_REDIRECT_URI:-}","OAUTH_REDIRECT_BASE_URL=${OAUTH_REDIRECT_BASE_URL:-}","TAVILY_API_KEY=${TAVILY_API_KEY:-}","SERPER_API_KEY=${SERPER_API_KEY:-}","PUID=${PUID:-1000}","PGID=${PGID:-1000}"],"volumes":["${APP_DATA_DIR:-./data}:/app/data:z","${APP_LOGS_DIR:-./logs}:/app/logs:z","${APP_DATA_DIR:-./data}/ssh:/app/.ssh:z","${APP_DATA_DIR:-./data}/huggingface:/app/.cache/huggingface:z","${APP_DATA_DIR:-./data}/local:/app/.local:z"],"depends_on":["searxng","chromadb"]},{"name":"chromadb","image":"docker.io/chromadb/chroma:latest","restart":"unless-stopped","ports":["${CHROMADB_BIND:-127.0.0.1}:8100:8000"],"environment":["ANONYMIZED_TELEMETRY=FALSE"],"volumes":["chromadb-data:/data"]},{"name":"searxng","image":"docker.io/searxng/searxng:2026.9.25-12f8b6515@sha256:5286edb35782454ab8a102c5eff6b54bff745853191b46aeead95f225aa6dfb6","restart":"unless-stopped","ports":["127.0.0.1:8080:8080"],"environment":["SEARXNG_BASE_URL=http://localhost:8080/","SEARXNG_SECRET=${SEARXNG_SECRET:-}"],"volumes":["searxng-data:/etc/searxng","./config/searxng/settings.yml:/tmp/searxng-settings.yml.template:ro,z","./scripts/migrate_searxng_settings.py:/tmp/migrate-searxng-settings.py:ro,z"]},{"name":"ntfy","image":"docker.io/binwiederhier/ntfy","restart":"unless-stopped","command":"serve","ports":["${NTFY_BIND:-127.0.0.1}:8091:80"],"environment":["NTFY_BASE_URL=${NTFY_BASE_URL:-http://localhost:8091}"],"volumes":["ntfy-cache:/var/cache/ntfy"]}],"exposedPorts":["7011","8100","8080","8091"],"dockerRunCommand":"docker run -d --name odysseus -p 7011:7011 --restart always docker.io/chromadb/chroma:latest","podmanRunCommand":"podman run -d --name odysseus -p 7011:7011 --restart always docker.io/chromadb/chroma:latest","skopeoInspectCommand":"skopeo inspect docker://docker.io/docker.io/chromadb/chroma:latest","orasPullCommand":"oras pull docker.io/chromadb/chroma:latest","registryMeta":{"provider":"dockerhub","image":"docker.io/chromadb/chroma","canonicalImage":"docker.io/docker.io/chromadb/chroma:latest","latestTag":"latest","cliCommands":{"dockerRun":"docker run -d --name odysseus -p 7011:7011 --restart always docker.io/chromadb/chroma:latest","dockerPull":"docker pull docker.io/chromadb/chroma:latest","podmanRun":"podman run -d --name odysseus -p 7011:7011 --restart always docker.io/chromadb/chroma:latest","skopeoInspect":"skopeo inspect docker://docker.io/docker.io/chromadb/chroma:latest","orasPull":"oras pull docker.io/chromadb/chroma:latest","composeYaml":"services:\n  odysseus:\n    image: docker.io/chromadb/chroma:latest\n    restart: unless-stopped\n    ports:\n      - \"7011:7011\""}}}