1.5.0 • Published 7 months ago

json-crdt-server v1.5.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
7 months ago

JSON CRDT Server

Implementation of JSON CRDT HTTP/Websocket server with persistent on disk or in-memory storage.

Configuration

Environment variables:

  • PORT - port number to listen on, default is 9999.
  • NODE_ENV - environment, set it to "production" in production.
  • JSON_CRDT_STORE - storage backend, set it to "level" to use LevelDB.
  • JSON_CRDT_STORE_PATH - folder to store data on the disk, default is ./db.

Start the server

Run the server without installation:

npx json-crdt-server

Specify the port number:

PORT=8080 npx json-crdt-server

Also, run in "production" mode and use "level" as the storage backend to persist content on disk:

NODE_ENV=production JSON_CRDT_STORE=level npx json-crdt-server

Or, if you git cloned the repository:

yarn build

NODE_ENV=production \
PORT=8080 \
JSON_CRDT_STORE=level \
  npx pm2 start lib/main.js \
    --exp-backoff-restart-delay=100

Test that server is running, execute JSON-RPC 2.0 request:

curl localhost:8080/rpc -H 'Content-Type: rpc.json2.verbose.json' -d '{"method": "util.ping", "id": 1}'

Or, execute equivalent JSON Reactive RPC request:

curl localhost:8080/rpc -d '[1,1,"util.ping"]'