add deepseek
Build Admin / Build image (push) Successful in 14s

This commit is contained in:
vasyansk committed 2026-09-20 13:11:10 +07:00
1 parent ad51829aed
commit c31f6d8d90
2 files changed
+45 -2

No files matched your search

+3 -1
View File
@@ -45,6 +45,8 @@ curl -H "X-Proxy-Token: YOUR_SECRET" http://localhost:8080/elevenlabs/v1/voices
| /elevenlabs/ | https://api.elevenlabs.io |
| /openai/ | https://api.openai.com |
| /telegram/ | https://api.telegram.org |
| /openrouter/ | https://openrouter.ai/api/v1|
| /deepseek/ | https://api.deepseek.com |
| /health | local health check (no auth)|
---
@@ -203,6 +205,6 @@ docker inspect --format='{{.State.Health.Status}}' api-proxy
1. A k8s pod sends an HTTP request to `http://<proxy-vm>:8080/elevenlabs/v1/text-to-speech/...` with the `X-Proxy-Token` header and the original API key.
2. Nginx checks the source IP against `ALLOWED_CIDR` and validates `X-Proxy-Token` — rejecting with 403 if either fails.
3. The prefix (`/elevenlabs/`, `/openai/`, `/telegram/`) is stripped via rewrite, and the request is forwarded over HTTPS to the upstream with SNI enabled.
3. The prefix (`/elevenlabs/`, `/openai/`, `/telegram/`, `/openrouter/`, `/deepseek/`) is stripped via rewrite, and the request is forwarded over HTTPS to the upstream with SNI enabled.
4. `X-Proxy-Token` and all IP-leaking headers are removed before forwarding; API keys pass through unchanged.
5. The response streams back unbuffered to the pod — critical for binary audio data and long-polling (Telegram).
+42 -1
View File
@@ -156,8 +156,49 @@ location /openrouter/ {
proxy_send_timeout 120s;
}
# --- DeepSeek ---
location /deepseek/ {
if ($allowed_ip = 0) {
return 403 '{"error":"ip_not_allowed"}';
}
if ($auth_ok = 0) {
return 403 '{"error":"invalid_token"}';
}
set $deepseek_upstream https://api.deepseek.com;
rewrite ^/deepseek/(.*) /$1 break;
proxy_pass $deepseek_upstream;
proxy_ssl_server_name on;
proxy_ssl_name api.deepseek.com;
proxy_ssl_protocols TLSv1.2 TLSv1.3;
proxy_set_header Host api.deepseek.com;
proxy_set_header Connection "";
proxy_set_header X-Forwarded-For "";
proxy_set_header X-Real-IP "";
proxy_set_header True-Client-IP "";
proxy_set_header CF-Connecting-IP "";
proxy_set_header X-Client-IP "";
proxy_set_header Forwarded "";
proxy_set_header Via "";
proxy_set_header X-Proxy-Token "";
proxy_http_version 1.1;
proxy_buffering off;
proxy_request_buffering off;
proxy_buffer_size 16k;
proxy_buffers 4 16k;
proxy_busy_buffers_size 32k;
proxy_connect_timeout 15s;
proxy_read_timeout 300s;
proxy_send_timeout 120s;
}
# --- Catch-all ---
location / {
default_type application/json;
return 404 '{"error":"unknown_upstream","hint":"use /elevenlabs/, /openai/ or /telegram/ or /openrouter/"}';
return 404 '{"error":"unknown_upstream","hint":"use /elevenlabs/, /openai/, /telegram/, /openrouter/ or /deepseek/"}';
}