{
  "manifest_version": "1.0.0",
  "template": {
    "id": "064713b7-0eb3-4dc3-9409-bb0dbdbe0eeb",
    "slug": "librechat-multi-provider-rag",
    "name": "LibreChat — Multi-Provider AI Chat with RAG",
    "description": "Self-hosted ChatGPT UI — GPT, Claude, Gemini, RAG, multi-user",
    "url": "https://railway.com/deploy/librechat-multi-provider-rag"
  },
  "services": [
    {
      "name": "pg_vector",
      "source": {
        "image": "pgvector/pgvector:pg18"
      },
      "needs_volume": true,
      "volume_mount_path": "/var/lib/postgresql",
      "http": false
    },
    {
      "name": "MongoDB",
      "source": {
        "image": "mongo:8.0"
      },
      "needs_volume": true,
      "volume_mount_path": "/data/db",
      "tcp_ports": [
        27017
      ],
      "http": false
    },
    {
      "name": "RAG",
      "source": {
        "image": "danny-avila/librechat-rag-api-dev-lite"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "LibreChat",
      "source": {
        "image": "danny-avila/librechat-dev:latest"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "Meilisearch",
      "source": {
        "image": "getmeili/meilisearch:v1.11.3"
      },
      "needs_volume": true,
      "volume_mount_path": "/meili_data",
      "http": false
    }
  ],
  "required_inputs": [
    {
      "key": "PGDATA",
      "service": "pg_vector",
      "description": "Provide a value for PGDATA.",
      "secret": false,
      "strategy": "default",
      "default": "/var/lib/postgresql/data/pgdata"
    },
    {
      "key": "PGHOST",
      "service": "pg_vector",
      "description": "Provide a value for PGHOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "PGPORT",
      "service": "pg_vector",
      "description": "Provide a value for PGPORT.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "PGUSER",
      "service": "pg_vector",
      "description": "Provide a value for PGUSER.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "PGDATABASE",
      "service": "pg_vector",
      "description": "Provide a value for PGDATABASE.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "PGPASSWORD",
      "service": "pg_vector",
      "description": "Provide a value for PGPASSWORD.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "POSTGRES_DB",
      "service": "pg_vector",
      "description": "Provide a value for POSTGRES_DB.",
      "secret": false,
      "strategy": "default",
      "default": "railway"
    },
    {
      "key": "DATABASE_URL",
      "service": "pg_vector",
      "description": "Provide a value for DATABASE_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "POSTGRES_USER",
      "service": "pg_vector",
      "description": "Provide a value for POSTGRES_USER.",
      "secret": false,
      "strategy": "default",
      "default": "postgres"
    },
    {
      "key": "SSL_CERT_DAYS",
      "service": "pg_vector",
      "description": "Provide a value for SSL_CERT_DAYS.",
      "secret": false,
      "strategy": "default",
      "default": "820"
    },
    {
      "key": "PGHOST_PRIVATE",
      "service": "pg_vector",
      "description": "Provide a value for PGHOST_PRIVATE.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "PGPORT_PRIVATE",
      "service": "pg_vector",
      "description": "Provide a value for PGPORT_PRIVATE.",
      "secret": false,
      "strategy": "default",
      "default": "5432"
    },
    {
      "key": "POSTGRES_PASSWORD",
      "service": "pg_vector",
      "description": "Provide a value for POSTGRES_PASSWORD.",
      "secret": true,
      "strategy": "generate",
      "generate": "strong_password"
    },
    {
      "key": "DATABASE_URL_PRIVATE",
      "service": "pg_vector",
      "description": "Provide a value for DATABASE_URL_PRIVATE.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "RAILWAY_DEPLOYMENT_DRAINING_SECONDS",
      "service": "pg_vector",
      "description": "Provide a value for RAILWAY_DEPLOYMENT_DRAINING_SECONDS.",
      "secret": false,
      "strategy": "default",
      "default": "60"
    },
    {
      "key": "MONGOHOST",
      "service": "MongoDB",
      "description": "Railway Private Domain Name.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "MONGOPORT",
      "service": "MongoDB",
      "description": "MongoDB Port.",
      "secret": false,
      "strategy": "default",
      "default": "27017"
    },
    {
      "key": "MONGOUSER",
      "service": "MongoDB",
      "description": "Mongodb user.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "MONGO_URL",
      "service": "MongoDB",
      "description": "Private URL to connect to MongoDB.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "MONGOPASSWORD",
      "service": "MongoDB",
      "description": "Root password.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "MONGO_PUBLIC_URL",
      "service": "MongoDB",
      "description": "Public URL to connect to MongoDB, used for Data panel.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "MONGO_INITDB_ROOT_PASSWORD",
      "service": "MongoDB",
      "description": "Root user password, set during initialization.",
      "secret": true,
      "strategy": "generate",
      "generate": "strong_password"
    },
    {
      "key": "MONGO_INITDB_ROOT_USERNAME",
      "service": "MongoDB",
      "description": "User created during initialization, given the root role.",
      "secret": false,
      "strategy": "default",
      "default": "mongo"
    },
    {
      "key": "PORT",
      "service": "RAG",
      "description": "Provide a value for PORT.",
      "secret": false,
      "strategy": "default",
      "default": "8000"
    },
    {
      "key": "DB_HOST",
      "service": "RAG",
      "description": "Provide a value for DB_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "DB_PORT",
      "service": "RAG",
      "description": "Provide a value for DB_PORT.",
      "secret": false,
      "strategy": "default",
      "default": "5432"
    },
    {
      "key": "JWT_SECRET",
      "service": "RAG",
      "description": "Provide a value for JWT_SECRET.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "POSTGRES_DB",
      "service": "RAG",
      "description": "Provide a value for POSTGRES_DB.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "DEBUG_RAG_API",
      "service": "RAG",
      "description": "Provide a value for DEBUG_RAG_API.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "POSTGRES_USER",
      "service": "RAG",
      "description": "Provide a value for POSTGRES_USER.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "OPENAI_API_KEY",
      "service": "RAG",
      "description": "API key for embeddings provider",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "POSTGRES_PASSWORD",
      "service": "RAG",
      "description": "Provide a value for POSTGRES_PASSWORD.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "EMBEDDINGS_PROVIDER",
      "service": "RAG",
      "description": "Provide a value for EMBEDDINGS_PROVIDER.",
      "secret": false,
      "strategy": "default",
      "default": "openai"
    },
    {
      "key": "HOST",
      "service": "LibreChat",
      "description": "Provide a value for HOST.",
      "secret": false,
      "strategy": "default",
      "default": "0.0.0.0"
    },
    {
      "key": "SEARCH",
      "service": "LibreChat",
      "description": "Provide a value for SEARCH.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "CREDS_IV",
      "service": "LibreChat",
      "description": "Provide a value for CREDS_IV.",
      "secret": false,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "NO_INDEX",
      "service": "LibreChat",
      "description": "Provide a value for NO_INDEX.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "APP_TITLE",
      "service": "LibreChat",
      "description": "Provide a value for APP_TITLE.",
      "secret": false,
      "strategy": "default",
      "default": "LibreChat"
    },
    {
      "key": "CREDS_KEY",
      "service": "LibreChat",
      "description": "Provide a value for CREDS_KEY.",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "ENDPOINTS",
      "service": "LibreChat",
      "description": "Provide a value for ENDPOINTS.",
      "secret": false,
      "strategy": "default",
      "default": "openAI,agents,assistants,azureOpenAI,google,anthropic,custom"
    },
    {
      "key": "LOGIN_MAX",
      "service": "LibreChat",
      "description": "Provide a value for LOGIN_MAX.",
      "secret": false,
      "strategy": "default",
      "default": "7"
    },
    {
      "key": "MONGO_URI",
      "service": "LibreChat",
      "description": "Provide a value for MONGO_URI.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "GOOGLE_KEY",
      "service": "LibreChat",
      "description": "Provide a value for GOOGLE_KEY.",
      "secret": true,
      "strategy": "default",
      "default": "user_provided"
    },
    {
      "key": "JWT_SECRET",
      "service": "LibreChat",
      "description": "Provide a value for JWT_SECRET.",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "MEILI_HOST",
      "service": "LibreChat",
      "description": "Provide a value for MEILI_HOST.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "CONFIG_PATH",
      "service": "LibreChat",
      "description": "Provide a value for CONFIG_PATH.",
      "secret": false,
      "strategy": "default",
      "default": "https://raw.githubusercontent.com/LibreChat-AI/librechat-config-yaml/main/librechat-up-l.yaml"
    },
    {
      "key": "RAG_API_URL",
      "service": "LibreChat",
      "description": "Provide a value for RAG_API_URL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "TITLE_CONVO",
      "service": "LibreChat",
      "description": "Provide a value for TITLE_CONVO.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "BAN_DURATION",
      "service": "LibreChat",
      "description": "Provide a value for BAN_DURATION.",
      "secret": false,
      "strategy": "default",
      "default": "1000 * 60 * 60 * 2"
    },
    {
      "key": "BAN_INTERVAL",
      "service": "LibreChat",
      "description": "Provide a value for BAN_INTERVAL.",
      "secret": false,
      "strategy": "default",
      "default": "20"
    },
    {
      "key": "DEBUG_OPENAI",
      "service": "LibreChat",
      "description": "Provide a value for DEBUG_OPENAI.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "GROQ_API_KEY",
      "service": "LibreChat",
      "description": "Provide a value for GROQ_API_KEY.",
      "secret": true,
      "strategy": "default",
      "default": "user_provided"
    },
    {
      "key": "LOGIN_WINDOW",
      "service": "LibreChat",
      "description": "Provide a value for LOGIN_WINDOW.",
      "secret": false,
      "strategy": "default",
      "default": "5"
    },
    {
      "key": "REGISTER_MAX",
      "service": "LibreChat",
      "description": "Provide a value for REGISTER_MAX.",
      "secret": false,
      "strategy": "default",
      "default": "5"
    },
    {
      "key": "CHECK_BALANCE",
      "service": "LibreChat",
      "description": "Provide a value for CHECK_BALANCE.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "DEBUG_CONSOLE",
      "service": "LibreChat",
      "description": "Provide a value for DEBUG_CONSOLE.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "DEBUG_LOGGING",
      "service": "LibreChat",
      "description": "Provide a value for DEBUG_LOGGING.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "DEBUG_PLUGINS",
      "service": "LibreChat",
      "description": "Provide a value for DEBUG_PLUGINS.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "GOOGLE_MODELS",
      "service": "LibreChat",
      "description": "Provide a value for GOOGLE_MODELS.",
      "secret": false,
      "strategy": "default",
      "default": "gemini-2.5-pro,gemini-2.5-pro-preview-06-05,gemini-2.5-pro-preview-05-06,gemini-2.5-pro-preview-03-25,gemini-2.5-flash,gemini-2.5-flash-preview-05-20,gemini-2.5-flash-lite-preview-06-17,gemini-2.0-flash,gemini-2.0-flash-exp,gemini-2.0-flash-lite-preview-02-05,gemini-2.0-flash-thinking-exp,gemini-2.0-flash-thinking-exp-1219,gemini-2.0-pro-exp-02-05,gemini-exp-1206,gemini-1.5-flash-001,gemini-1.5-flash-002,gemini-1.5-flash-latest,gemini-1.5-pro-001,gemini-1.5-pro-002,gemini-1.5-pro-latest"
    },
    {
      "key": "OPENAI_MODELS",
      "service": "LibreChat",
      "description": "Provide a value for OPENAI_MODELS.",
      "secret": false,
      "strategy": "default",
      "default": "gpt-3.5-turbo,gpt-4,gpt-4o,gpt-4.1,gpt-5,chatgpt-4o-latest"
    },
    {
      "key": "BAN_VIOLATIONS",
      "service": "LibreChat",
      "description": "Provide a value for BAN_VIOLATIONS.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "MESSAGE_IP_MAX",
      "service": "LibreChat",
      "description": "Provide a value for MESSAGE_IP_MAX.",
      "secret": false,
      "strategy": "default",
      "default": "40"
    },
    {
      "key": "OPENAI_API_KEY",
      "service": "LibreChat",
      "description": "Provide a value for OPENAI_API_KEY.",
      "secret": true,
      "strategy": "default",
      "default": "user_provided"
    },
    {
      "key": "OPENROUTER_KEY",
      "service": "LibreChat",
      "description": "Provide a value for OPENROUTER_KEY.",
      "secret": true,
      "strategy": "default",
      "default": "user_provided"
    },
    {
      "key": "SESSION_EXPIRY",
      "service": "LibreChat",
      "description": "Provide a value for SESSION_EXPIRY.",
      "secret": false,
      "strategy": "default",
      "default": "1000 * 60 * 15"
    },
    {
      "key": "MISTRAL_API_KEY",
      "service": "LibreChat",
      "description": "Provide a value for MISTRAL_API_KEY.",
      "secret": true,
      "strategy": "default",
      "default": "user_provided"
    },
    {
      "key": "REGISTER_WINDOW",
      "service": "LibreChat",
      "description": "Provide a value for REGISTER_WINDOW.",
      "secret": false,
      "strategy": "default",
      "default": "60"
    },
    {
      "key": "ANYSCALE_API_KEY",
      "service": "LibreChat",
      "description": "Provide a value for ANYSCALE_API_KEY.",
      "secret": true,
      "strategy": "default",
      "default": "user_provided"
    },
    {
      "key": "LIMIT_MESSAGE_IP",
      "service": "LibreChat",
      "description": "Provide a value for LIMIT_MESSAGE_IP.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "MEILI_MASTER_KEY",
      "service": "LibreChat",
      "description": "Provide a value for MEILI_MASTER_KEY.",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "MESSAGE_USER_MAX",
      "service": "LibreChat",
      "description": "Provide a value for MESSAGE_USER_MAX.",
      "secret": false,
      "strategy": "default",
      "default": "40"
    },
    {
      "key": "ALLOW_EMAIL_LOGIN",
      "service": "LibreChat",
      "description": "Provide a value for ALLOW_EMAIL_LOGIN.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "ANTHROPIC_API_KEY",
      "service": "LibreChat",
      "description": "Provide a value for ANTHROPIC_API_KEY.",
      "secret": true,
      "strategy": "default",
      "default": "user_provided"
    },
    {
      "key": "FIREWORKS_API_KEY",
      "service": "LibreChat",
      "description": "Provide a value for FIREWORKS_API_KEY.",
      "secret": true,
      "strategy": "default",
      "default": "user_provided"
    },
    {
      "key": "MESSAGE_IP_WINDOW",
      "service": "LibreChat",
      "description": "Provide a value for MESSAGE_IP_WINDOW.",
      "secret": false,
      "strategy": "default",
      "default": "1"
    },
    {
      "key": "OPENAI_MODERATION",
      "service": "LibreChat",
      "description": "Provide a value for OPENAI_MODERATION.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "ALLOW_REGISTRATION",
      "service": "LibreChat",
      "description": "Provide a value for ALLOW_REGISTRATION.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "ALLOW_SOCIAL_LOGIN",
      "service": "LibreChat",
      "description": "Provide a value for ALLOW_SOCIAL_LOGIN.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "JWT_REFRESH_SECRET",
      "service": "LibreChat",
      "description": "Provide a value for JWT_REFRESH_SECRET.",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "LIMIT_MESSAGE_USER",
      "service": "LibreChat",
      "description": "Provide a value for LIMIT_MESSAGE_USER.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "MEILI_NO_ANALYTICS",
      "service": "LibreChat",
      "description": "Provide a value for MEILI_NO_ANALYTICS.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "PERPLEXITY_API_KEY",
      "service": "LibreChat",
      "description": "Provide a value for PERPLEXITY_API_KEY.",
      "secret": true,
      "strategy": "default",
      "default": "user_provided"
    },
    {
      "key": "TOGETHERAI_API_KEY",
      "service": "LibreChat",
      "description": "Provide a value for TOGETHERAI_API_KEY.",
      "secret": true,
      "strategy": "default",
      "default": "user_provided"
    },
    {
      "key": "GITHUB_CALLBACK_URL",
      "service": "LibreChat",
      "description": "Provide a value for GITHUB_CALLBACK_URL.",
      "secret": false,
      "strategy": "default",
      "default": "/oauth/github/callback"
    },
    {
      "key": "GOOGLE_CALLBACK_URL",
      "service": "LibreChat",
      "description": "Provide a value for GOOGLE_CALLBACK_URL.",
      "secret": false,
      "strategy": "default",
      "default": "/oauth/google/callback"
    },
    {
      "key": "MESSAGE_USER_WINDOW",
      "service": "LibreChat",
      "description": "Provide a value for MESSAGE_USER_WINDOW.",
      "secret": false,
      "strategy": "default",
      "default": "1"
    },
    {
      "key": "DISCORD_CALLBACK_URL",
      "service": "LibreChat",
      "description": "Provide a value for DISCORD_CALLBACK_URL.",
      "secret": false,
      "strategy": "default",
      "default": "/oauth/discord/callback"
    },
    {
      "key": "REFRESH_TOKEN_EXPIRY",
      "service": "LibreChat",
      "description": "Provide a value for REFRESH_TOKEN_EXPIRY.",
      "secret": true,
      "strategy": "default",
      "default": "(1000 * 60 * 60 * 24) * 7"
    },
    {
      "key": "FACEBOOK_CALLBACK_URL",
      "service": "LibreChat",
      "description": "Provide a value for FACEBOOK_CALLBACK_URL.",
      "secret": false,
      "strategy": "default",
      "default": "/oauth/facebook/callback"
    },
    {
      "key": "LOGIN_VIOLATION_SCORE",
      "service": "LibreChat",
      "description": "Provide a value for LOGIN_VIOLATION_SCORE.",
      "secret": false,
      "strategy": "default",
      "default": "1"
    },
    {
      "key": "CONCURRENT_MESSAGE_MAX",
      "service": "LibreChat",
      "description": "Provide a value for CONCURRENT_MESSAGE_MAX.",
      "secret": false,
      "strategy": "default",
      "default": "2"
    },
    {
      "key": "MESSAGE_VIOLATION_SCORE",
      "service": "LibreChat",
      "description": "Provide a value for MESSAGE_VIOLATION_SCORE.",
      "secret": false,
      "strategy": "default",
      "default": "1"
    },
    {
      "key": "ALLOW_SOCIAL_REGISTRATION",
      "service": "LibreChat",
      "description": "Provide a value for ALLOW_SOCIAL_REGISTRATION.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "LIMIT_CONCURRENT_MESSAGES",
      "service": "LibreChat",
      "description": "Provide a value for LIMIT_CONCURRENT_MESSAGES.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "CONCURRENT_VIOLATION_SCORE",
      "service": "LibreChat",
      "description": "Provide a value for CONCURRENT_VIOLATION_SCORE.",
      "secret": false,
      "strategy": "default",
      "default": "1"
    },
    {
      "key": "NON_BROWSER_VIOLATION_SCORE",
      "service": "LibreChat",
      "description": "Provide a value for NON_BROWSER_VIOLATION_SCORE.",
      "secret": false,
      "strategy": "default",
      "default": "20"
    },
    {
      "key": "REGISTRATION_VIOLATION_SCORE",
      "service": "LibreChat",
      "description": "Provide a value for REGISTRATION_VIOLATION_SCORE.",
      "secret": false,
      "strategy": "default",
      "default": "1"
    },
    {
      "key": "MEILI_ENV",
      "service": "Meilisearch",
      "description": "Provide a value for MEILI_ENV.",
      "secret": false,
      "strategy": "default",
      "default": "production"
    },
    {
      "key": "MEILI_DB_PATH",
      "service": "Meilisearch",
      "description": "Provide a value for MEILI_DB_PATH.",
      "secret": false,
      "strategy": "default",
      "default": "/meili_data/data.ms"
    },
    {
      "key": "MEILI_HTTP_ADDR",
      "service": "Meilisearch",
      "description": "Provide a value for MEILI_HTTP_ADDR.",
      "secret": false,
      "strategy": "default",
      "default": ":::7700"
    },
    {
      "key": "MEILI_MASTER_KEY",
      "service": "Meilisearch",
      "description": "Provide a value for MEILI_MASTER_KEY.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "MEILI_NO_ANALYTICS",
      "service": "Meilisearch",
      "description": "Provide a value for MEILI_NO_ANALYTICS.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    }
  ],
  "deploy": {
    "mcp": {
      "server": "railway",
      "tool": "deploy_template",
      "args": {
        "template_code": "librechat-multi-provider-rag"
      }
    },
    "cli": "railway deploy --template librechat-multi-provider-rag",
    "api": {
      "method": "POST",
      "path": "/graphql/v2",
      "body": {
        "query": "mutation templateDeploy($input: TemplateDeployV2Input!) { templateDeployV2(input: $input) { projectId workflowId } }",
        "variables": {
          "input": {
            "templateId": "064713b7-0eb3-4dc3-9409-bb0dbdbe0eeb",
            "serializedConfig": {
              "services": {
                "08aa4cad-4340-4b94-b047-6107c1a91014": {
                  "name": "pg_vector",
                  "source": {
                    "image": "pgvector/pgvector:pg18"
                  },
                  "variables": {
                    "PGDATA": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "/var/lib/postgresql/data/pgdata"
                    },
                    "PGHOST": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "${{RAILWAY_TCP_PROXY_DOMAIN}}"
                    },
                    "PGPORT": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "${{RAILWAY_TCP_PROXY_PORT}}"
                    },
                    "PGUSER": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "${{POSTGRES_USER}}"
                    },
                    "PGDATABASE": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "${{POSTGRES_DB}}"
                    },
                    "PGPASSWORD": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "${{POSTGRES_PASSWORD}}"
                    },
                    "POSTGRES_DB": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "railway"
                    },
                    "DATABASE_URL": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "postgres://${{PGUSER}}:${{PGPASSWORD}}@${{PGHOST}}:${{PGPORT}}/${{PGDATABASE}}"
                    },
                    "POSTGRES_USER": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "postgres"
                    },
                    "SSL_CERT_DAYS": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "820"
                    },
                    "PGHOST_PRIVATE": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "${{RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "PGPORT_PRIVATE": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "5432"
                    },
                    "POSTGRES_PASSWORD": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "{{POSTGRES_PASSWORD}}"
                    },
                    "DATABASE_URL_PRIVATE": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "postgres://${{PGUSER}}:${{PGPASSWORD}}@${{PGHOST_PRIVATE}}:${{PGPORT_PRIVATE}}/${{PGDATABASE}}"
                    },
                    "RAILWAY_DEPLOYMENT_DRAINING_SECONDS": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "60"
                    }
                  },
                  "volumeMounts": {
                    "08aa4cad-4340-4b94-b047-6107c1a91014": {
                      "mountPath": "/var/lib/postgresql"
                    }
                  }
                },
                "953669ad-4e46-4d3b-b7f1-3aecdf94acda": {
                  "icon": "https://devicons.railway.app/i/mongodb.svg",
                  "name": "MongoDB",
                  "build": {},
                  "deploy": {
                    "startCommand": "docker-entrypoint.sh mongod --ipv6 --bind_ip ::,0.0.0.0 --setParameter diagnosticDataCollectionEnabled=false",
                    "requiredMountPath": "/data/db"
                  },
                  "source": {
                    "image": "mongo:8.0"
                  },
                  "variables": {
                    "MONGOHOST": {
                      "isOptional": false,
                      "description": "Railway Private Domain Name.",
                      "defaultValue": "${{ RAILWAY_PRIVATE_DOMAIN }}"
                    },
                    "MONGOPORT": {
                      "isOptional": false,
                      "description": "MongoDB Port.",
                      "defaultValue": "27017"
                    },
                    "MONGOUSER": {
                      "isOptional": false,
                      "description": "Mongodb user.",
                      "defaultValue": "${{ MONGO_INITDB_ROOT_USERNAME }}"
                    },
                    "MONGO_URL": {
                      "isOptional": false,
                      "description": "Private URL to connect to MongoDB.",
                      "defaultValue": "mongodb://${{MONGO_INITDB_ROOT_USERNAME}}:${{MONGO_INITDB_ROOT_PASSWORD}}@${{RAILWAY_PRIVATE_DOMAIN}}:27017"
                    },
                    "MONGOPASSWORD": {
                      "isOptional": false,
                      "description": "Root password.",
                      "defaultValue": "${{ MONGO_INITDB_ROOT_PASSWORD }}"
                    },
                    "MONGO_PUBLIC_URL": {
                      "description": "Public URL to connect to MongoDB, used for Data panel.",
                      "defaultValue": "mongodb://${{MONGO_INITDB_ROOT_USERNAME}}:${{MONGO_INITDB_ROOT_PASSWORD}}@${{RAILWAY_TCP_PROXY_DOMAIN}}:${{RAILWAY_TCP_PROXY_PORT}}"
                    },
                    "MONGO_INITDB_ROOT_PASSWORD": {
                      "isOptional": false,
                      "description": "Root user password, set during initialization.",
                      "defaultValue": "{{MONGO_INITDB_ROOT_PASSWORD}}"
                    },
                    "MONGO_INITDB_ROOT_USERNAME": {
                      "isOptional": false,
                      "description": "User created during initialization, given the root role.",
                      "defaultValue": "mongo"
                    }
                  },
                  "networking": {
                    "tcpProxies": {
                      "27017": {}
                    },
                    "serviceDomains": {}
                  },
                  "volumeMounts": {
                    "953669ad-4e46-4d3b-b7f1-3aecdf94acda": {
                      "mountPath": "/data/db"
                    }
                  }
                },
                "c1cdf1f4-2675-4924-870c-c09377ab3126": {
                  "name": "RAG",
                  "source": {
                    "image": "danny-avila/librechat-rag-api-dev-lite"
                  },
                  "variables": {
                    "PORT": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "8000"
                    },
                    "DB_HOST": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "${{pg_vector.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "DB_PORT": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "5432"
                    },
                    "JWT_SECRET": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "${{LibreChat.JWT_SECRET}}"
                    },
                    "POSTGRES_DB": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "${{pg_vector.POSTGRES_DB}}"
                    },
                    "DEBUG_RAG_API": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "false"
                    },
                    "POSTGRES_USER": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "${{pg_vector.POSTGRES_USER}}"
                    },
                    "OPENAI_API_KEY": {
                      "isOptional": false,
                      "description": "API key for embeddings provider",
                      "defaultValue": "{{OPENAI_API_KEY}}"
                    },
                    "POSTGRES_PASSWORD": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "${{pg_vector.POSTGRES_PASSWORD}}"
                    },
                    "EMBEDDINGS_PROVIDER": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "openai"
                    }
                  }
                },
                "e9edfaa7-7139-41d3-b2cd-ec04ee954b92": {
                  "icon": "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/librechat.svg",
                  "name": "LibreChat",
                  "source": {
                    "image": "danny-avila/librechat-dev:latest"
                  },
                  "variables": {
                    "HOST": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "0.0.0.0"
                    },
                    "SEARCH": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "true"
                    },
                    "CREDS_IV": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "{{CREDS_IV}}"
                    },
                    "NO_INDEX": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "true"
                    },
                    "APP_TITLE": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "LibreChat"
                    },
                    "CREDS_KEY": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "{{CREDS_KEY}}"
                    },
                    "ENDPOINTS": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "openAI,agents,assistants,azureOpenAI,google,anthropic,custom"
                    },
                    "LOGIN_MAX": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "7"
                    },
                    "MONGO_URI": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "${{MongoDB.MONGO_PRIVATE_URL}}"
                    },
                    "GOOGLE_KEY": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "user_provided"
                    },
                    "JWT_SECRET": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "{{JWT_SECRET}}"
                    },
                    "MEILI_HOST": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "http://${{Meilisearch.RAILWAY_PRIVATE_DOMAIN}}:7700"
                    },
                    "CONFIG_PATH": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "https://raw.githubusercontent.com/LibreChat-AI/librechat-config-yaml/main/librechat-up-l.yaml"
                    },
                    "RAG_API_URL": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "https://${{RAG.RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "TITLE_CONVO": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "true"
                    },
                    "BAN_DURATION": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "1000 * 60 * 60 * 2"
                    },
                    "BAN_INTERVAL": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "20"
                    },
                    "DEBUG_OPENAI": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "false"
                    },
                    "GROQ_API_KEY": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "user_provided"
                    },
                    "LOGIN_WINDOW": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "5"
                    },
                    "REGISTER_MAX": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "5"
                    },
                    "CHECK_BALANCE": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "false"
                    },
                    "DEBUG_CONSOLE": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "false"
                    },
                    "DEBUG_LOGGING": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "true"
                    },
                    "DEBUG_PLUGINS": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "true"
                    },
                    "GOOGLE_MODELS": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "gemini-2.5-pro,gemini-2.5-pro-preview-06-05,gemini-2.5-pro-preview-05-06,gemini-2.5-pro-preview-03-25,gemini-2.5-flash,gemini-2.5-flash-preview-05-20,gemini-2.5-flash-lite-preview-06-17,gemini-2.0-flash,gemini-2.0-flash-exp,gemini-2.0-flash-lite-preview-02-05,gemini-2.0-flash-thinking-exp,gemini-2.0-flash-thinking-exp-1219,gemini-2.0-pro-exp-02-05,gemini-exp-1206,gemini-1.5-flash-001,gemini-1.5-flash-002,gemini-1.5-flash-latest,gemini-1.5-pro-001,gemini-1.5-pro-002,gemini-1.5-pro-latest"
                    },
                    "OPENAI_MODELS": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "gpt-3.5-turbo,gpt-4,gpt-4o,gpt-4.1,gpt-5,chatgpt-4o-latest"
                    },
                    "BAN_VIOLATIONS": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "true"
                    },
                    "MESSAGE_IP_MAX": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "40"
                    },
                    "OPENAI_API_KEY": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "user_provided"
                    },
                    "OPENROUTER_KEY": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "user_provided"
                    },
                    "SESSION_EXPIRY": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "1000 * 60 * 15"
                    },
                    "MISTRAL_API_KEY": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "user_provided"
                    },
                    "REGISTER_WINDOW": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "60"
                    },
                    "ANYSCALE_API_KEY": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "user_provided"
                    },
                    "LIMIT_MESSAGE_IP": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "true"
                    },
                    "MEILI_MASTER_KEY": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "{{MEILI_MASTER_KEY}}"
                    },
                    "MESSAGE_USER_MAX": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "40"
                    },
                    "ALLOW_EMAIL_LOGIN": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "true"
                    },
                    "ANTHROPIC_API_KEY": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "user_provided"
                    },
                    "FIREWORKS_API_KEY": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "user_provided"
                    },
                    "MESSAGE_IP_WINDOW": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "1"
                    },
                    "OPENAI_MODERATION": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "false"
                    },
                    "ALLOW_REGISTRATION": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "true"
                    },
                    "ALLOW_SOCIAL_LOGIN": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "false"
                    },
                    "JWT_REFRESH_SECRET": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "{{JWT_REFRESH_SECRET}}"
                    },
                    "LIMIT_MESSAGE_USER": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "false"
                    },
                    "MEILI_NO_ANALYTICS": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "${{Meilisearch.MEILI_NO_ANALYTICS}}"
                    },
                    "PERPLEXITY_API_KEY": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "user_provided"
                    },
                    "TOGETHERAI_API_KEY": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "user_provided"
                    },
                    "GITHUB_CALLBACK_URL": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "/oauth/github/callback"
                    },
                    "GOOGLE_CALLBACK_URL": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "/oauth/google/callback"
                    },
                    "MESSAGE_USER_WINDOW": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "1"
                    },
                    "DISCORD_CALLBACK_URL": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "/oauth/discord/callback"
                    },
                    "REFRESH_TOKEN_EXPIRY": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "(1000 * 60 * 60 * 24) * 7"
                    },
                    "FACEBOOK_CALLBACK_URL": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "/oauth/facebook/callback"
                    },
                    "LOGIN_VIOLATION_SCORE": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "1"
                    },
                    "CONCURRENT_MESSAGE_MAX": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "2"
                    },
                    "MESSAGE_VIOLATION_SCORE": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "1"
                    },
                    "ALLOW_SOCIAL_REGISTRATION": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "false"
                    },
                    "LIMIT_CONCURRENT_MESSAGES": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "true"
                    },
                    "CONCURRENT_VIOLATION_SCORE": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "1"
                    },
                    "NON_BROWSER_VIOLATION_SCORE": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "20"
                    },
                    "REGISTRATION_VIOLATION_SCORE": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "1"
                    }
                  }
                },
                "fd1819a9-fefd-42bf-be37-df7fbc411cf9": {
                  "icon": "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/meilisearch.svg",
                  "name": "Meilisearch",
                  "source": {
                    "image": "getmeili/meilisearch:v1.11.3"
                  },
                  "variables": {
                    "MEILI_ENV": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "production"
                    },
                    "MEILI_DB_PATH": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "/meili_data/data.ms"
                    },
                    "MEILI_HTTP_ADDR": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": ":::7700"
                    },
                    "MEILI_MASTER_KEY": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "${{LibreChat.MEILI_MASTER_KEY}}"
                    },
                    "MEILI_NO_ANALYTICS": {
                      "isOptional": false,
                      "description": "",
                      "defaultValue": "true"
                    }
                  },
                  "volumeMounts": {
                    "fd1819a9-fefd-42bf-be37-df7fbc411cf9": {
                      "mountPath": "/meili_data"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "post_deploy": {},
  "resources": {
    "expected_services": 5,
    "needs_volume": true
  },
  "generated_at": "2026-09-22T16:14:56.866Z",
  "generator_version": "0.1.0",
  "status": "degraded",
  "validated_at": "2026-09-22T19:29:54.584Z",
  "success_rate_30d": 0,
  "validation": {
    "last_run_id": "run_5f300e09365e4ebaa9b7",
    "checks": [
      {
        "name": "workflow_completed",
        "passed": true
      },
      {
        "name": "all_services_deployed",
        "passed": false,
        "detail": "CRASHED,FAILED,SUCCESS,SUCCESS,FAILED"
      }
    ]
  }
}
