• Stars
    star
    493
  • Rank 89,306 (Top 2 %)
  • Language
    JavaScript
  • License
    BSD 3-Clause "New...
  • Created almost 8 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

๐ŸšŽ Notebook sharing hub

Glitch Deployed styled with prettier

comยทmutยทer

/kษ™หˆmyoอžodษ™r/ a person who travels some distance to work on a regular basis.

As commuters, we rush around from place to place all day. We go to work, school, and stores. We travel to locations near and far. Eventually, we return to our cozy home. ๐Ÿš— ๐Ÿข โœˆ๏ธ ๐Ÿ—ผ ๐Ÿš„ ๐Ÿฌ ๐ŸšŒ ๐Ÿซ ๐Ÿšฒ ๐ŸŒ† ๐Ÿƒ ๐Ÿก

Like commuters, our data travels around too. Sometimes we need a notebook at work and other times at a client's site. Wherever and whenever you need your notebooks, commuter has you covered.

What is "commuter"?

As an opinionated nteract focused server, commuter reads notebooks from a local directory or Amazon S3, has a directory explorer to find notebooks, and provides a jupyter compatible version of the contents API. You determine where your notebooks should reside and where they should be shared. Flexibility and convenience.

commuter

Try commuter today and take your notebooks wherever you need them.

Installation

You may use whichever package manager (npm or yarn) best suits your workflow. The nteract team internally uses yarn.

npm install @nteract/commuter -g
# OR
yarn global add @nteract/commuter

Usage

Configure and run commuter with environment variables and commuter server.

Example local run (using a network file share!):

COMMUTER_LOCAL_STORAGE_BASEDIRECTORY=/efs/users/ commuter

Example S3 run:

COMMUTER_BUCKET=sweet-notebooks commuter

Environment Variables

General Environment Variables

Environment Variable Description Default
COMMUTER_STORAGE_BACKEND local, s3, or gcs local
COMMUTER_DISCOVERY_BACKEND either elasticsearch or none "none"
COMMUTER_PORT Port to run commuter on 4000
COMMUTER_LOCAL_STORAGE_BASEDIRECTORY directory to serve in local storage mode process.cwd()
COMMUTER_ES_HOST ElasticSearch Host ""

Environment Variables for S3 Storage

Authentication to S3 is using CredentialProviderChain with default providers. This supports the most common ways of authenticating in AWS.

Environment Variable Description Default
AWS_ACCESS_KEY_ID Specifies an AWS access key associated with an IAM user or role. Optional
AWS_SECRET_ACCESS_KEY Specifies the secret key associated with the access key. This is essentially the "password" for the access key. Optional
AWS_SESSION_TOKEN Specifies the session token value that is required if you are using temporary security credentials. Optional
AWS_PROFILE Specifies the name of the profile with the credentials and options to use. This can be the name of a profile stored in a credentials or config file default
COMMUTER_S3_BASE_PREFIX prefix on the bucket, similar to base directory ""
COMMUTER_S3_PATH_DELIMITER separator for "paths" "/"
COMMUTER_BUCKET bucket contents served from Required in S3 mode, no default
COMMUTER_S3_ENDPOINT S3 endpoint Optional, selected automatically
COMMUTER_S3_FORCE_PATH_STYLE Set to true to activate s3ForcePathStyle. Forces path-style URLs for s3 objects, therefore URLs will be in the form <endpoint>/<bucket>/<key> instead of <bucket>.<endpoint>/<key> false

Environment Variables for Google Storage

Environment Variable Description Default
GOOGLE_APPLICATION_CREDENTIALS file path of the JSON file that contains your service account key ""
COMMUTER_BUCKET GCS bucket name without "gs://" prefix Required
COMMUTER_GCS_PATH_DELIMITER separator for "paths" "/"
COMMUTER_GCS_BASE_PREFIX prefix on the bucket, similar to base directory ""

Roadmap

ROADMAP Document

Development

Quick Start

  1. git clone [email protected]:nteract/commuter.git
  2. cd commuter
  3. yarn
  4. yarn dev
  5. open http://localhost:4000

Dev Docker

A Dockerfile for a local dev server can be use as follows:

  1. docker build --tag commuter:dev --file Dockerfile.dev .
  2. Run this:
docker run \
    --init \
    --interactive \
    --tty \
    --rm \
    --publish 4000:4000 \
    --mount type=bind,source=(pwd),target=/app \
    --env COMMUTER_LOCAL_STORAGE_BASEDIRECTORY=/app/examples \
    commuter:dev

Tests

There are three ways you can run tests:

  • If you have your environment set up, you can run tests locally via yarn test.
  • This repository is also set up with GitHub Actions, a builtin CI system, which will automatically trigger test builds for multiple Node versions upon every push into this repository. You can then check out the results in the Actions tab.
  • These GitHub Actions can be triggered locally using act, this way you don't have to have your JavaScript environment set up and you don't have to commit and push in order to run the tests remotely through GitHub.

Deployment

  1. Install commuter cli yarn add @nteract/commuter
  2. exec commuter - the service is typically wrapped inside daemontools

