Skip to content

Harden the production stack for public deployment - #8

Merged
itisar-345 merged 1 commit into
mainfrom
security-hardening
Oct 17, 2026
Merged

itisar-345 merged 1 commit into
mainfrom
security-hardening

Conversation

@itisar-345

Copy link
Copy Markdown
Collaborator
  • SETUP_TOKEN: registering the first account (the server admin) needs it, so whoever finds a new server first can't claim it. Required in deploy/.
  • Sign-in and sign-up throttling (429 + Retry-After), counted in Redis across app instances, failing open if Redis is down.
  • Sign out revokes tokens server-side via a per-account session version.
  • Content-Security-Policy and Permissions-Policy from Caddy; Angular's inlineCritical turned off, since its onload= handler would be blocked.
  • API_DOCS=false hides /docs, /redoc and /openapi.json in production.
  • URL fetching re-checks the address at connect time and connects to that exact address, closing the DNS rebinding gap.
  • deploy/backup.sh: consistent ArcadeDB backups as the app user, pruned after BACKUP_KEEP_DAYS; restore documented.

- SETUP_TOKEN: registering the first account (the server admin) needs it,
  so whoever finds a new server first can't claim it. Required in deploy/.
- Sign-in and sign-up throttling (429 + Retry-After), counted in Redis
  across app instances, failing open if Redis is down.
- Sign out revokes tokens server-side via a per-account session version.
- Content-Security-Policy and Permissions-Policy from Caddy; Angular's
  inlineCritical turned off, since its onload= handler would be blocked.
- API_DOCS=false hides /docs, /redoc and /openapi.json in production.
- URL fetching re-checks the address at connect time and connects to that
  exact address, closing the DNS rebinding gap.
- deploy/backup.sh: consistent ArcadeDB backups as the app user, pruned
  after BACKUP_KEEP_DAYS; restore documented.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@itisar-345
itisar-345 merged commit 4bd45d0 into main Oct 17, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant