- Introduction:
- Language: LiveScript
- Runtime: Node.js (0.8+ preferred)
- Services: Redis (2.4+; fall-back to on-disk JSON storage if not present)
- Multi-server is supported only when running with Redis
- Note to Redis 2.2 users (e.g. on Ubuntu 12.04): Please disable the
timeout 300
setting in/etc/redis.conf
, or upgrade to Redis 2.4+ if possible at all. For more details, see #49.
- Browsers tested: Safari, Chrome, Firefox, IE.
- Integrated with content management systems:
- Overview:
- English: http://ethercalc.net/
- 中文版: http://ethercalc.tw/
For global installation (may need root)
npm i -g ethercalc
ethercalc
For local non-root installation
npm i
make
Or install with our Docker image, which comes with a built-in Redis server and webworker-threads support:
# Runs at port 6967
sudo docker run -d -p 6967:6967 -v /var/lib/redis:/redis:rw audreyt/ethercalc
# Runs at another port, for example 8080
sudo docker run -d -p 8080:6967 -v /var/lib/redis:/redis:rw audreyt/ethercalc
Note the use of -v
flag to store the Redis database in /var/lib/redis
on
the host server. In Docker versions 0.4.x, the flag was called -b
instead.
Note that POST endpoints accept only application/json
requests,
and will reject regular form posts.
Fetch the page as a serialization in SocialCalc save format.
Replaces the page with a serialization in SocialCalc save format.
Also takes a CSV structure that contains the new spreadsheet's content.
Takes a JSON structure with room
and snapshot
fields.
Replaces the page with a serialization in Socialtext save format.
If room
is not specified, returns a new page.
Also takes a CSV structure that contains the new spreadsheet's content.
Takes a JSON structure with a command
field (either as a string
or an array of strings), or a plain-text command string.
Runs one or more commands specified in the command
field.
Also takes a CSV structure that contains fields to be appended to the first column after the last row.
Returns a JSON representation of all defined cells in the page.
Returns a JSON representation of a single cell in the page.
Returns a HTML rendering of the page. (GET /page.html also works.)
Returns a CSV rendering of the page. (GET /page.csv also works.)
openssl genrsa -out ethercalc-key.pem 1024
openssl req -new -key ethercalc-key.pem -out certrequest.csr
openssl x509 -req -in certrequest.csr -signkey ethercalc-key.pem -out ethercalc-cert.pem
ethercalc --keyfile ethercalc-key.pem --certfile ethercalc-cert.pem
Useful when running behind a proxy without WebSocket support.
Useful when setting up EtherCalc as a public REST API server.
Useful when running under an URL rewriter.
Offers read-write vs. read-only modes. See issues #1 and #4 for details on setting this up.
Runs a single-thread background loop with vm.createContext
instead of webworker-threads
.
Useful for running custom functions in server side that requires full VM access.
Deletes a spreadsheet's content after N seconds of inactivity. Activities include accessing with REST API as well as Web UI, including moving the active cell cursor on an opened page.
- socialcalcspreadsheetcontrol.js
- socialcalctableeditor.js
- images/*
- formatnumber2.js
- formula1.js
- socialcalc-3.js
- socialcalcconstants.js
- socialcalcpopup.js
- static/jquery.js
- static/vex-theme-flat-attack.css
- static/vex.combined.min.js
- static/vex.css
- static/jszip.js
- static/shim.js
- static/xlsx.js
- static/xlsxworker.js
- src/*.ls