Skip to content

Latest commit

 

History

History
108 lines (76 loc) · 4.07 KB

README.md

File metadata and controls

108 lines (76 loc) · 4.07 KB

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