Skip to content

feat: add local filesystem storage backend for Docker/offline use - #207

Closed
Code-Parth wants to merge 1 commit into
excalidraw:mainfrom
Code-Parth:feat/local-all-in-one-docker
Closed

Code-Parth wants to merge 1 commit into
excalidraw:mainfrom
Code-Parth:feat/local-all-in-one-docker

Conversation

@Code-Parth

Copy link
Copy Markdown

Summary

  • Add STORAGE_BACKEND=local filesystem blob backend (LOCAL_STORAGE_PATH, default ./data) so Docker/offline use needs no GCS credentials while keeping /api/v2 compatible.
  • Add standalone Dockerfile, /health endpoint, localhost CORS allowances for local mode, and README docs.

Note: Full all-in-one Docker orchestration lives in sibling docker-all-in-one/ under /Users/codeparth/dev/local-excalidraw/ (not in this repo). Prefer that image for UI + MCP + store together; this PR enables the store piece standalone or as a build context.

Test plan

  • STORAGE_BACKEND=local yarn dev — POST /api/v2/post/ writes under ./data, GET /api/v2/:id returns the blob
  • Invalid keys are rejected (path traversal protection)
  • Default (no STORAGE_BACKEND=local) still uses GCS as before
  • GET /health reports { ok: true, storage: "local" } in local mode
  • Optional: build/run the new standalone Dockerfile with a volume on /data

Made with Cursor

STORAGE_BACKEND=local writes blobs under LOCAL_STORAGE_PATH (default ./data)
so no GCS credentials are required, while keeping the /api/v2 API compatible.

Co-authored-by: Cursor <cursoragent@cursor.com>
@Code-Parth

Copy link
Copy Markdown
Author

Closing: this was meant to target Code-Parth/excalidraw-store (fork), not upstream excalidraw/excalidraw-store.

@Code-Parth Code-Parth closed this Sep 29, 2026
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