Forked from https://gitlab.com/kiliandeca/excalidraw-storage-backend
This is a reimplementation of excalidraw-json suitable for self hosting you own instance of Excalidraw.
It can be used with kiliandeca/excalidraw-fork
DockerHub kiliandeca/excalidraw-storage-backend
Feature:
- Storing scenes: when you export as a link
- Storing rooms: when you create a live collaboration
- Storing images: when you export or do a live collaboration of a scene with images
It use Keyv as a simple K/V store so you can use the database of your choice.
Name | Description | Default value |
---|---|---|
PORT |
Server listening port | 8080 |
GLOBAL_PREFIX |
API global prefix for every routes | /api/v2 |
STORAGE_URI |
Keyv connection string, example: redis://user:pass@localhost:6379 . Availabe Keyv storage adapter: redis, mongo, postgres and mysql |
"" (in memory non-persistent) |
STORAGE_TTL |
Time to live for data | null |
LOG_LEVEL |
Log level (debug , verbose , log , warn , error ) |
warn |
BODY_LIMIT |
Payload size limit for scenes or images | 50mb |
For setting postgres pool variables, a few code adjustment have to be made in the storage.service.ts
:
const store = new (require('@keyv/postgres'))({
uri,
max: 1
})
const keyv = new Keyv({
store,
ttl,
});