Notebook Gallery image

Notebook Gallery

enterprise Jupyter notebook sharing and collaboration platform

From GitHub

Enterprise Jupyter notebook sharing and collaboration app

Front-end stack

Nothing special found.


Readme from GitHub

What is nbgallery?

nbgallery (notebook gallery) is an enterprise Jupyter notebook sharing and collaboration platform. For an overview, please check out our site.

nbgallery screenshot

Tony Hirst published a nice walkthrough of some of the features of nbgallery on his blog.

Getting Started


nbgallery is a Ruby on Rails application. You can run it with the built-in rails server command or with Rack servers like Puma or Passenger.

The nbgallery application requires a MySQL or MariaDB server. Other SQL-based servers may work but have not been tested. We recommend creating a separate mysql user account for use by the app.

The application also requires an Apache Solr server for full-text indexing. For small to medium instances (small thousands of notebooks and users), the bundled sunspot Solr server may suffice. Larger instances may require a standalone server. See our [notes](docs/ for more detail.


You can install nbgallery on various platforms:

  • [Install from source on Linux or Mac Homebrew](docs/
  • [Run with docker](docs/


Most configuration settings will should work out of the box, but there are a few things you'll need to set up. See our [configuration notes](docs/ for more detail.

Running the server

Once everything is configured, you're ready to go! See [this page](docs/ for details on starting up the app and shutting it down.

Jupyter integration

One of the benefits of nbgallery is its two-way integration with Jupyter. You can launch notebooks from nbgallery into Jupyter with a single click. Within Jupyter, the Gallery menu enables you to save notebooks to nbgallery and submit change requests to other notebook authors. See [this page](docs/ for more information.

Providing OAuth to JupyterHub

If you want to use NBGallery as your central login repository for your JupyterHub, you can configure NBGallery to operate as an OAuth2 provider. This will work for other applications as well, but for a detailed write-up of how it can be connected to JupyterHub, see [this page](docs/

Selected topics

Here is some documentation on various features of nbgallery:

  • Our notebook recommender system helps users find notebooks that are most relevant to them.
  • When [integrated with Jupyter](docs/, nbgallery can track cell executions to assess whether notebooks are healthy.
  • Our [notebook review system](docs/ helps build quality and user confidence through peer review of notebooks.
  • The [extension system](docs/ enables you to add custom/proprietary features that are specific to your enterprise.
  • Notebook revisions can be [tracked in git](docs/
  • [Notes on computation and cleanup jobs](docs/
  • [Notes on backing up nbgallery](docs/


Issues and pull requests are welcome. For code contributions, please note that we use rubocop ([our config](.rubocop.yml)), so please run overcommit --install in your project directory to activate the git commit hooks.