CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
sagemathinc

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.

GitHub Repository: sagemathinc/cocalc
Path: blob/master/src/packages/project/README.md
Views: 687

This is the Node.js daemon that run in a CoCalc project. It includes some support code related to realtime sync, a self contained Jupyter kernel server, the node.js parts of our Sage worksheet server, and much more.

This code is part of https://github.com/sagemathinc/cocalc and isn't currently designed to be used standalone. Our plan is to refactor this code into smaller useful modules that are published under the @cocalc npm organization.

Environment variables

  • DATA -- directory where local data about the running project server is stored. The default is ~/.cocalc.

  • HUB_PORT -- the project starts a TCP server listening on this port for connections from the hub. Connections are denied unless they start with a secret token that is shared between the project and the hub. On cocalc-docker, the hub loads this from the file system. On Kubernetes, it shares it via a Kubernetes secret. If this variable is not set, then the operating system assigns the hub port at random, and you can find it in $DATA.

  • CLIENT_PORT -- the project also starts an HTTP server (that supports websockets) on this port for connections from web browser clients. The hub only proxies connections to the project if the user is allowed to make them, which is how this is secured in Kubernetes. In cocalc-docker, the hub inserts an extra cookie in the http request... TODO.

  • COCALC_PROJECT_ID

  • COCALC_USERNAME