openvibers/openvibe.wiki Commits

nginx: space imports get their own body limits (3 MB for POST /api/v1/spaces/:space/import, 7 MB for the /s/:space/import form; everything else stays at 1 MB), so a 2 MB bundle reaches the app's own checks instead of nginx's 413; header comment says the vhost is live

OP OpenVibers committed 23 Sept 2026 · 1afdbda970 · 1 file, +16 −2


Changes

ddiff --git a/deploy/nginx/openvibe.wiki.conf b/deploy/nginx/openvibe.wiki.conf
iindex 86788cf..7170eba 100644
---- a/deploy/nginx/openvibe.wiki.conf
++++ b/deploy/nginx/openvibe.wiki.conf
@@@ -2,8 +2,8 @@
## openvibe.wiki — Nginx Configuration (REFERENCE)
##
## Deployed to /etc/nginx/sites-available/openvibe.wiki.conf — keep them in sync and reload
--## nginx after changing it. Not live: openvibe.wiki is served by OpenVibe.Sites (placeholder)
--## until the launch release removes it from OpenVibe.Sites/sites.json in the same release.
++## nginx after changing it. Live since 2026-09-23 (the launch release removed openvibe.wiki from
++## OpenVibe.Sites/sites.json).
##
## The Node app (port 4800, systemd unit openvibe-wiki) renders every page. nginx terminates
## TLS, redirects www → apex, rate-limits auth, API and form posts, and never caches anything
@@@ -94,6 +94,20 @@ server {
proxy_pass http://127.0.0.1:4800;
}
++ # Space imports (server/wiki/import.js): a JSON bundle of up to 2 MB, or the same bundle pasted
++ # into the form (URL-encoded, the app accepts up to 6 MB there). The app also allows only 20
++ # imports an hour per address. Regex locations win over the /api/ and / prefixes above and below.
++ location ~ ^/api/v1/spaces/[^/]+/import$ {
++ client_max_body_size 3m;
++ limit_req zone=ovwiki_api burst=40 nodelay;
++ proxy_pass http://127.0.0.1:4800;
++ }
++ location ~ ^/s/[^/]+/import$ {
++ client_max_body_size 7m;
++ limit_req zone=ovwiki_write burst=20 nodelay;
++ proxy_pass http://127.0.0.1:4800;
++ }
++
location / {
limit_req zone=ovwiki_write burst=20 nodelay;
proxy_pass http://127.0.0.1:4800;