Overview: https://ethercalc.net/
简体中文: http://cn.ethercalc.net/
REST API: http://docs.ethercalc.apiary.io/
Language: LiveScript
Runtime: Node.js (4.x preferred, should work with 0.8+)
Services: Redis (2.4+; fall-back to on-disk JSON storage if not present)
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:
For global installation (may need root)
npm i -g ethercalc
ethercalc
For local non-root installation
git clone git@github.com:audreyt/ethercalc.git
cd ethercalc
npm i
make
Nodejs older than 6.0
downgrade Nodemailer to v2.7.2
Or install with our Docker image, which comes with support for webworker-threads:
# Install docker and docker-compose
sudo ./misc/linux-install-docker-and-compose.sh
# Run ethercalc on port 80 ( http://localhost/ )
docker-compose up -d
Config database
set env vars:
REDIS_PORT REDIS_HOST REDIS_SOCKPATH REDIS_PASS REDIS_DB OPENSHIFT_DATA_DIR
Defaults:
REDIS_HOST = localhost
REDIS_PORT = 6379
OPENSHIFT_DATA_DIR= process.cwd!
OPENSHIFT_DATA_DIR is used if redis is not Running.
Code is here:
https://github.com/audreyt/ethercalc/blob/df758d4c2f5cbcb00b50e9289a8ba237d4f8fa86/src/db.ls#L5
Send email
Optional - Send email formulas requires OAuth2 & cron e.g. =email(to, subject, body), =emailAt(time, to, subject, body)
OAuth2 - Set environment vars
1) Tutorial: follow the tutorial to get the 4 environment vars http://masashi-k.blogspot.com.au/2013/06/sending-mail-with-gmail-using-xoauth2.html
2) Set 4 environment vars - see [src/emailer.ls] vars: user, clientId, clientSecret, refreshToken
Tested using gmail, have not tested with other providors
Cron - Required for emailAt formulas.
See *curl* in [.openshift/cron/minutely/timetrigger] for openshift version (openshift](openshift.redhat.com)
The curl checks the database for unsent emails and updates the database after sending.
Please see API.md for the API Blueprint, or the online version at Apiary.
--host
/ --port
Specify a specific host and/or a different port for the service.
By default EtherCalc listens at 0.0.0.0:8000
(all IPv4 interfaces).
--keyfile
/ --certfile
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
--polling
Useful when running behind a proxy without WebSocket support.
--cors
Useful when setting up EtherCalc as a public REST API server.
--basepath /path/prefix
Useful when running under an URL rewriter. If running with a nginx reverse proxy, please add this section:
location /zappa/socket/__local/ {
rewrite (.*) /path/prefix$1;
}
--key secret
Offers read-write vs. read-only modes. See issues #1 and #4 for details on setting this up.
--vm
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.
--expire 86400
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.