Deployment (Docker / Kubernetes)

A Dockerfile intended for Production use (suitable for Kubernetes or other container runtime) has been contributed. Instructions are below.

Note: there is no officially published Docker image at this time, you should publish it to your own image registry.

  1. Build and tag image docker build --tag commuter:latest .
  2. Image can be executed as follows:
docker run \
--publish 4000:4000 \
--mount type=bind,source=/home/username/work/commuter/examples,target=/examples \
--env COMMUTER_LOCAL_STORAGE_BASEDIRECTORY=/examples \
commuter:latest

More Repositories

1

nteract

๐Ÿ“˜ The interactive computing suite for you! โœจ
TypeScript
6,204
star
2

papermill

๐Ÿ“š Parameterize, execute, and analyze notebooks
Python
5,960
star
3

hydrogen

:atom: Run code interactively, inspect data, and plot. All the power of Jupyter kernels, inside your favorite text editor.
TypeScript
3,924
star
4

semiotic

A data visualization framework combining React & D3
JavaScript
2,434
star
5

testbook

๐Ÿงช ๐Ÿ“— Unit test your Jupyter Notebooks the right way
Python
418
star
6

scrapbook

A library for recording and reading data in notebooks.
Python
281
star
7

vdom

๐ŸŽ„ Virtual DOM for Python
Jupyter Notebook
222
star
8

bookstore

๐Ÿ“š Notebook storage and publishing workflows for the masses
Python
202
star
9

data-explorer

The Data Explorer is nteract's automatic visualization tool.
TypeScript
103
star
10

sidecar

๐Ÿšค Little side display of Jupyter kernel rich output
JavaScript
90
star
11

ansi-to-react

๐Ÿ’‚โ€โ™‚๏ธ ANSI to React
TypeScript
88
star
12

nteract.io

๐Ÿ“ฃ Our site! ๐Ÿ“ฃ
JavaScript
44
star
13

dx

Data Explorer for Python
Python
37
star
14

create-nteract-app

โšก Create an nteractive application with zero configuration
JavaScript
35
star
15

pick

โ› Customize your kernels on Launch!
Jupyter Notebook
32
star
16

semiotic-docs

Docs for using Semiotic
JavaScript
32
star
17

commutable

โ™ป๏ธ Operations for Immutable Notebook Documents
29
star
18

mathjax-electron

๐Ÿ”ฃ:electron: A trimmed down version of the MathJax library for use with electron and modern browsers
JavaScript
28
star
19

examples

Example nteract notebooks with links to execution on mybinder.org
Jupyter Notebook
27
star
20

outputs

A collection of React components for displaying rich Jupyter display objects
TypeScript
26
star
21

nteract-next

Iterating on the next version of nteract
TypeScript
22
star
22

coffee_boat

โ˜•โ›ตWIP PySpark dependency management
Jupyter Notebook
22
star
23

docs

๐Ÿ– User written and user focused documentation for working with nteract! Join us!
HTML
18
star
24

nes

๐ŸŽฎ Notebook Enterprise Summit
18
star
25

initiatives

๐Ÿ“‘ Top level initiatives that our team is working on
17
star
26

spawnteract

๐Ÿšธ Spawn Jupyter Kernels
JavaScript
15
star
27

mathjax

React context wrapper around the MathJax API
TypeScript
15
star
28

papermillr

R bindings for papermill
R
14
star
29

notebook-preview

๐ŸŽฅ [DEPRECATED] Lightweight preview of a notebook, nteract style
JavaScript
14
star
30

global-sprint

๐ŸŒ Build. Share. Learn. ๐Ÿ—“ July 28 - August 3 2018
13
star
31

ick

๐Ÿฎ Interactive Console Experiments
JavaScript
13
star
32

rx-jupyter

๐ŸŽˆ RxJS 5 bindings for the Jupyter Notebook API
13
star
33

play

The code base for the nteract Play app
JavaScript
13
star
34

transformime

๐Ÿšš Mimetype + data -> HTMLElement
13
star
35

ion

A React-backed UI Toolkit
JavaScript
12
star
36

snakestagram

๐Ÿ ๐Ÿ“ฆ Snake in a box, conda environments to go
Shell
12
star
37

docs-old

๐Ÿ“” docs are awesome DEPRECATED - ARCHIVE ON 11-30-2018
12
star
38

kernel-relay

kernel-relay is a GraphQL service for interfacing with one or more Jupyter kernels
TypeScript
12
star
39

term-launcher

๐Ÿ’ป ๐Ÿš€ Launch terminals and jupyter consoles from node.
JavaScript
10
star
40

enchannel

๐Ÿ’ฑ standardizing how a frontend communicates with a kernel
JavaScript
10
star
41

kernelspecs

๐Ÿ“‡ Find Jupyter kernelspecs on a system
JavaScript
9
star
42

markdown

A package for rendering Markdown within Jupyter notebooks
TypeScript
9
star
43

meeting-minutes

๐Ÿ“ Minutes from nteract monthly contributor meeting; reports and metrics
9
star
44

cabinet

