From d2267b615f54495420774c12c0b5bb0a406a406d Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Thu, 5 Nov 2026 09:59:05 -0500 Subject: [PATCH] =?UTF-8?q?feat(6867):=20Settings=20=E2=86=92=20Config=20h?= =?UTF-8?q?as=20a=20Reverse=20proxy=20section=20that=20shows=20which=20cou?= =?UTF-8?q?nt=20is=20right?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The section opens with a verdict on the admin's own request: the address Grimoire reads them as, or, through Cloudflare, the count to set with a button that sets it. Below it are the count with where it came from, a table of what counts 0-3 would read, and the raw forwarding chain. A saved count can be cleared back to the environment's. Co-Authored-By: Claude Opus 5.5 --- .../src/components/ReverseProxySettings.vue | 309 ++++++++++++++++++ frontend/src/views/SettingsView.vue | 11 + 2 files changed, 320 insertions(+) create mode 100644 frontend/src/components/ReverseProxySettings.vue diff --git a/frontend/src/components/ReverseProxySettings.vue b/frontend/src/components/ReverseProxySettings.vue new file mode 100644 index 00000000..571de34d --- /dev/null +++ b/frontend/src/components/ReverseProxySettings.vue @@ -0,0 +1,309 @@ + + + + + diff --git a/frontend/src/views/SettingsView.vue b/frontend/src/views/SettingsView.vue index 08a53b03..f3ef0e64 100644 --- a/frontend/src/views/SettingsView.vue +++ b/frontend/src/views/SettingsView.vue @@ -9,6 +9,7 @@ import { apiGet, apiPost, apiPut, apiDelete, listGroups, createGroup, deleteGrou import type { User } from "@/types/auth"; import PaginationBar from "@/components/PaginationBar.vue"; import MomentsSettings from "@/components/MomentsSettings.vue"; +import ReverseProxySettings from "@/components/ReverseProxySettings.vue"; import ReplyShapesSettings from "@/components/ReplyShapesSettings.vue"; import BackupScheduleSettings from "@/components/BackupScheduleSettings.vue"; import RestoreBackupDialog from "@/components/RestoreBackupDialog.vue"; @@ -2664,6 +2665,16 @@ async function deleteUser(userId: number) {
Nothing asked yet.
+
+

Reverse proxy

+

+ How many proxies a request passes through before it reaches Grimoire. Sign-in rate + limits and the audit log key on the visitor's address, read through this count; if it + is too low, every visitor reads as the proxy and one run of bad sign-ins blocks everyone. +

+ +
+

Application URL