[tool.alfred.settings_schema] # Build variables (from pyproject.toml) [tool.alfred.settings_schema.ALFRED_VERSION] type = "string" source = "toml" toml_path = "tool.poetry.version" description = "Alfred version" category = "build" export_to_env_make = true [tool.alfred.settings_schema.PYTHON_VERSION] type = "string" source = "toml" toml_path = "tool.poetry.dependencies.python" transform = "extract_python_version_full" description = "Python version (full)" category = "build" export_to_env_make = true [tool.alfred.settings_schema.PYTHON_VERSION_SHORT] type = "string" source = "toml" toml_path = "tool.poetry.dependencies.python" transform = "extract_python_version_short" description = "Python version (major.minor)" category = "build" export_to_env_make = true [tool.alfred.settings_schema.RUNNER] type = "string" source = "env" default = "poetry" description = "Dependency manager (poetry/uv)" category = "build" export_to_env_make = true [tool.alfred.settings_schema.IMAGE_NAME] type = "string" source = "env" default = "alfred_media_organizer" description = "Docker image name" category = "build" export_to_env_make = true [tool.alfred.settings_schema.SERVICE_NAME] type = "string" source = "env" default = "alfred" description = "Docker service name" category = "build" export_to_env_make = true [tool.alfred.settings_schema.LIBRECHAT_VERSION] type = "string" source = "env" default = "v0.8.1" description = "LibreChat version" category = "build" export_to_env_make = true [tool.alfred.settings_schema.RAG_VERSION] type = "string" source = "env" default = "v0.7.0" description = "RAG API version" category = "build" export_to_env_make = true # Security secrets (generated) [tool.alfred.settings_schema.JWT_SECRET] type = "secret" source = "generated" secret_rule = "32:b64" description = "JWT signing secret" category = "security" required = true [tool.alfred.settings_schema.JWT_REFRESH_SECRET] type = "secret" source = "generated" secret_rule = "32:b64" description = "JWT refresh token secret" category = "security" required = true [tool.alfred.settings_schema.CREDS_KEY] type = "secret" source = "generated" secret_rule = "32:hex" description = "Credentials encryption key (AES-256)" category = "security" required = true [tool.alfred.settings_schema.CREDS_IV] type = "secret" source = "generated" secret_rule = "16:hex" description = "Credentials encryption IV" category = "security" required = true [tool.alfred.settings_schema.MEILI_MASTER_KEY] type = "secret" source = "generated" secret_rule = "32:b64" description = "Meilisearch master key" category = "security" required = true [tool.alfred.settings_schema.MONGO_PASSWORD] type = "secret" source = "generated" secret_rule = "16:hex" description = "MongoDB password" category = "security" required = true [tool.alfred.settings_schema.POSTGRES_PASSWORD] type = "secret" source = "generated" secret_rule = "16:hex" description = "PostgreSQL password" category = "security" required = true [tool.alfred.settings_schema.QBITTORRENT_PASSWORD] type = "secret" source = "generated" secret_rule = "16:hex" description = "qBittorrent password" category = "security" required = true # Database configuration [tool.alfred.settings_schema.MONGO_HOST] type = "string" source = "env" default = "mongodb" description = "MongoDB host" category = "database" [tool.alfred.settings_schema.MONGO_PORT] type = "integer" source = "env" default = 27017 description = "MongoDB port" category = "database" [tool.alfred.settings_schema.MONGO_USER] type = "string" source = "env" default = "alfred" description = "MongoDB user" category = "database" [tool.alfred.settings_schema.MONGO_DB_NAME] type = "string" source = "env" default = "alfred" description = "MongoDB database name" category = "database" [tool.alfred.settings_schema.MONGO_URI] type = "computed" source = "computed" compute_from = ["MONGO_USER", "MONGO_PASSWORD", "MONGO_HOST", "MONGO_PORT", "MONGO_DB_NAME"] compute_template = "mongodb://{MONGO_USER}:{MONGO_PASSWORD}@{MONGO_HOST}:{MONGO_PORT}/{MONGO_DB_NAME}?authSource=admin" description = "MongoDB connection URI" category = "database" [tool.alfred.settings_schema.POSTGRES_HOST] type = "string" source = "env" default = "vectordb" description = "PostgreSQL host" category = "database" [tool.alfred.settings_schema.POSTGRES_PORT] type = "integer" source = "env" default = 5432 description = "PostgreSQL port" category = "database" [tool.alfred.settings_schema.POSTGRES_USER] type = "string" source = "env" default = "alfred" description = "PostgreSQL user" category = "database" [tool.alfred.settings_schema.POSTGRES_DB_NAME] type = "string" source = "env" default = "alfred" description = "PostgreSQL database name" category = "database" [tool.alfred.settings_schema.POSTGRES_URI] type = "computed" source = "computed" compute_from = ["POSTGRES_USER", "POSTGRES_PASSWORD", "POSTGRES_HOST", "POSTGRES_PORT", "POSTGRES_DB_NAME"] compute_template = "postgresql://{POSTGRES_USER}:{POSTGRES_PASSWORD}@{POSTGRES_HOST}:{POSTGRES_PORT}/{POSTGRES_DB_NAME}" description = "PostgreSQL connection URI" category = "database" # API Keys (optional, from .env) [tool.alfred.settings_schema.TMDB_API_KEY] type = "string" source = "env" required = false description = "The Movie Database API key" category = "api" [tool.alfred.settings_schema.DEEPSEEK_API_KEY] type = "string" source = "env" required = false description = "DeepSeek API key" category = "api" [tool.alfred.settings_schema.OPENAI_API_KEY] type = "string" source = "env" required = false description = "OpenAI API key" category = "api" [tool.alfred.settings_schema.ANTHROPIC_API_KEY] type = "string" source = "env" required = false description = "Anthropic (Claude) API key" category = "api" [tool.alfred.settings_schema.GOOGLE_API_KEY] type = "string" source = "env" required = false description = "Google (Gemini) API key" category = "api" [tool.alfred.settings_schema.KIMI_API_KEY] type = "string" source = "env" required = false description = "Kimi API key" category = "api" # Application settings [tool.alfred.settings_schema.HOST] type = "string" source = "env" default = "0.0.0.0" description = "Server host" category = "app" [tool.alfred.settings_schema.PORT] type = "integer" source = "env" default = 3080 description = "Server port" category = "app" [tool.alfred.settings_schema.MAX_HISTORY_MESSAGES] type = "integer" source = "env" default = 10 description = "Maximum conversation history messages" category = "app" validator = "range:1:100" [tool.alfred.settings_schema.MAX_TOOL_ITERATIONS] type = "integer" source = "env" default = 10 description = "Maximum tool iterations per request" category = "app" validator = "range:1:20" [tool.alfred.settings_schema.REQUEST_TIMEOUT] type = "integer" source = "env" default = 30 description = "Request timeout in seconds" category = "app" validator = "range:1:300" [tool.alfred.settings_schema.LLM_TEMPERATURE] type = "float" source = "env" default = 0.2 description = "LLM temperature" category = "app" validator = "range:0.0:2.0" [tool.alfred.settings_schema.DATA_STORAGE_DIR] type = "string" source = "env" default = "data" description = "Data storage directory" category = "app" # TMDB Configuration [tool.alfred.settings_schema.TMDB_BASE_URL] type = "string" source = "env" default = "https://api.themoviedb.org/3" description = "TMDB API base URL" category = "external_services" # qBittorrent Configuration [tool.alfred.settings_schema.QBITTORRENT_URL] type = "string" source = "env" default = "http://qbittorrent:16140" description = "qBittorrent web UI URL" category = "external_services" [tool.alfred.settings_schema.QBITTORRENT_USERNAME] type = "string" source = "env" default = "admin" description = "qBittorrent username" category = "external_services" [tool.alfred.settings_schema.QBITTORRENT_PORT] type = "integer" source = "env" default = 16140 description = "qBittorrent port" category = "external_services" # Meilisearch Configuration [tool.alfred.settings_schema.MEILI_ENABLED] type = "boolean" source = "env" default = false description = "Enable Meilisearch" category = "external_services" [tool.alfred.settings_schema.MEILI_NO_ANALYTICS] type = "boolean" source = "env" default = true description = "Disable Meilisearch analytics" category = "external_services" [tool.alfred.settings_schema.MEILI_HOST] type = "string" source = "env" default = "http://meilisearch:7700" description = "Meilisearch host URL" category = "external_services" # LLM Configuration [tool.alfred.settings_schema.DEFAULT_LLM_PROVIDER] type = "string" source = "env" default = "local" description = "Default LLM provider (local/openai/anthropic/deepseek/google/kimi)" category = "llm" [tool.alfred.settings_schema.OLLAMA_BASE_URL] type = "string" source = "env" default = "http://ollama:11434" description = "Ollama API base URL" category = "llm" [tool.alfred.settings_schema.OLLAMA_MODEL] type = "string" source = "env" default = "llama3.3:latest" description = "Ollama model name" category = "llm" # RAG Configuration [tool.alfred.settings_schema.RAG_ENABLED] type = "boolean" source = "env" default = true description = "Enable RAG system" category = "rag" [tool.alfred.settings_schema.RAG_API_URL] type = "string" source = "env" default = "http://rag_api:8000" description = "RAG API URL" category = "rag" [tool.alfred.settings_schema.RAG_API_PORT] type = "integer" source = "env" default = 8000 description = "RAG API port" category = "rag" [tool.alfred.settings_schema.EMBEDDINGS_PROVIDER] type = "string" source = "env" default = "ollama" description = "Embeddings provider" category = "rag" [tool.alfred.settings_schema.EMBEDDINGS_MODEL] type = "string" source = "env" default = "nomic-embed-text" description = "Embeddings model name" category = "rag"