From e5046b17de2879769c736338a018686775d5f4f2 Mon Sep 17 00:00:00 2001 From: Yun Wang Date: Thu, 22 Oct 2026 08:25:50 -0700 Subject: [PATCH 1/2] bops.bot serves Ingot: /ingot/* goes to the ingot-hosted service on the same VM, prefix removed, streaming both ways with pushes up to 450 MB and no compression on its answers --- site/deploy/Caddyfile | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/site/deploy/Caddyfile b/site/deploy/Caddyfile index 53b4875d..d6f81cb8 100644 --- a/site/deploy/Caddyfile +++ b/site/deploy/Caddyfile @@ -1,10 +1,14 @@ # bops.bot: the landing page (site/), as plain files, on the Bops VM. Orgo's site-deploy.sh # (OrgoAI/bops-secrets) installs this as /etc/caddy/Caddyfile; Caddy gets and renews the certificates # itself. HTML is always fresh, everything else is cached a day (as nginx.conf did on Fly). The backend -# API is not here: it's bops.orgo.ai/api (cloud/, Orgo's cloud-deploy.sh). +# API is not here: it's bops.orgo.ai/api (cloud/, Orgo's cloud-deploy.sh). Ingot, Orgo's source control +# for the workspaces' apps, is: /ingot/* goes to the ingot-hosted service on this VM (OrgoAI/ingot +# deploy/install-hosted.sh, with INGOT_PUBLIC_URL=https://bops.bot/ingot). bops.bot { root * /opt/bops/site - encode zstd gzip + # Not Ingot's answers: git packs and commits stream, and are compressed already. + @compress not path /ingot/* + encode @compress zstd gzip header { X-Content-Type-Options nosniff @@ -30,6 +34,16 @@ bops.bot { header Content-Disposition attachment file_server } + # Ingot's API and git, with the /ingot prefix taken off. Packs and commits stream both ways + # (flush_interval -1), up to a push's 400 MB. + handle_path /ingot/* { + request_body { + max_size 450MB + } + reverse_proxy 127.0.0.1:7979 { + flush_interval -1 + } + } # The old review address goes to the page itself. redir /preview* / 308 # The Open source links: the public repo, set on the VM (BOPS_GITHUB_URL in caddy's environment). From 5fac2cad6501ebba5ac4bc245551d275bb6ea1fc Mon Sep 17 00:00:00 2001 From: Yun Wang Date: Thu, 22 Oct 2026 09:00:12 -0700 Subject: [PATCH 2/2] Ingot is served at https://bops.bot/api/ingot --- site/deploy/Caddyfile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/site/deploy/Caddyfile b/site/deploy/Caddyfile index d6f81cb8..6304a954 100644 --- a/site/deploy/Caddyfile +++ b/site/deploy/Caddyfile @@ -2,12 +2,12 @@ # (OrgoAI/bops-secrets) installs this as /etc/caddy/Caddyfile; Caddy gets and renews the certificates # itself. HTML is always fresh, everything else is cached a day (as nginx.conf did on Fly). The backend # API is not here: it's bops.orgo.ai/api (cloud/, Orgo's cloud-deploy.sh). Ingot, Orgo's source control -# for the workspaces' apps, is: /ingot/* goes to the ingot-hosted service on this VM (OrgoAI/ingot -# deploy/install-hosted.sh, with INGOT_PUBLIC_URL=https://bops.bot/ingot). +# for the workspaces' apps, is: /api/ingot/* goes to the ingot-hosted service on this VM (OrgoAI/ingot +# deploy/install-hosted.sh, with INGOT_PUBLIC_URL=https://bops.bot/api/ingot). bops.bot { root * /opt/bops/site # Not Ingot's answers: git packs and commits stream, and are compressed already. - @compress not path /ingot/* + @compress not path /api/ingot/* encode @compress zstd gzip header { @@ -34,9 +34,9 @@ bops.bot { header Content-Disposition attachment file_server } - # Ingot's API and git, with the /ingot prefix taken off. Packs and commits stream both ways + # Ingot's API and git, with the /api/ingot prefix taken off. Packs and commits stream both ways # (flush_interval -1), up to a push's 400 MB. - handle_path /ingot/* { + handle_path /api/ingot/* { request_body { max_size 450MB }