LNVPS
‹ Back to apps

YALR

€1/month
0.50 vCPU · 512MB RAM · 5GB storage

Route LLM requests across providers with load balancing, retries, API keys and a web admin UI

Source repository ↗
Deploy

Log in to deploy this app.

Log in
Compose
services:
  yalr:
    image: voidic/yalr:latest@sha256:9c7965f3743ca1e1083092aa2b1c8143d4a3085c551e14e64c8b3da0f4354815
    user: "1000"
    resources: { cpu: 500m, memory: 512Mi }
    ports:
      - { name: http, container: 3000, protocol: http, expose: ingress }
    env:
      RUST_LOG: "${log_level}"
    env_from: extra_env
    files:
      - path: /app/config.yaml
        merge_from: config_overrides
        content: |
          server:
            host: "0.0.0.0"
            port: 3000
            admin_ui_path: "/app/admin/dist"
          database:
            url: "sqlite:/app/data/llm_router.db?mode=rwc"
          anthropic:
            prompt_cache: ${anthropic_prompt_cache}
    volumes:
      - { name: data, path: /app/data, size: 5Gi, label: database }
    scratch:
      - { path: /tmp }
    backup:
      volume: data
      quiesce: true
config:
  - { name: anthropic_prompt_cache, label: "Anthropic prompt caching", type: bool, default: "true" }
  - { name: log_level, label: "Log level (RUST_LOG)", type: string, default: "info", pattern: "[A-Za-z0-9_:=,.-]+", group: "Advanced" }
  - { name: config_overrides, label: "Advanced: config.yaml overrides", type: file, default: "", group: "Advanced" }
  - { name: extra_env, label: "Advanced: extra environment variables (KEY=value per line)", type: file, default: "", group: "Advanced" }
backup: { schedule: "0 3 * * *", retention: 7 }