You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ExcaliDash was painfully slow over the home's asymmetric uplink
(0.5–2 Mbps after r8169 SG/TSO/GSO fix). Three issues found:
1. `/api/drawings` list returned 12.6 MB of inline SVG previews (issue #59).
2. Drawing files column stored 13.9 MB of base64 images in SQLite — every
open/save shipped 2–18 MB over the tunnel (issue #145).
3. No response compression in Caddy.
Changes:
- caddy/Caddyfile: add `encode zstd gzip` to (common) → 4× smaller JSON.
- excalidash-backend: switch to custom image `excalidash-backend:s3`
built from PR ZimengXiong/ExcaliDash#163 (S3 image upload). Wired to
Cloudflare R2 bucket `excalidraw` via `excalidraw-bucket.phanthawas.dev`
custom domain so images load from CF edge, bypassing the home uplink.
- excalidash/patches/drawings.js: bind-mounted override that drops
`preview` from `summarySelect` in both `/drawings` list endpoints.
Frontend lazy-fetches preview per card. List response 12.6 MB → ~2 KB.
- .env.example: document R2/S3 env var schema (values live in box .env).
- .gitignore / glance / hermes / amp / sync / conflux: bundled pre-existing
local edits made during the same investigation.
Existing 26.6 MB of base64 in SQLite migrated to R2 via one-shot script
(reused backend's processFilesForS3 + rewritePreviewForS3). VACUUM after:
DB 39 MB → 848 KB.
Also fixed on box (config not in repo):
- /etc/systemd/system/nic-offload.service: persistent ethtool -K enp3s0
sg/tso/gso on (r8169 ships these off, killing TCP uplink → 4× boost).
0 commit comments