# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: gproxy
spec:
    description: Multi-provider LLM proxy with built-in admin frontend
    icon: https://raw.githubusercontent.com/LeenHawk/gproxy/main/docs/public/web-app-manifest-512x512.png
    variables:
        - key: GPROXY_ADMIN_KEY
          type: STRING
          name: GPROXY_ADMIN_KEY
          description: Admin key (required)
        - key: GPROXY_HOST
          type: STRING
          name: GPROXY_HOST
          description: Bind host (default 0.0.0.0)
        - key: GPROXY_PORT
          type: STRING
          name: GPROXY_PORT
          description: Bind port (default 8787)
        - key: GPROXY_DATA_DIR
          type: STRING
          name: GPROXY_DATA_DIR
          description: Data directory (default /app/data)
        - key: GPROXY_DSN
          type: STRING
          name: GPROXY_DSN
          description: Database DSN (optional, default uses sqlite in data dir)
        - key: GPROXY_PROXY
          type: STRING
          name: GPROXY_PROXY
          description: Upstream proxy URL (optional)
        - key: RUST_LOG
          type: STRING
          name: RUST_LOG
          description: Tracing filter (e.g. info, debug)
    tags:
        - ai
        - proxy
        - openai
        - claude
        - gemini
    readme: |
        # gproxy on Zeabur

        Recommended settings:
        - GPROXY_ADMIN_KEY=your-strong-key
        - GPROXY_HOST=0.0.0.0
        - GPROXY_PORT=8787
        - GPROXY_DATA_DIR=/app/data

        Optional:
        - GPROXY_DSN=sqlite://app/data/gproxy.db?mode=rwc
        - GPROXY_PROXY=http://proxy:port

        Persist `/app/data` to keep database and usage data.
    services:
        - name: gproxy
          icon: https://raw.githubusercontent.com/LeenHawk/gproxy/main/docs/public/web-app-manifest-512x512.png
          template: PREBUILT
          spec:
            id: gproxy
            source:
                image: ghcr.io/leenhawk/gproxy:latest
            ports:
                - id: web
                  port: 8787
                  type: HTTP
            volumes:
                - id: data
                  dir: /app/data
            env:
                GPROXY_ADMIN_KEY:
                    default: ""
                GPROXY_DATA_DIR:
                    default: /app/data
                GPROXY_DSN:
                    default: sqlite://app/data/gproxy.db?mode=rwc
                GPROXY_HOST:
                    default: 0.0.0.0
                GPROXY_PORT:
                    default: "8787"
                GPROXY_PROXY:
                    default: ""
                RUST_LOG:
                    default: info
