Repository navigation
Server: commit the VDS stability hardening already in production - #2
Merged
Merged
Conversation
…p on SIGTERM - Reject zero or oversized FOCUSNOOK_MAX_* values at startup instead of accepting any number. - Add FOCUSNOOK_MAX_REQUEST_BODY_BYTES (default 32 MiB) and require it to cover the Base64-encoded blob limit plus JSON overhead; the body limit was blob size + 1 MiB, which rejected valid blobs above roughly 12 MiB. - Shut down gracefully on SIGTERM as well as Ctrl+C, so a container stop lets in-flight exchanges finish. Ported from the 2026-08-21 work that is already running on the VDS (wip/2026-08-21-sync-hardening) onto the split routes/ module. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ackups - Docker: JSON log rotation, health-check start periods and stop grace periods for postgres and the server. - nginx: 32 MiB body limit aligned with the server, rate limiting on login and registration only. - backup-vds-local.py: reject unknown host keys and support an OpenSSH host alias with key-based access. - smoke-test.sh, .env.example, generate-env.sh and README cover the new request limit. Matches the configuration deployed to the VDS on 2026-08-21. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 of 2 tasks
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The VDS has been running these changes since the 2026-08-21 stability rollout, but they were never committed. A deploy from
mainwould silently revert them and bring back the rejection of blobs above roughly 12 MiB. This PR ports them onto the refactoredmain(the oldroutes.rschange now lives inroutes/mod.rs); all other files are byte-identical to the deployed version.Server
FOCUSNOOK_MAX_*values.FOCUSNOOK_MAX_REQUEST_BODY_BYTES(default 32 MiB), validated to cover the Base64-encoded blob limit plus JSON overhead. The body limit used to be blob size + 1 MiB, so valid blobs above ~12 MiB were rejected after Base64 expansion.Deploy
backup-vds-local.py: rejects unknown host keys (was a warning) and supports an OpenSSH host alias with keys.smoke-test.sh,.env.example,generate-env.sh, README updated for the new limit.Checks
scripts/check.ps1 -Only server: fmt, Clippy, 24 tests (new:request_limit_accounts_for_base64_blob_expansion).docker compose configvalid; shell scripts passbash -n; the backup script compiles.nginx -there.The original uncommitted snapshot is kept in
wip/2026-08-21-sync-hardening. The desktop part of that work (account-bound sync) follows in a separate PR.🤖 Generated with Claude Code