Skip to content

nbgallery/nbgallery

Repository files navigation

What is nbgallery?

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

nbgallery screenshot

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

Getting Started

Requirements

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 for more detail.

Installation

You can install nbgallery on various platforms:

Configuration

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 for more detail.

Running the server

Once everything is configured, you're ready to go! See this page 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 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.

Selected topics

Here is some documentation on various features of nbgallery:

Contributions

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