server {
    listen       80;
    server_name  localhost;

    add_header Content-Security-Policy "frame-ancestors 'self'" always;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ /api/playground/ {
        rewrite /api/playground/(.*) /$1  break;
        chunked_transfer_encoding off;
        proxy_set_header Connection '';
        proxy_http_version 1.1;
        proxy_buffering off;
        proxy_cache off;
        proxy_pass http://langchain-playground:3001;
    }

    location = /api/playground {
        rewrite /api/playground /  break;
        chunked_transfer_encoding off;
        proxy_set_header Connection '';
        proxy_http_version 1.1;
        proxy_buffering off;
        proxy_cache off;
        proxy_pass http://langchain-playground:3001;
    }

    # Hub Routes
    location ~ /api-hub {
        rewrite /api-hub/(.*) /$1  break;
        chunked_transfer_encoding off;
        proxy_set_header Connection '';
        proxy_http_version 1.1;
        proxy_buffering off;
        proxy_cache off;
        proxy_pass http://langchain-hub:1985;
    }

    # Backend Routes
    location ~ /api {
        rewrite /api/(.*) /$1  break;
        chunked_transfer_encoding off;
        proxy_set_header Connection '';
        proxy_http_version 1.1;
        proxy_buffering off;
        proxy_cache off;
        proxy_pass http://langchain-backend:1984;
    }

}