๐Ÿ“• Exploring a new notebook container format
9
star
45

jupyter-paths

๐ŸŒ‡ Pure JavaScript implementation of jupyter --paths --json
JavaScript
9
star
46

oauth-server

๐Ÿ” Little OAuth Handler for Gist Publishing
JavaScript
8
star
47

react-jupyter-display-area

๐Ÿ“Š Jupyter Display Area as a React Component
7
star
48

improved-spark-viz

๐Ÿผ WIP Improved visualizations in Spark
Python
7
star
49

jupyter-display-area

๐Ÿšซ Prototype Web Component for Jupyter Display Areas
JavaScript
6
star
50

logos

โœจ A place to collaborate on nteract logos โœจ
TypeScript
6
star
51

ipypandex

A package for automatically turning on Data Explorer in Pandas for an IPython Jupyter kernel.
Python
6
star
52

transformime-react

๐Ÿšซ Mimetype + data -> React Element
5
star
53

jupyer-go-api

Jupyter API server implemented in Go
Go
5
star
54

enchannel-zmq-backend

ZeroMQ backend implementation for enchannel
TypeScript
5
star
55

graphql-schema-exploration

Exploring a GraphQL schema for notebooks
TypeScript
5
star
56

education

Developing strategies, designs, and curriculum to reach more and teach more
4
star
57

nteract.github.io

:octocat: GitHub Pages for nteract *** DEPRECATED - See https://github.com/nteract/nteract.io ***
CSS
4
star
58

any-vega

Interface with any vega or vega-lite version
JavaScript
4
star
59

galleria

GitHub bot that uploads screenshots from PR builds
JavaScript
4
star
60

ui-refresh

TypeScript
4
star
61

nteract-monthly-newsletter

Plain-text versions of the nteract monthly newsletter
3
star
62

inodejs

Experimenting with jp-kernel
Jupyter Notebook
3
star
63

notebook-render

TypeScript
3
star
64

minimal-plotly

๐Ÿ“Š A minimal version of the plotly library
JavaScript
3
star
65

commuter-on-glitch

Running commuter on glitch.me
3
star
66

jupyter-kernel-launcher

Launches Jupyter kernels from a Node environment
CoffeeScript
3
star
67

libzmq-win

๐Ÿ“ฆ Windows binaries of the ร˜MQ library
3
star
68

directory-listing

A set of React components for creating directory list views in nteract-based applications
TypeScript
3
star
69

design

โœ๏ธ Mocking up nteract UI and UX
3
star
70

transformime-jupyter-transformers

๐Ÿšซ Transformers for Jupyter-specific MIME types.
JavaScript
3
star
71

desktop-integration-tests

Testing nteract for desktop on the regular with a full test suite
Jupyter Notebook
2
star
72

ipython-paths

๐ŸŒ† Paths for IPython before Jupyter 4.0
JavaScript
2
star
73

jupyter-session

A tool for interacting with Jupyter kernels
CoffeeScript
2
star
74

models

Exploring the Python side of nteract's setIn based models
2
star
75

specs

๐Ÿ“‘ Specifications for APIs, processes, and protocols.
2
star
76

zmq-static

๐Ÿšซ Statically linked bindings for node.js and io.js to ZeroMQ
JavaScript
2
star
77

associator

๐Ÿ‘ฅ Associates file extensions to an application
JavaScript
2
star
78

content-providers

A collection of content providers for accessing notebooks in different storage locations
2
star
79

notebook-test-data

๐Ÿ“š Jupyter notebook test data. Feel free to add more!
Jupyter Notebook
2
star
80

transformime-commonmark

๐Ÿšซ Transformer using commonmark.js
JavaScript
2
star
81

dx_jlab

dx on JupyterLab
Python
1
star
82

assets

๐Ÿ“ฆ static assets for nteract/nteract
CSS
1
star
83

enchannel-in-memory

๐Ÿ’ป In memory enchannel backend
1
star
84

octicons

GitHub Octicons set packaged as React components.
TypeScript
1
star
85

vega-embed-v2

Bundled embedded Vega 2 and Vega-Lite 1
JavaScript
1
star
86

commutable-perf

๐Ÿข Addressing performance of the commutable library
Python
1
star
87

naming

๐Ÿ“› Shipping releases with style
1
star
88

ui-web

UI Repo for web and play components.
TypeScript
1
star
89

fs-observable

An Observable wrapper around Node's fs APIs
TypeScript
1
star
90

enchannel-socketio-backend

๐Ÿ”Œ enchannel powered by socket.io, to be used with kernel-relay
JavaScript
1
star
91

styled-blueprintjsx

npm package that wraps Blueprint stylesheets as a styled-component global style to avoid needing a CSS loader
TypeScript
1
star
92

design-docs

Design docs for the nteract ecosystem
1
star
93

jupyter-transport-wrapper

A thin wrapper abstracting over ZMQ and (evenutally) websockets for Jupyter
JavaScript
1
star
94

commutable-models

โ™ป๏ธ ๐Ÿ“˜ Experimenting with commutable and flow-immutable-models
JavaScript
1
star