Лично пробовал jupyterhub, когда для VPN арендовал сервер в Германии и понял, что он бОльшую часть времени простаивает. К сожалению, из-за каких-то сложностей с websockets оно отвратительно работало в Google Chrome. Чистый jupyter таких проблем не давал.

Для заворачивания трафика к jupyter в HTTPS можно использовать nginx с такой конфигурацией:

##############################################
# python.example.com
##############################################

upstream notebook {
server localhost:8888;
}
server {
listen 80;
# listen [::]:80;
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/python.example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/python.example.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
if ($scheme != "https") {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name python.example.com;
# Jupyter:
location / {
proxy_pass http://notebook;
proxy_set_header Host $host;
}
location ~ /api/kernels/ {
proxy_pass http://notebook;
proxy_set_header Host $host;
# websocket support
proxy_http_version
proxy_set_header Upgrade "websocket";
proxy_set_header Connection "Upgrade";
proxy_read_timeout 86400;
}
location ~ /terminals/ {
proxy_pass http://notebook;
proxy_set_header Host $host;
# websocket support
proxy_http_version 1.1;
proxy_set_header Upgrade "websocket";
proxy_set_header Connection "Upgrade";
proxy_read_timeout 86400;
}
}


Letsencrypt подключается так:

apt-get install -y python-certbot-nginx nginx build-essential
mkdir -p /etc/letsencrypt

echo 'rsa-key-size = 4096
pre-hook = /sbin/iptables -I INPUT -p tcp --dport 443 -j ACCEPT && systemctl stop nginx
#post-hook = /sbin/iptables -D INPUT -p tcp --dport 443 -j ACCEPT
renew-hook = /usr/sbin/ipsec reload && /usr/sbin/ipsec secrets && systemctl start nginx
' > /etc/letsencrypt/cli.ini
certbot certonly --non-interactive --agree-tos --email you@example.com --standalone -d python.example.com


Последняя команда вносится в crontab, чтобы сертификаты перевыпускались регулярно.

Весьма рекомендуется дать Letsencrypt хотя бы баксов пять пожертвования: letsencrypt.org/donate
Только полноправные пользователи могут оставлять комментарии.
Войдите, пожалуйста.