{"id":13407378,"url":"https://github.com/audreyt/ethercalc","last_synced_at":"2025-05-14T07:08:19.166Z","repository":{"id":43091174,"uuid":"2237981","full_name":"audreyt/ethercalc","owner":"audreyt","description":"Node.js port of Multi-user SocialCalc","archived":false,"fork":false,"pushed_at":"2022-11-08T01:53:01.000Z","size":13320,"stargazers_count":2993,"open_issues_count":309,"forks_count":545,"subscribers_count":137,"default_branch":"master","last_synced_at":"2025-05-11T16:19:08.329Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://ethercalc.net","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/audreyt.png","metadata":{"files":{"readme":"README.mkdn","changelog":"Changes.txt","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-08-20T06:10:56.000Z","updated_at":"2025-05-07T07:28:00.000Z","dependencies_parsed_at":"2023-01-22T21:31:21.368Z","dependency_job_id":null,"html_url":"https://github.com/audreyt/ethercalc","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/audreyt%2Fethercalc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/audreyt%2Fethercalc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/audreyt%2Fethercalc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/audreyt%2Fethercalc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/audreyt","download_url":"https://codeload.github.com/audreyt/ethercalc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254092659,"owners_count":22013290,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-30T20:00:38.824Z","updated_at":"2025-05-14T07:08:19.138Z","avatar_url":"https://github.com/audreyt.png","language":"JavaScript","funding_links":[],"categories":["Web Application","TypeScript","JavaScript","others","Apps"],"sub_categories":["Development"],"readme":"# EtherCalc\n\n* Overview: https://ethercalc.net/\n* 中文版: http://tw.ethercalc.net/\n* 简体中文: http://cn.ethercalc.net/\n* REST API: http://docs.ethercalc.apiary.io/\n\n* Language: [LiveScript](http://livescript.net/)\n* Runtime: [Node.js](http://nodejs.org/) (4.x preferred, should work with 0.8+)\n* Services: [Redis](http://redis.io) (2.4+; fall-back to on-disk JSON storage if not present)\n    * Multi-server is supported _only_ when running with Redis\n    * 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).\n* Browsers tested: Safari, Chrome, Firefox, IE.\n* Integrated with content management systems:\n    * [Socialtext](http://www.socialtext.com/)\n    * [Drupal](https://drupal.org/project/sheetnode)\n\n## Installation\n\nFor global installation (may need root)\n\n    npm i -g ethercalc\n    ethercalc\n\nFor local non-root installation\n\n    git clone git@github.com:audreyt/ethercalc.git\n    cd ethercalc\n    npm i\n    make\n\nNodejs older than 6.0\n\n    downgrade Nodemailer to v2.7.2\n\nOr install with our [Docker](http://www.docker.io/) image, which comes with\nsupport for webworker-threads:\n\n    # Install docker and docker-compose\n    sudo ./misc/linux-install-docker-and-compose.sh\n\n    # Run ethercalc on port 80 ( http://localhost/ )\n    docker-compose up -d\n\nConfig database\n\n    set env vars:\n      REDIS_PORT REDIS_HOST REDIS_SOCKPATH REDIS_PASS REDIS_DB OPENSHIFT_DATA_DIR\n\n    Defaults:\n      REDIS_HOST = localhost   \n      REDIS_PORT = 6379   \n      OPENSHIFT_DATA_DIR= process.cwd!\n\n    OPENSHIFT_DATA_DIR is used if redis is not Running.\n\n    Code is here:\n    https://github.com/audreyt/ethercalc/blob/df758d4c2f5cbcb00b50e9289a8ba237d4f8fa86/src/db.ls#L5\n\n\nSend email\n\n    Optional - Send email formulas requires OAuth2 \u0026 cron  e.g. =email(to, subject, body), =emailAt(time, to, subject, body)\n\n    OAuth2 - Set environment vars\n    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\n    2) Set 4 environment vars - see [src/emailer.ls] vars: user, clientId, clientSecret, refreshToken\n    Tested using gmail, have not tested with other providors\n\n    Cron - Required for emailAt formulas.\n    See *curl* in [.openshift/cron/minutely/timetrigger] for openshift version (openshift](openshift.redhat.com)\n    The curl checks the database for unsent emails and updates the database after sending.\n\n## REST API\n\nPlease see [API.md](https://github.com/audreyt/ethercalc/blob/master/API.md)\nfor the API Blueprint, or [the online version at Apiary](http://docs.ethercalc.apiary.io/).\n\n## Runtime Flags\n\n### Listening Interface: `--host` / `--port`\n\nSpecify a specific host and/or a different port for the service.\n\nBy default EtherCalc listens at `0.0.0.0:8000` (all IPv4 interfaces).\n\n### Using SSL: `--keyfile` / `--certfile`\n\n    openssl genrsa -out ethercalc-key.pem 1024\n    openssl req -new -key ethercalc-key.pem -out certrequest.csr\n    openssl x509 -req -in certrequest.csr -signkey ethercalc-key.pem -out ethercalc-cert.pem\n    ethercalc --keyfile ethercalc-key.pem --certfile ethercalc-cert.pem\n\n### Prefers polling over Websocket: `--polling`\n\nUseful when running behind a proxy without WebSocket support.\n\n### Enable Cross-Origin Resource Sharing: `--cors`\n\nUseful when setting up EtherCalc as a public REST API server.\n\n### URL Prefix: `--basepath /path/prefix`\n\nUseful when running under an URL rewriter. If running with a nginx reverse\nproxy, please add this section:\n\n```\n    location /zappa/socket/__local/ {\n        rewrite (.*) /path/prefix$1;\n    }\n```\n\n\n### Access Control: `--key secret`\n\nOffers 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.\n\n### Disable server-side WebWorkers: `--vm`\n\nRuns a single-thread background loop with `vm.createContext` instead of `webworker-threads`.\n\nUseful for running custom functions in server side that requires full VM access.\n\n### Expires inactive spreadsheets: `--expire 86400`\n\nDeletes 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.\n\n# Licensing\n\n### Common Public Attribution License (Socialtext Inc.)\n\n* socialcalcspreadsheetcontrol.js\n* socialcalctableeditor.js\n\n### Artistic License 2.0 (Socialtext Inc.)\n\n* formatnumber2.js\n* formula1.js\n* socialcalc-3.js\n* socialcalcconstants.js\n* socialcalcpopup.js\n\n#### Artistic License 2.0 (Framasoft)\n\n* l10n/fr.json\n\n### MIT License (John Resig, The Dojo Foundation)\n\n* static/jquery.js\n\n### MIT License (HubSpot, Inc.)\n\n* static/vex-theme-flat-attack.css\n* static/vex.combined.min.js\n* static/vex.css\n\n### MIT License (Stuart Knightley, David Duponchel, Franz Buchinger, Ant'onio Afonso)\n\n* static/jszip.js\n\n### Apache License 2.0 (SheetJS)\n\n* static/shim.js\n* static/xlsx.js\n* static/xlsxworker.js\n* start.html (xlsx2socialcalc.js)\n\n### CC0 Public Domain (唐鳳)\n\n* src/*.ls\n\n### Mozilla Public License Version 2.0 (LibreOffice contributors)\n\n* images/sc_*.png\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faudreyt%2Fethercalc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faudreyt%2Fethercalc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faudreyt%2Fethercalc/lists"}