Sign inSign up

k3scat/nya-proxy

By k3scat

•Updated 2 months ago

A lightweight, flexible API proxy with dynamic token rotation, load balancing, and rate limiting...

Image
0

10K+

k3scat/nya-proxy repository overview

⁠🐾 NyaProxy - Universal API Proxy

PyPI version Python versions License Code Coverage CI/CD Docker

NyaProxy Banner

Your Swiss Army Knife for API Proxy Management

⁠🌟 Core Capabilities

FeatureDescriptionConfig Reference
🔄 Token RotationAutomatic key cycling across multiple providersvariables.keys
⚖️ Load Balancing5 strategies: Round Robin, Random, Least Connections, Fastest Response, Weightedload_balancing_strategy
🚦 Rate LimitingGranular controls per endpoint/key with smart queuingrate_limit
🕵️ Request MaskingDynamic header substitution across multiple identity providersheaders + variables
📊 Real-time MetricsInteractive dashboard with request analytics and system healthdashboard.enabled

⁠🚀 Installation

⁠Docker (Production)
docker run -d \
  -p 8080:8080 \
  -v ${PWD}/config.yaml:/app/config.yaml \
  -v nya-proxy-logs:/app/logs \
  k3scat/nya-proxy:latest
⁠PyPI (Development)
pip install nya-proxy
nyaproxy --config config.yaml --log-level debug

⁠📡 Service Endpoints

ServiceEndpointDescription
API Proxyhttp://localhost:8080/api/<endpoint_name>Main proxy endpoint for API requests
Dashboardhttp://localhost:8080/dashboardReal-time metrics and monitoring
Config UIhttp://localhost:8080/configVisual configuration interface

Note: Replace 8080 with your configured port if different

⁠🔧 API Configuration

⁠OpenAI-Compatible APIs (Gemini, Anthropic, etc)
gemini:
  name: Google Gemini API
  endpoint: https://generativelanguage.googleapis.com/v1beta/openai
  aliases:
    - /gemini
  key_variable: keys
  headers:
    Authorization: 'Bearer ${{keys}}'
  variables:
    keys:
      - your_gemini_key_1
      - your_gemini_key_2
  load_balancing_strategy: least_requests
  rate_limit:
    endpoint_rate_limit: 75/d     # Total endpoint limit
    key_rate_limit: 5/m          # Per-key limit
    rate_limit_paths:
      - "/v1/chat/*"            # Apply limits to specific paths
      - "/v1/images/*"
⁠Generic REST APIs
novelai:
  name: NovelAI API
  endpoint: https://image.novelai.net
  aliases:
    - /novelai
  key_variable: tokens
  headers:
    Authorization: 'Bearer ${{tokens}}'
  variables:
    tokens:
      - your_novelai_token_1
      - your_novelai_token_2
  load_balancing_strategy: round_robin
  rate_limit:
    endpoint_rate_limit: 10/s
    key_rate_limit: 2/s

⁠🖥️ Management Interfaces

⁠Real-time Metrics Dashboard
Dashboard UI

Monitor at http://localhost:8080/dashboard:

  • Request volumes and response times
  • Rate limit status and queue depth
  • Key usage and performance metrics
  • Error rates and status codes
⁠Visual Configuration Interface
Configuration UI

Manage at http://localhost:8080/config:

  • Live configuration editing
  • Syntax validation
  • Variable management
  • Rate limit adjustments
  • Auto reload on save

⁠🛡️ Advanced Reference Architecture (Advanced Deployment)

graph TD
    A[Client] --> B[Nginx]
    B --> C[NyaProxy]
    C --> D[Auth Service]
    D --> E[API Providers]
    F[Monitoring] --> D

⁠🌌 Future Roadmap

graph LR
A[Q3 2025] --> B[🔄 Smart Request Routing]
A --> C[📡 gRPC/WebSocket Support]
B --> D[📈 Auto-scaling Rules]
C --> E[📊 Protocol Analytics]
F[Q4 2025] --> G[🧩 Plugin System]
F --> H[🔍 Custom Metrics API]

⁠❤️ Community

Discord

Need enterprise support? Contact [email protected]⁠

⁠📈 Project Growth

Star History Chart

Tag summary

Content type

Image

Digest

sha256:8586bca69…

Size

29.9 MB

Last updated

2 months ago

docker pull k3scat/nya-proxy