mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
fix: Docker hardening, security, and deployment readiness for V1 (#82)
Phase 1 — Docker Artifact Optimization: - Replace broad `COPY . .` with targeted frontend source copies (API/Python changes no longer bust the frontend build cache) - Replace build-essential with gcc/g++ (leaner runtime) - Fix LOG_LEVEL=debug → info for production - Harden .dockerignore (exclude worktrees, IDE, CI, test artifacts) Phase 2 — State & Persistence: - Add PUID/PGID support in entrypoint.sh for bind mount compatibility - Guard against PUID=0/PGID=0 to prevent accidental root execution - Evict conflicting system users (e.g. node:1000) before UID remap Phase 3 — Security: - Always register @fastify/rate-limit so login brute-force protection works even when global rate limit is disabled (RATE_LIMIT_PER_MIN=0) - Add trustProxy support (TRUST_PROXY env var, default true) so rate limiting and audit logs use real client IPs behind reverse proxies - Strip stack traces from 500 error responses in production - Fix FSTDEP022 deprecation: maxParamLength → routerOptions - Add multi-file guard on single-file tool endpoint with clear error message pointing to the /batch endpoint Phase 4 — Graceful Degradation: - Add consolidated hardware detection startup banner (GPU, rate limit, upload limit, proxy status) - Add ConnectionMonitor component with health polling and reconnecting overlay that auto-dismisses when the server comes back Phase 5 — Deployment Docs: - Rewrite deployment.md with copy-paste CPU and GPU compose templates - Add hardware requirements table (minimum, recommended, heavy workloads) - Add PUID/PGID bind mount documentation - Add complete env var reference table - Add reverse proxy guides for Nginx, Nginx Proxy Manager, Traefik, and Cloudflare Tunnels
This commit is contained in:
+34
-4
@@ -1,14 +1,44 @@
|
||||
node_modules
|
||||
.git
|
||||
.gitignore
|
||||
.turbo
|
||||
.worktrees
|
||||
dist
|
||||
*.db
|
||||
*.db-journal
|
||||
*.db-wal
|
||||
*.db-shm
|
||||
.env
|
||||
.env.local
|
||||
.env.*
|
||||
!.env.example
|
||||
.DS_Store
|
||||
.playwright-mcp
|
||||
*.png
|
||||
*.jpg
|
||||
*.jpeg
|
||||
.mcp.json
|
||||
.superpowers
|
||||
docs/superpowers
|
||||
|
||||
# Test artifacts
|
||||
test-results
|
||||
playwright-report
|
||||
blob-report
|
||||
tests
|
||||
coverage
|
||||
*.tsbuildinfo
|
||||
MASTER_TEST_MATRIX.md
|
||||
|
||||
# IDE and editor files
|
||||
.vscode
|
||||
.idea
|
||||
*.swp
|
||||
*.swo
|
||||
|
||||
# CI/release files not needed in image
|
||||
.github
|
||||
.husky
|
||||
.releaserc.json
|
||||
scripts
|
||||
|
||||
# Large test images (favicons/logos in apps/web/public are fine)
|
||||
test-*.png
|
||||
*.heic
|
||||
*.heif
|
||||
|
||||
Reference in New Issue
Block a user