{"id":20024368,"url":"https://github.com/suvarchal/nbapp","last_synced_at":"2025-12-30T21:37:18.955Z","repository":{"id":166963742,"uuid":"182971058","full_name":"suvarchal/nbapp","owner":"suvarchal","description":"Yet another jupyter notebook server for custom REST endpoints.","archived":false,"fork":false,"pushed_at":"2019-12-17T23:16:13.000Z","size":2219,"stargazers_count":2,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-04T00:46:19.472Z","etag":null,"topics":["binder","docker","flask","jupyter","jupyterhub","ramadda","traefik","vagrant"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/suvarchal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-04-23T08:35:43.000Z","updated_at":"2024-03-03T09:59:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"ba6dbc60-0d93-441c-aed9-c82d711b6157","html_url":"https://github.com/suvarchal/nbapp","commit_stats":null,"previous_names":["suvarchal/nbapp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/suvarchal/nbapp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suvarchal%2Fnbapp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suvarchal%2Fnbapp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suvarchal%2Fnbapp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suvarchal%2Fnbapp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/suvarchal","download_url":"https://codeload.github.com/suvarchal/nbapp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suvarchal%2Fnbapp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266221412,"owners_count":23894966,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["binder","docker","flask","jupyter","jupyterhub","ramadda","traefik","vagrant"],"created_at":"2024-11-13T08:50:14.105Z","updated_at":"2025-12-30T21:37:18.921Z","avatar_url":"https://github.com/suvarchal.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## nbapp -- Yet another [Jupyter][jupyter] notebook server for custom [REST][REST] endpoints.\n\nThis _framework_ uses dynamic reverse proxy (using _[Traefik][traefik]_) to expose containerized [Jupyter][jupyter] notebook servers in response to custom [REST][REST] endpoints. This helps to build [Binder][binder]-like abilities for a custom notebook repository or [REST][REST] endpoints. This can lead to simplified deployments then using [Jupyter Hub][jupyterhub] in certain use cases.\n\n\nAs an example: nbapp integrated with a scientific content management system, [RAMADDA](https://www.geodesystems.com), lets its users interact with the published [Jupyter][jupyter] notebooks with a click: Any Jupyter notebook on http://weather.rsmas.miami.edu/repository or https://unidata.github.io/drilsdown/examples.html can be made online with a click.\n\n![preview_nbapp](https://github.com/suvarchal/nbapp/blob/master/docs/preview_nbapp.gif \"nbapp preview with RAMADDA\").\n\n### Framework:\nA python-flask app (_[nbapp](https://github.com/suvarchal/nbapp/tree/master/nbapp)_), defines routes to spawn dockerized Jupyter notebook servers with labels that lets [traefik][traefik] to reverse proxy dynamically to the notebook server.\n\nAlthough traefik and flask can run natively on linux servers, entire deployment is packaged in containers for ease of deployment using [docker-compose](https://docs.docker.com/compose/). Read section below for deployment.\n\n### Deployment:\nDirectory [deploy](https://github.com/suvarchal/nbapp/tree/master/deploy) contains example deployments.\n\n* Directory [traefik](https://github.com/suvarchal/nbapp/tree/master/deploy/traefik) contains docker compose files (with commentary for modifications) for some use cases. In simplest case it amounts to `docker-compose up -d` for deployment.\n\n    If you have docker-hub account [![Try in PWD](https://raw.githubusercontent.com/play-with-docker/stacks/master/assets/images/button.png)](https://labs.play-with-docker.com/?stack=https://raw.githubusercontent.com/suvarchal/nbapp/master/deploy/traefik/docker-compose.yml)\n\n\n* For Virtual Machine based deployments, a Vagrantfile sample is provided in [deploy](https://github.com/suvarchal/nbapp/tree/master/deploy). This is based on virtual box as a provider but it can be adapted to other [Vagrant][vagrant] providers.\n\n\n* If nginx or apache are used as webserver, sample configurations are provided (with SSL termination) in [deploy][deploy] directory using _mylabserver.com_ as an example host.  \n\n\u003ePlease raise an [issue](https://github.com/suvarchal/nbapp/issues) about your deployment needs or questions. We might be able to provide support.\n\n\n\n[jupyter]: https://jupyter.org/\n[jupyterhub]: https://jupyter.org/hub\n[REST]: https://en.wikipedia.org/wiki/Representational_state_transfer\n[RAMADDA]: https://www.geodesystems.com\n[binder]: https://binder.pangeo.io\n[traefik]: https://traefik.io\n[vagrant]: https://www.vagrantup.com/\n[deploy]: https://github.com/suvarchal/nbapp/tree/master/deploy\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuvarchal%2Fnbapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsuvarchal%2Fnbapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuvarchal%2Fnbapp/lists"}