# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: Gemini-Balance
spec:
    description: 一键部署Gemini Balance，基于Python FastAPI构建的Gemini API代理和负载均衡工具，支持多Key轮询、模型过滤和状态监控。
    variables:
        - key: AUTH_TOKEN
          type: STRING
          name: 认证令牌
          description: 用于API访问认证的令牌
        - key: API_KEYS
          type: STRING
          name: Gemini API密钥
          description: Gemini API密钥列表（JSON数组格式，如["AIzaSyxxxxxxxxxxxxxxxxxxx"]），可使用示例密钥部署，部署后在管理界面添加有效密钥
        - key: DOMAIN
          type: DOMAIN
          name: 服务域名
          description: 用于访问Gemini Balance服务的公开域名
    tags:
        - ai
        - gemini
        - proxy
        - Gemini-Balance
        - fastapi
    readme: |
        # Gemini Balance - Gemini API代理和负载均衡器

        一键部署Gemini Balance，一个基于Python FastAPI构建的应用程序，提供Google Gemini API的代理和负载均衡功能。

        **核心功能:**
        - **多Key管理**: 支持多个Gemini API Key的轮询使用
        - **负载均衡**: 在多个API Key之间自动分配请求
        - **模型过滤**: 支持按模型类型进行过滤和路由
        - **状态监控**: 实时监控API Key的使用状态和健康状况
        - **图像生成**: 集成图像生成和多种图床上传功能
        - **OpenAI兼容**: 支持OpenAI API格式的代理接口

        **数据库配置:**
        默认使用SQLite本地数据库，无需额外配置。如需使用MySQL数据库，可在部署后通过环境变量配置。

        **重要环境变量:**
        - `API_KEYS`: 您的Gemini API密钥列表（JSON数组格式，如["AIzaSyxxxxxxxxxxxxxxxxxxx"]），可使用示例密钥部署，部署后在管理界面添加有效密钥
        - `AUTH_TOKEN`: API访问认证令牌（必需设置）
    services:
        - name: Gemini-Balance
          template: PREBUILT
          spec:
            id: gemini-balance
            source:
                image: ghcr.io/snailyp/gemini-balance:latest
            ports:
                - id: web
                  port: 8000
                  type: HTTP
            env:
                API_KEYS:
                    default: '["AIzaSyxxxxxxxxxxxxxxxxxxx"]'
                AUTH_TOKEN:
                    default: ${AUTH_TOKEN}
                AUTO_DELETE_ERROR_LOGS_DAYS:
                    default: "7"
                AUTO_DELETE_ERROR_LOGS_ENABLED:
                    default: "true"
                BASE_URL:
                    default: https://generativelanguage.googleapis.com/v1beta
                CHECK_INTERVAL_HOURS:
                    default: "1"
                DATABASE_TYPE:
                    default: sqlite
                FAKE_STREAM_ENABLED:
                    default: "True"
                LOG_LEVEL:
                    default: info
                MAX_FAILURES:
                    default: "10"
                MAX_RETRIES:
                    default: "3"
                SHOW_SEARCH_LINK:
                    default: "true"
                SHOW_THINKING_PROCESS:
                    default: "true"
                SQLITE_DATABASE:
                    default: default_db
                TEST_MODEL:
                    default: gemini-1.5-flash
                TIME_OUT:
                    default: "300"
                TIMEZONE:
                    default: Asia/Shanghai
                TOOLS_CODE_EXECUTION_ENABLED:
                    default: "false"
                URL_CONTEXT_ENABLED:
                    default: "false"
          domainKey: DOMAIN
