/kəˈmyo͞odər/ a person who travels some distance to work on a regular basis.
Opinionated nteract focused server. Commuter reads notebooks from S3, has a directory explorer, and provides a jupyter compatible version of the contents API.
Requires Node.js 6+ and npm 3+.
git clone git@github.com:nteract/commuter.git
npm install
COMMUTER_BUCKET=<name> COMMUTER_S3_KEY=<key> COMMUTER_S3_SECRET=<secret> npm start
Available env options
COMMUTER_BUCKET (required, without s3://)
COMMUTER_S3_KEY (required)
COMMUTER_S3_SECRET (required)
COMMUTER_ES_HOST (required only for discovery api)
COMMUTER_BASEPATH (optional, prefix for s3 bucket)
COMMUTER_PATH_DELIMITER (optional, defaults to "/")
COMMUTER_PORT (optional, defaults to 4000)
Notes
The API server (express) runs on port 4000 while the client (UI) runs on port 3000. The client uses the webpack dev server and proxies 3000 -> 4000 to avoid CORS issues. On production the express App serves index.html
and static assets.
View the dashboard at http://localhost:3000/<S3_PATH>
and the API at http://localhost:4000/api/contents/<S3_PATH>
Project uses prettier for code formatting (npm run format:code
and package.json has more options).
npm test
coming soon...
This roadmap is organized into stages of development, leading towards a backend for (mostly) real-time collaboration.
- List and Load notebooks from S3
- Bucket, etc. loaded from configuration (e.g.
COMMUTER_BUCKET=xyz
) - Roles or Amazon environment variables automatically picked up (via
aws-sdk
)
- Bucket, etc. loaded from configuration (e.g.
- Tree view of notebook content
- Render page using notebook-preview
- Start outlining an authentication and permissions strategy
- Provide/use kernels from configured source (e.g. tmpnb.org, jupyterhub, or your private setup)
- Render page using nteract/nteract components
- Save notebooks back to S3
- Delete notebooks
- Create server side in-memory model of notebook and transient models, push to clients