Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/audreyt/ethercalc
Node.js port of Multi-user SocialCalc
https://github.com/audreyt/ethercalc
Last synced: 5 days ago
JSON representation
Node.js port of Multi-user SocialCalc
- Host: GitHub
- URL: https://github.com/audreyt/ethercalc
- Owner: audreyt
- License: other
- Created: 2011-08-20T06:10:56.000Z (over 13 years ago)
- Default Branch: master
- Last Pushed: 2022-11-08T01:53:01.000Z (over 2 years ago)
- Last Synced: 2025-01-30T09:54:12.065Z (12 days ago)
- Language: JavaScript
- Homepage: https://ethercalc.net
- Size: 12.7 MB
- Stars: 2,980
- Watchers: 138
- Forks: 535
- Open Issues: 308
-
Metadata Files:
- Readme: README.mkdn
- Changelog: Changes.txt
- License: LICENSE.txt
Awesome Lists containing this project
- awesome-tw-foss - EtherCalc - Node.js port of Multi-user SocialCalc. (Web Application)
- starred-awesome - ethercalc - Node.js port of Multi-user SocialCalc (JavaScript)
- awesome-starred - audreyt/ethercalc - Node.js port of Multi-user SocialCalc (others)
- awesome-homelab - EtherCalc - user SocialCalc | (Apps / X)
README
# EtherCalc
* Overview: https://ethercalc.net/
* 中文版: http://tw.ethercalc.net/
* 简体中文: http://cn.ethercalc.net/
* REST API: http://docs.ethercalc.apiary.io/* Language: [LiveScript](http://livescript.net/)
* Runtime: [Node.js](http://nodejs.org/) (4.x preferred, should work with 0.8+)
* Services: [Redis](http://redis.io) (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](https://github.com/audreyt/ethercalc/issues/49#issuecomment-25331595).
* Browsers tested: Safari, Chrome, Firefox, IE.
* Integrated with content management systems:
* [Socialtext](http://www.socialtext.com/)
* [Drupal](https://drupal.org/project/sheetnode)## Installation
For global installation (may need root)
npm i -g ethercalc
ethercalcFor local non-root installation
git clone [email protected]:audreyt/ethercalc.git
cd ethercalc
npm i
makeNodejs older than 6.0
downgrade Nodemailer to v2.7.2
Or install with our [Docker](http://www.docker.io/) 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 -dConfig database
set env vars:
REDIS_PORT REDIS_HOST REDIS_SOCKPATH REDIS_PASS REDIS_DB OPENSHIFT_DATA_DIRDefaults:
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#L5Send 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 providorsCron - 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.## REST API
Please see [API.md](https://github.com/audreyt/ethercalc/blob/master/API.md)
for the API Blueprint, or [the online version at Apiary](http://docs.ethercalc.apiary.io/).## Runtime Flags
### Listening Interface: `--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).
### Using SSL: `--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### Prefers polling over Websocket: `--polling`
Useful when running behind a proxy without WebSocket support.
### Enable Cross-Origin Resource Sharing: `--cors`
Useful when setting up EtherCalc as a public REST API server.
### URL Prefix: `--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;
}
```### Access Control: `--key secret`
Offers read-write vs. read-only modes. See issues [#1](https://github.com/audreyt/ethercalc/issues/1) and [#4](https://github.com/audreyt/ethercalc/issues/4) for details on setting this up.
### Disable server-side WebWorkers: `--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.
### Expires inactive spreadsheets: `--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.
# Licensing
### Common Public Attribution License (Socialtext Inc.)
* socialcalcspreadsheetcontrol.js
* socialcalctableeditor.js### Artistic License 2.0 (Socialtext Inc.)
* formatnumber2.js
* formula1.js
* socialcalc-3.js
* socialcalcconstants.js
* socialcalcpopup.js#### Artistic License 2.0 (Framasoft)
* l10n/fr.json
### MIT License (John Resig, The Dojo Foundation)
* static/jquery.js
### MIT License (HubSpot, Inc.)
* static/vex-theme-flat-attack.css
* static/vex.combined.min.js
* static/vex.css### MIT License (Stuart Knightley, David Duponchel, Franz Buchinger, Ant'onio Afonso)
* static/jszip.js
### Apache License 2.0 (SheetJS)
* static/shim.js
* static/xlsx.js
* static/xlsxworker.js
* start.html (xlsx2socialcalc.js)### CC0 Public Domain (唐鳳)
* src/*.ls
### Mozilla Public License Version 2.0 (LibreOffice contributors)
* images/sc_*.png