{"id":13607218,"url":"https://github.com/ideonate/cdsdashboards","last_synced_at":"2025-04-04T19:11:58.626Z","repository":{"id":37423080,"uuid":"259650645","full_name":"ideonate/cdsdashboards","owner":"ideonate","description":"JupyterHub extension for ContainDS Dashboards","archived":false,"fork":false,"pushed_at":"2024-08-15T16:17:28.000Z","size":34137,"stargazers_count":203,"open_issues_count":36,"forks_count":37,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-28T18:12:40.027Z","etag":null,"topics":["bokeh","data-science","jupyter","jupyterhub","panel","plotly-dash","rshiny","streamlit","visualization"],"latest_commit_sha":null,"homepage":"https://cdsdashboards.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ideonate.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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}},"created_at":"2020-04-28T13:51:31.000Z","updated_at":"2025-03-08T09:15:06.000Z","dependencies_parsed_at":"2024-09-24T13:34:02.543Z","dependency_job_id":"a5dbb86b-f628-4ce8-9915-fefd9bdfe5a9","html_url":"https://github.com/ideonate/cdsdashboards","commit_stats":{"total_commits":440,"total_committers":14,"mean_commits":"31.428571428571427","dds":"0.26363636363636367","last_synced_commit":"2fe91866b1b6851058adc69114c77fe4ea934f32"},"previous_names":[],"tags_count":48,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideonate%2Fcdsdashboards","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideonate%2Fcdsdashboards/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideonate%2Fcdsdashboards/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideonate%2Fcdsdashboards/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ideonate","download_url":"https://codeload.github.com/ideonate/cdsdashboards/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247234922,"owners_count":20905854,"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":["bokeh","data-science","jupyter","jupyterhub","panel","plotly-dash","rshiny","streamlit","visualization"],"created_at":"2024-08-01T19:01:16.631Z","updated_at":"2025-04-04T19:11:58.610Z","avatar_url":"https://github.com/ideonate.png","language":"Python","funding_links":[],"categories":["Jupyter-Notebook分享与格式转换","Notebook Sharing \u0026 Conversion","Rendering/Publishing/Conversion"],"sub_categories":[],"readme":"# ContainDS Dashboards for JupyterHub\n\n\u003e [!WARNING]\n\u003e This code may still be useful to you, but please note it does not generally work with the latest versions of JupyterHub.\n\u003e Please try [jhub-apps](https://github.com/nebari-dev/jhub-apps) for a more active codebase (which might still need configuration and custom code for your setup).\n\nA Dashboard publishing solution for Data Science teams to share results with decision makers.\n\nRun a private on-premise or cloud-based JupyterHub with extensions to instantly publish apps and notebooks as user-friendly\ninteractive dashboards to share with non-technical colleagues.\n\nCurrently supported frameworks:\n- Jupyter notebooks ([Voilà](https://voila.readthedocs.io/en/stable/))\n- [Streamlit](https://streamlit.io/) apps\n- [Plotly Dash](https://plotly.com/dash/) apps\n- [Bokeh](https://docs.bokeh.org/) / [Panel](https://panel.holoviz.org/) apps and notebooks\n- [R Shiny](https://shiny.rstudio.com/) apps\n- Any custom server or framework\n\nThis open source package allows data scientists to instantly and reliably publish interactive\nnotebooks or other scripts as secure interactive web apps.\n\nSource files can be pulled from a Git repo or from the user's Jupyter tree.\n\nAny authorised JupyterHub user can view the dashboard, or choose to give permission only to named users.\n\nSee [full documentation](https://cdsdashboards.readthedocs.io/)\n\n\n## How it works\n\n- Data scientist creates a Jupyter Notebook as normal or uploads Python/R files etc\n- Data scientist creates a new Dashboard to clone their Jupyter server\n- Other logged-in JupyterHub users see the dashboard in their list\n- Click to launch as a server, using OAuth to gain access\n- User sees a safe user-friendly version of the original notebook - served by Voilà, Streamlit, Dash, Bokeh, Panel, R Shiny etc.\n\nAll of this works through a new Dashboards menu item added to JupyterHub's header.\n\n_Data scientist creates a Jupyter Notebook as normal_\n\n![Original Jupyter Notebook](./docs/_static/screenshots/1_Original_Jupyter_Notebook.png \"Original Jupyter Notebook\")\n\n_Data scientist creates a new Dashboard to clone their Jupyter server_\n\n![Create New Dashboard](./docs/_static/screenshots/2_Create_New_Dashboard.png \"Create New Dashboard\")\n\n\n_Other logged-in JupyterHub users see the dashboard in their list_\n\n![Other User sees dashboard](./docs/_static/screenshots/3_Other_User_sees_dashboard.png \"Other User sees dashboard\")\n\n_Uses OAuth to gain access_\n\n![Other user OAuths](./docs/_static/screenshots/5_Other_user_OAuths.png \"Other user OAuths\")\n\n_Other user sees a safe user-friendly Voilà version of the original notebook_\n\n![Voilà Dashboard](./docs/_static/screenshots/6_Voila_Dashboard.png \"Voilà Dashboard\")\n\n_Or other app frameworks_\n\n![App Collage](./docs/_static/screenshots/AppCollage.png \"App Collage\")\n\n\n## Requirements\n\nBasic requirements:\n\n- JupyterHub 1.x\n- Python 3.6+\n\nNote that JupyterHub 2.x is not supported. You will need to install a version 1.x (e.g. 1.5).\n\nYou should be able to use any authenticator for users to login - for example, corporate Google email sign in, or LDAP.\n\nAny JupyterHub distribution should be suitable, depending on configuration. See [requirements](https://cdsdashboards.readthedocs.io/en/stable/chapters/requirements.html).\n\n## Installation\n\nFull [Setup and Installation details](https://cdsdashboards.readthedocs.io/en/stable/chapters/setup/setup.html) are in the documentation.\n\n## Contact and Support\n\nPlease see LICENSE for details.\n\nPlease do get in touch if you try out the package, or would like to but need some support. I would be very interested to find out how it can be used, and to work (without charge) to help you get it running. The project needs feedback in order to develop further!\n\nContact [support@containds.com](mailto:support@containds.com) with any comments or questions at all.\n\nThere is a [Gitter room](https://gitter.im/ideonate/ContainDS?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge) for general chat with other community members, e.g. for confguration and use case tips.\n\n[![Join the chat at https://gitter.im/ideonate/ContainDS](https://badges.gitter.im/ideonate/ContainDS.svg)](https://gitter.im/ideonate/ContainDS?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n[![Documentation Status](https://readthedocs.org/projects/cdsdashboards/badge/?version=stable)](https://cdsdashboards.readthedocs.io/en/stable/?badge=stable)\n[![Latest release](https://img.shields.io/pypi/v/cdsdashboards?color=blue)](https://pypi.org/project/cdsdashboards/)\n[![Latest release](https://anaconda.org/conda-forge/cdsdashboards/badges/version.svg)](https://anaconda.org/conda-forge/cdsdashboards)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fideonate%2Fcdsdashboards","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fideonate%2Fcdsdashboards","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fideonate%2Fcdsdashboards/lists"}