
Security News
AGENTS.md Gains Traction as an Open Format for AI Coding Agents
AGENTS.md is a fast-growing open format giving AI coding agents a shared, predictable way to understand project setup, style, and workflows.
ethercalc
Advanced tools
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.
FAQs
Multi-User Spreadsheet Server
We found that ethercalc demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
AGENTS.md is a fast-growing open format giving AI coding agents a shared, predictable way to understand project setup, style, and workflows.
Security News
/Research
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.