reachy-tales / nginx.conf
Nicolas Rabault
ui: mirror minimal-conversation-app shell + HF runtime OAuth injection
fec23e5
Raw
History Blame Contribute Delete
1.98 kB
# Minimal nginx config for the static SPA on HF Spaces.
# Container runs as UID 1000 (non-root), hence the writable paths under /tmp.
pid /tmp/nginx/nginx.pid;
worker_processes auto;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
client_body_temp_path /tmp/nginx/client_body;
proxy_temp_path /tmp/nginx/proxy;
fastcgi_temp_path /tmp/nginx/fastcgi;
uwsgi_temp_path /tmp/nginx/uwsgi;
scgi_temp_path /tmp/nginx/scgi;
sendfile on;
tcp_nopush on;
gzip on;
gzip_types text/plain text/css application/json application/javascript
application/wasm text/xml application/xml application/xml+rss
image/svg+xml;
server {
listen 7860 default_server;
server_name _;
root /usr/share/nginx/html;
index index.html;
location /assets/ {
expires 1y;
add_header Cache-Control "public, immutable";
}
location = /index.html {
add_header Cache-Control "no-cache";
}
# Same-origin proxy to OpenAI: Realtime + chat-completions.
# OpenAI's endpoints don't expose CORS for user API keys, so the
# browser cannot hit them directly. The Authorization header
# (the user's sk- key) passes through untouched.
location /openai/ {
proxy_pass https://api.openai.com/;
proxy_ssl_server_name on;
proxy_ssl_name api.openai.com;
proxy_set_header Host api.openai.com;
proxy_read_timeout 600s;
proxy_send_timeout 600s;
proxy_buffering off;
proxy_cache off;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
location / {
try_files $uri $uri/ /index.html;
}
}
}