feat(config): add server config + can disable message-bus

- server now provide it's config via /api/config (possibility to feature flag)
- client use /api/config to enable / disable some features
- capability to disable the message bus, somme OPS may not want this feature and
  consume persistent connections from server (websocket):
  OXICLOUD_MESSAGEBUS_ENABLE (true by default)
This commit is contained in:
Edouard Vanbelle
2026-09-11 12:10:56 +02:00
parent 758b1e0d6e
commit 5083eaeaba
19 changed files with 499 additions and 47 deletions
+22 -1
View File
@@ -1112,7 +1112,28 @@ OXICLOUD_WOPI_ENABLED=false
# * nginx `proxy_read_timeout` default 60s → ping ≤ 30s
# * Cloudflare hard limit 100s → ping ≤ 45s
# * Traefik with idleTimeout bumped to 3600s → 30s is safely under
#OXICLOUD_RT_WS_KEEPALIVE_SECONDS=30
#OXICLOUD_MESSAGEBUS_KEEPALIVE_SECONDS=30
# Message bus master switch. When `false`, /api/rt/ws and
# POST /api/rt/ticket are NOT registered at boot — Axum returns 404
# for both, keeping monitoring dashboards free of 5xx noise. Clients
# discover this via GET /api/config.features.message_bus and skip WS
# setup entirely. Publish sites in the services stay unchanged (bus
# still runs internally; publishes to no subscribers are cheap no-ops).
#
# Why an operator might turn this off: each logged-in browser holds a
# persistent WebSocket connection while a folder view is open. Total
# sustained sessions on the server = users × open tabs, each consuming
# an fd, a few KB of tokio task state, and whatever tuple your L4/L7
# load balancer keeps for the flow. On tightly-provisioned VPS
# deployments (low fd ulimit, tight memory), behind WebSocket-hostile
# reverse proxies that can't be reconfigured, or during an operational
# triage where you want to shed WS load fast, set this to false — the
# SPA falls back to its pre-message-bus behavior transparently
# (updates land on the next nav / refresh instead of live).
#
# Default: true.
#OXICLOUD_MESSAGEBUS_ENABLE=true
# -----------------------------------------------------------------------------
# MEMORY ALLOCATOR TUNING (IMPORTANT FOR RAM USAGE)