Jupyter для ML и ИИ на VPS: полная настройка
JupyterLab превращает удалённый сервер в интерактивную ML-лабораторию: экспериментируешь с моделями и данными из браузера, а тяжёлые вычисления идут на сервере. Настроим безопасно и правильно.
Содержание
Ставим JupyterLab
['Работаем в изолированном окружении, чтобы не засорять систему:', 'apt update && apt install -y python3-venv python3-pip\npython3 -m venv ~/jlab && source ~/jlab/bin/activate\npip install -U jupyterlab numpy pandas scikit-learn matplotlib', 'Генерируем конфиг и задаём пароль (хэш, а не открытый пароль в конфиге):', 'jupyter lab --generate-config\njupyter lab password']
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.
Арендовать VPS для JupyterБезопасный доступ через SSH-туннель
['Самый безопасный способ — не открывать Jupyter в интернет вовсе, а пробрасывать порт через SSH. Запускаем Jupyter только на localhost сервера:', 'jupyter lab --no-browser --ip=127.0.0.1 --port=8888', 'А на своём компьютере создаём туннель и открываем localhost:8888 в браузере:', 'ssh -N -L 8888:127.0.0.1:8888 user@your-server-ip', 'Теперь Jupyter доступен только тебе, порт наружу не торчит — атаковать нечего.']
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Вариант с nginx и HTTPS
['Если нужен постоянный доступ по домену, ставим nginx как обратный прокси с бесплатным сертификатом:', 'apt install -y nginx certbot python3-certbot-nginx\ncertbot --nginx -d jupyter.example.com', 'Прокидываем на Jupyter, не забыв про WebSocket-заголовки (без них ядра не подключатся):', 'location / {\n proxy_pass http://127.0.0.1:8888;\n proxy_set_header Host $host;\n proxy_http_version 1.1;\n proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection "upgrade";\n}']
Автозапуск через systemd
['Чтобы Jupyter поднимался после перезагрузки и не умирал с закрытием SSH, оформляем сервис. Создай /etc/systemd/system/jupyter.service:', '[Unit]\nDescription=JupyterLab\nAfter=network.target\n\n[Service]\nUser=mluser\nExecStart=/home/mluser/jlab/bin/jupyter lab --no-browser --ip=127.0.0.1\nRestart=always\n\n[Install]\nWantedBy=multi-user.target', 'systemctl daemon-reload\nsystemctl enable --now jupyter\nsystemctl status jupyter']
Почему VPS, а не ноутбук
['Ноутбук греется и садит батарею на тяжёлых расчётах, засыпает и рвёт эксперименты. Сервер работает 24/7, доступен с любого устройства и не зависит от твоей сети.', 'Для ML важны быстрая память и диск: датасеты читаются с накопителя, модели грузятся в RAM. На тарифах MAATRIX с AMD EPYC + NVMe pandas-операции над крупными датафреймами и загрузка моделей идут заметно бодрее, чем на типичном бюджетном хостинге, а ежедневные бэкапы страхуют результаты экспериментов.', 'Отдельный бонус — можно запустить долгий расчёт или обучение, закрыть ноутбук и уйти. Сервер продолжит считать, а результат заберёшь позже. Плюс к серверу удобно подключить VS Code по SSH или Remote-туннель и работать в привычном редакторе, а ядро при этом крутится на мощном железе, а не на локальной машине.']Частые ошибки
['- Открывают Jupyter на 0.0.0.0 без пароля — сервер за часы находят боты и используют под майнинг.
- Забывают WebSocket-заголовки в nginx — интерфейс грузится, но ядро не подключается.
- Запускают Jupyter в сессии SSH без systemd — закрыл терминал, процесс умер.
- Ставят пакеты в системный Python и ломают зависимости ОС.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.
Арендовать VPS для JupyterНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
Как безопасно открыть Jupyter на сервере?
Лучший способ — SSH-туннель: Jupyter слушает только localhost, а вы пробрасываете порт через ssh -L. Порт наружу не открывается вовсе.
Нужен ли домен для Jupyter?
Нет. Через SSH-туннель домен не нужен. Домен и HTTPS через nginx+certbot удобны, если нужен постоянный доступ из браузера без туннеля.
Почему ядро не подключается через nginx?
Обычно не проброшены WebSocket-заголовки Upgrade и Connection. Добавьте их в блок location и перезапустите nginx.
Как сделать, чтобы Jupyter работал постоянно?
Оформите его как systemd-сервис с Restart=always и enable. Тогда он поднимется после перезагрузки и переживёт разрыв SSH.