ruinivist 66168e95cc fix: refine bundle caching and remove dev logging artifacts
- Update static file fetcher in `server.tsx` to apply `public, max-age=31536000, immutable` headers only to minified assets identified by a hash pattern (e.g., `chunk-xxxxxx.js`).
- Apply `no-cache` header explicitly to unhashed files (such as `index.html`) to ensure the latest entrypoint is always served.
- Removed dev artifacts, build output files, and patches from the workspace to clean up the branch.
- Reverted unintentional `React.lazy` changes in `src/App.tsx` as requested.
2026-05-30 12:53:52 +00:00
2026-05-24 15:32:36 +00:00
2026-05-24 18:53:24 +00:00
2026-05-24 18:36:09 +00:00
2026-05-24 15:32:36 +00:00
2026-05-24 15:32:36 +00:00

excali-box

Private self-hosted Excalidraw with Bun and SQLite.

This is bare wrapper around the excalidraw packages that adds autosave and disk-persistence. No auth to keep things simple - you either run in a private network or put it behind a Caddy auth or similar solutions.

GPT 5.5 generated

Pull from GHCR and run

Images are published to:

ghcr.io/ruinivist/excalidraw-box:<version>

docker pull ghcr.io/ruinivist/excalidraw-box:latest
docker run --rm -p 127.0.0.1:3000:3000 -v "$PWD/excali-box-data:/data" ghcr.io/ruinivist/excalidraw-box:latest

Run locally

bun install
bun run dev

Open http://localhost:3000.

Test

bun run test
bun run typecheck

Build the image

docker build -t excali .
docker run --rm -p 127.0.0.1:3000:3000 -v "$PWD/excali-box-data:/data" excali

This will make the data persistent in the excali-box-data folder in the current directory, the site will be available at localhost:3000.