gabriel / musehub public
nginx-ssl.conf
50 lines 1.9 KB
a7bfeb98 fix(nginx): extend timeout to /push/objects for chunked push (#61) Gabriel Cardona <cgcardona@gmail.com> 14h ago
1 # /etc/nginx/sites-available/musehub
2 # This is the final config AFTER Certbot has added SSL.
3 # Certbot auto-generates a version like this; included here for reference/recovery.
4
5 server {
6 listen 80;
7 listen [::]:80;
8 server_name musehub.ai www.musehub.ai;
9 return 301 https://$host$request_uri;
10 }
11
12 server {
13 listen 443 ssl;
14 listen [::]:443 ssl;
15 server_name musehub.ai www.musehub.ai;
16
17 ssl_certificate /etc/letsencrypt/live/musehub.ai/fullchain.pem;
18 ssl_certificate_key /etc/letsencrypt/live/musehub.ai/privkey.pem;
19 include /etc/letsencrypt/options-ssl-nginx.conf;
20 ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
21
22 client_max_body_size 50m;
23
24 # Push endpoints need a longer timeout — large repos can take several
25 # seconds to serialize and write all objects. 60s causes 502 on first push.
26 # /push/objects is Phase 1 of the chunked push protocol (object pre-upload).
27 # /push is Phase 2 (commits + snapshots, refs updated atomically).
28 location ~ ^/[^/]+/[^/]+/push(/objects)?$ {
29 proxy_pass http://127.0.0.1:10003;
30 proxy_http_version 1.1;
31 proxy_set_header Host $host;
32 proxy_set_header X-Real-IP $remote_addr;
33 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
34 proxy_set_header X-Forwarded-Proto $scheme;
35 proxy_read_timeout 300s;
36 }
37
38 # Proxy all other traffic to the MuseHub uvicorn container
39 location / {
40 proxy_pass http://127.0.0.1:10003;
41 proxy_http_version 1.1;
42 proxy_set_header Upgrade $http_upgrade;
43 proxy_set_header Connection "upgrade";
44 proxy_set_header Host $host;
45 proxy_set_header X-Real-IP $remote_addr;
46 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
47 proxy_set_header X-Forwarded-Proto $scheme;
48 proxy_read_timeout 60s;
49 }
50 }