Сайты и приложения
Как выложить сайт на Python в интернет
Коротко
Чтобы выложить сайт на Python, соберите код в одну папку с requirements.txt и загрузите ее архивом или из GitHub. Netrun определит Python, установит зависимости и выдаст ссылку с HTTPS — без своего сервера, nginx и ручного сертификата. Подходят Flask, FastAPI и Django; приложение должно слушать адрес 0.0.0.0 и порт из переменной PORT.
- Netrun определяет Python-проект по файлу requirements.txt и сам устанавливает перечисленные в нем зависимости.
- Сайт на Flask, FastAPI или Django должен слушать адрес 0.0.0.0 и порт из переменной окружения PORT.
- Ключи API и строку подключения к базе Netrun спрашивает при настройке и хранит зашифрованными, а не в коде.
- Чтобы выложить новую версию сайта, достаточно обновить код в кабинете: Netrun пересоберет проект.
- На бесплатном тарифе сайт засыпает без посетителей и просыпается сам, а на тарифе Pro работает без сна.
Обычный путь публикации сайта на Python — арендовать сервер, поставить gunicorn или uvicorn, настроить nginx как прокси, получить сертификат для HTTPS и следить за всем этим. Много шагов до того, как сайт откроется по ссылке.
В Netrun достаточно загрузить код. Платформа определит, что это Python-проект, соберет его и выдаст рабочий адрес с HTTPS. Разберем по шагам.
Соберите проект#
Положите код в одну папку с файлом зависимостей requirements.txt. Подойдет любой фреймворк — Flask, FastAPI или Django. Убедитесь, что проект запускается локально.
Загрузите код в Netrun#
ZIP-архивом или импортом из GitHub-репозитория. Netrun определит Python и соберет проект сам — настраивать сборку вручную не нужно.
Ответьте на пару вопросов#
Если проекту нужны секреты — ключи API, строка подключения к базе данных — укажите их значения при настройке. Так они не лежат в коде.
Получите ссылку#
После сборки Netrun выдаст публичный адрес с HTTPS. Сайт доступен всем, кому вы дадите ссылку.
Обновляйте и следите#
Логи и статус — в кабинете. Чтобы выложить новую версию, обновите код, и Netrun пересоберет проект.
Сайт на Python в интернете — без сервера, nginx и ручного HTTPS. Аналогично разворачиваются проекты на Node.js, Go, PHP и других языках. Попробовать Netrun.
Частые вопросы
Какой фреймворк выбрать для первого сайта на Python?
Для небольшого сайта или API проще всего Flask или FastAPI: мало кода и быстрый старт. Django удобен, когда сразу нужны админка, пользователи и работа с базой данных. Публикуются все три одинаково.
Нужно ли загружать папку venv?
Нет. Достаточно файла requirements.txt: зависимости Netrun установит сам. Составить список можно командой pip freeze > requirements.txt в активированном окружении.
Почему сайт работает локально, а по ссылке нет?
Чаще всего приложение слушает 127.0.0.1 вместо 0.0.0.0 или порт прописан числом, а не берется из переменной PORT. Еще одна частая причина — в requirements.txt забыта библиотека. Подробности ошибки видны в логах в кабинете.
Сохранятся ли данные сайта после обновления кода?
Да, если приложение пишет их в постоянную папку /data: ее содержимое переживает обновление кода и перезапуск. Все, что записано вне /data, при следующей публикации пропадает.
Можно ли выложить на Python не сайт, а бота или скрипт?
Да. Если программа не слушает порт, Netrun запустит ее как фоновый процесс без ссылки. На бесплатном тарифе бот или скрипт работает ограниченное время, а круглосуточно — на тарифе Pro.