Skip to content

A configuration for a JupyterHub+DockerSpawner+CASAuthenticator server with Traefik proxy, based on docker-compose

License

Notifications You must be signed in to change notification settings

matuszko/jupyterhub-docker

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JupyterHub - Docker

Uruchomienie

docker-compose build

docker-compose run -d

Dostęp do JupyterHuba: https://{nazwa_hosta} (domyślnie port 80 HTTP jest wyłączony, przez co wymaga użycia HTTPS)

Konfiguracja

Przed pierwszym uruchomieniem wymagane jest skonfigurowanie środowiska. W tym celu należy edytować plik .env a w nim zmienić wartości zmiennych środowiskowych.

Dodatkowo wymagane jest wgranie certyfikatów TLS do /app/proxy/certs/ (korzystając z nazewnictwa plików: cert-host-key.pem oraz cer-host.pem).

Traefik sam generuje certyfikaty TLS, więc nie jest wymagane ich wgranie. Konifugracja adresu email administratora dla którego jest generowany certyfikat w pliku /app/proxy/traefik.yml

Ustalenie administratora odbywa się w pliku /app/jupyterhub/jupyterhub_config.py w zmiennej c.Authenticator.admin_users. W celu ustawienia osoby z organizacji jako administratora należy dodać jej adres email do tej zmiennej. (np. [email protected])

Osobne katalogi dla użytkowników

W trakcie pracy

W celu rozdzielenia danych użytkowników na nauczycieli oraz studentów, system wykrywa przedrostek @stud.prz.edu.pl oraz @prz.edu.pl, a następnie dzieli użytkowników na dwie grupy. Odbywa się to w pliku /app/jupyterhub/config.py, w funkcji MyDockerSpawner.

TODO

Projekt

  • Przygotowanie pliku docker-compose.yml
  • Uporządkowanie struktury projektu

JupyterHub

  • Przygodowanie dla uwierzytelniania CAS
  • Przygotowanie pliku juptyerhub_config.py
  • Zmiana katalogu z danymi użytkowników
  • Dodanie obsługi kursów
  • Problem z uprawnieniami do katalogów użytkowników Tu występuje taki sam błąd

Proxy

  • Przygotowanie pliku traefik.yml
  • Dodanie obsługi HTTPS
  • Konfiguracja certyfikatów
  • Automatyczne generowanie certyfikatów

Notebook

  • Naprawa braku uprawnień przy tworzeniu nowego notebooka
  • Dodanie jądra Julii i R
  • Dodanie obsługi C++
  • Przygotowanie pliku z paczkami pythona

Struktura repozytorium

JupyterHub
├── .env
├── README.md
├── docker-compose.yml
├── app
│   ├── jupyterhub
│   │   ├── Dockerfile
|   |   └── jupyterhub_config.py
│   |── jupyterlab
│   |   └── Dockerfile
|   |── proxy
│   |   |── Dockerfile
│   |   |── traefik.yml

Dokumentacja

1. JupyterHub

Wersja: jupyterhub/jupyterhub:3.1.1

(Znajduje się w /app/jupyterhub/Dockerfile oraz konfiguracja w /app/jupyterhub/jupyterhub_config.py)

JupyterHub config file

2. Proxy

Wersja: traefik:v2.9

Konfiguracja pliku TLS, musi znajdować się w osobnym pliku!, w tym przypadku jest to tls.yml

(Znajduje się w /app/proxy/Dockerfile oraz konfiguracja w /app/proxy/traefik.yml)

Traefik documentation

Traefik config entry poionts

3. Notebook

Wersja: jupyter/scipy-notebook:hub-3.1.1

(Znajduje się w /app/jupyterlab/Dockerfile)

Building Docker image for Jupyter Notebook

Datascience-notebook

4. JHubAuthenticators - CAS Authentication

Wersja: jhubauthenticators==1.0.2

(Znajduje się w /app/jupyterhub/Dockerfile oraz konfiguracja w /app/jupyterhub/jupyterhub_config.py)

CAS authenticator

5. JupyterHub Idle Culler Service

Wersja 1.2.1

(Znajduje się w /app/jupyterhub/Dockerfile oraz konfiguracja w /app/jupyterhub/jupyterhub_config.py)

JupyterHub Idle Culler Service

6. Docker-compose with let's encrypt: TLS Challenge

Konfiguracja automatycznego generowania certyfikatów TLS, oparta na wykorzystaniu Let's Encrypt.

Docker-compose with let's encrypt: TLS Challenge

About

A configuration for a JupyterHub+DockerSpawner+CASAuthenticator server with Traefik proxy, based on docker-compose

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 79.7%
  • Dockerfile 20.3%