{"id":16773282,"url":"https://github.com/aeksco/hackathon_jupyterhub","last_synced_at":"2026-04-09T12:15:25.347Z","repository":{"id":88680585,"uuid":"123068260","full_name":"aeksco/hackathon_jupyterhub","owner":"aeksco","description":"A hackathon-friendly JupyterHub deployment with Docker \u0026 NGINX.","archived":false,"fork":false,"pushed_at":"2020-07-05T23:58:55.000Z","size":32,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-23T03:46:02.126Z","etag":null,"topics":["jupyter-notebook","jupyterhub","jupyterhub-hackathon","nginx","open-data","pandas","python2","python3","r-notebook","tensorflow"],"latest_commit_sha":null,"homepage":null,"language":"Shell","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/aeksco.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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":"2018-02-27T03:38:31.000Z","updated_at":"2020-07-05T23:58:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"e397eb07-ea99-480a-8bb9-70736d114695","html_url":"https://github.com/aeksco/hackathon_jupyterhub","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aeksco%2Fhackathon_jupyterhub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aeksco%2Fhackathon_jupyterhub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aeksco%2Fhackathon_jupyterhub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aeksco%2Fhackathon_jupyterhub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aeksco","download_url":"https://codeload.github.com/aeksco/hackathon_jupyterhub/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243902288,"owners_count":20366260,"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":["jupyter-notebook","jupyterhub","jupyterhub-hackathon","nginx","open-data","pandas","python2","python3","r-notebook","tensorflow"],"created_at":"2024-10-13T06:45:18.506Z","updated_at":"2025-12-30T21:07:13.419Z","avatar_url":"https://github.com/aeksco.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jupyterhub_hackathon\nA hackathon-friendly JupyterHub deployment with Docker \u0026amp; NGINX.\n\nIncludes example Jupyter notebook to push data to MongoDB, and a [mongo-express](https://github.com/mongo-express) admin interface. Runs the [Jupyter Data Science Notebook](https://hub.docker.com/r/jupyter/datascience-notebook/) container with an installation of [Zipline](https://github.com/quantopian/zipline).\n\n## Instructions\n\n1. Clone this repository and `cd` into the directory:\n\n    `git clone https://github.com/aeksco/hackathon_jupyterhub.git`\n\n    `cd hackathon_jupyterhub`\n\n2. Create GitHub OAuth Application:\n\n    Go to [github.com/settings/developers](https://github.com/settings/developers) and create a new OAuth application.\n\n3. Create the `jupyterhub_config.py` file:\n\n    Copy the `jupyterhub/jupyterhub_config.example.py` file to `jupyterhub/jupyterhub_config.py`\n\n    Change the following fields to match your GitHub OAuth Application:\n\n      - `c.GitHubOAuthenticator.oauth_callback_url`\n      - `c.GitHubOAuthenticator.client_id`\n      - `c.GitHubOAuthenticator.client_secret`\n      - `c.Authenticator.whitelist = {'torvalds', 'aeksco'}`\n      - `c.Authenticator.admin_users = {'torvalds'}`\n      - `c.JupyterHub.base_url = '/jupyterhub'`\n\n4. Create the `jupyterhub/internals/users.txt` file:\n\n    Copy the `jupyterhub/internals/users.example.txt` file to `jupyterhub/internals/users.txt`\n\n    This file should contain the GitHub usernames of all users who will be using the system. Every user defined in `jupyterhub_config.py` must be listed here for the server to work properly. Please ensure that there is no trailing whitespace or newlines in this file!\n\n5. Start the docker containers:\n\n    `docker-compose up`\n\n## Usage\n\n- Jupyter server running at [http://localhost:8888](http://localhost:8888)\n\n## Notes\n\n- You may run a command inside the `hackathon_jupyterhub` docker container as the root user with the following command:\n\n  `docker-compose run --user=\"root\" hackathon_jupyterhub pip install pandas`\n\n- Installation instructions for Python 2.7 Jupyter kernel were found [here](https://github.com/ozancaglayan/jupyterhub-installation).\n\n## Optional NGINX Configuration\n- Run the following to setup an NGINX reverse-proxy to the Jupyter Notebook server\n  ```\n  sudo apt-get update\n  sudo apt-get install nginx\n  ```\n\n- Copy the contents of `NGINX_EXAMPLE` into `/etc/nginx/sites-available/my_site`\n\n- Simlink the file from `sites-available` to `sites-enabled`\n\n  `ln -s /etc/nginx/sites-available/my_site /etc/nginx/sites-enabled/my_site`\n\n- Control NGINX with the following system commands:\n\n    ```\n    sudo systemctl start nginx\n    sudo systemctl stop nginx\n    sudo systemctl restart nginx\n    ```\n\n## Misc. Notes\n- Use [RSYNC](https://www.digitalocean.com/community/tutorials/how-to-use-rsync-to-sync-local-and-remote-directories-on-a-vps) to sync files into shared directory?\n\n- TODO - Preload examples, traning sets, datasets, images.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faeksco%2Fhackathon_jupyterhub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faeksco%2Fhackathon_jupyterhub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faeksco%2Fhackathon_jupyterhub/lists"}