Сайты и приложения
Бесплатный хостинг для сайта на Python: Flask, Django, FastAPI
Коротко
Сайт на Flask, Django или FastAPI можно бесплатно разместить в Netrun: загрузите папку с кодом и requirements.txt архивом или из GitHub, и платформа сама установит зависимости, запустит приложение и выдаст ссылку с HTTPS. Один сайт на бесплатном тарифе работает без ограничения по времени и без привязки карты. Приложение должно слушать адрес 0.0.0.0 и порт из переменной окружения PORT, а когда посетителей нет, сайт засыпает и просыпается сам при первом заходе.
- Netrun бесплатно запускает сайты на Flask, Django и FastAPI без ограничения по времени.
- Для запуска сайта на Python достаточно папки с кодом и файла requirements.txt — сервер и nginx настраивать не нужно.
- Сайт на Python должен слушать адрес 0.0.0.0 и порт из переменной окружения PORT.
- Данные, которые сайт записывает в папку /data, сохраняются при обновлении кода и при засыпании.
- На бесплатном тарифе сайт засыпает без посетителей; без засыпания он работает на тарифе Pro.
С сайтом на Python все сложнее, чем со страничкой из HTML: его нельзя просто положить файлами на хостинг, его нужно запустить. Поэтому большинство бесплатных хостингов для сайтов Python не подходят вовсе, а те, что подходят, дают пробный месяц, просят карту зарубежного банка или ждут, что вы сами настроите gunicorn, nginx и сертификат.
Ниже — как выложить сайт на Flask, Django или FastAPI бесплатно и надолго: что поправить в коде перед загрузкой, как опубликовать и какие ограничения у бесплатного тарифа.
| Что проверить | Почему это важно | Как в Netrun |
|---|---|---|
| Срок | Многие бесплатные тарифы — пробный период на месяц | Без срока, сайт не выключат |
| Карта | Зарубежные платформы требуют карту для подтверждения | Не нужна |
| Настройка сервера | gunicorn, nginx и сертификат обычно настраивают руками | Платформа делает это сама |
| HTTPS | Без него браузер пугает посетителей предупреждением | Сразу, сертификат продлевается сам |
| Данные | SQLite в контейнере пропадает при обновлении | Папка /data переживает обновления |
| Засыпание | Первый ответ после паузы медленнее | Просыпается за пару секунд, на Pro не спит |
Запишите зависимости в requirements.txt#
Платформа устанавливает ровно то, что перечислено в requirements.txt. Проверьте, что там есть сам фреймворк — flask, django или fastapi — и все, что вы импортируете в коде. Быстрее всего собрать список командой pip freeze в виртуальном окружении проекта. Забытая библиотека — самая частая причина, по которой сайт падает при первом запуске.
Слушайте 0.0.0.0 и порт из переменной PORT#
Встроенный сервер Flask и Django по умолчанию слушает 127.0.0.1 — такой адрес снаружи недоступен. Укажите host 0.0.0.0, а порт возьмите из переменной окружения PORT: в Flask это app.run(host="0.0.0.0", port=int(os.environ.get("PORT", 8080))), в FastAPI — тот же адрес и порт при запуске uvicorn. Для Django добавьте адрес сайта в ALLOWED_HOSTS или разрешите все адреса звездочкой.
Решите, где хранить данные#
Если сайт пишет в базу SQLite или сохраняет загруженные файлы, кладите их в папку /data: все, что там лежит, переживает обновление кода и засыпание сайта. Файлы рядом с кодом при следующей публикации заменятся новой версией. Для сайта без своих данных этот шаг можно пропустить.
Загрузите проект в Netrun#
Упакуйте папку с кодом в ZIP-архив без venv и __pycache__ или подключите репозиторий с GitHub. Netrun сам увидит, что это Python, определит фреймворк, установит зависимости и запустит приложение. Если код читает секреты — ключ от почты, пароль от внешней базы — платформа спросит их до публикации и подставит как переменные окружения.
Откройте ссылку и проверьте логи#
Когда сборка закончится, сайт откроется по ссылке с HTTPS. Если вместо страницы ошибка, загляните во вкладку логов: там видно, что напечатало приложение при запуске — неправильный адрес, забытую библиотеку или ошибку в коде. Исправьте и загрузите новую версию, ссылка останется прежней.
Бесплатный хостинг для сайта на Python не обязан быть пробным месяцем с настройкой сервера. В Netrun один сайт на Flask, Django или FastAPI работает бесплатно и без срока. Если сайту понадобится свой домен или ответ без паузы на пробуждение, переход на Pro ничего не меняет в коде.
Частые вопросы
Можно ли бесплатно разместить сайт на Django?
Да. Netrun запускает сайты на Django на бесплатном тарифе без ограничения по времени. Нужны requirements.txt, адрес 0.0.0.0, порт из переменной PORT и адрес сайта в ALLOWED_HOSTS.
Сколько будет работать бесплатный сайт на Flask?
Без срока. Бесплатный тариф Netrun — не пробный период: сайт не выключат через месяц. Когда посетителей нет, он засыпает и сам просыпается при первом заходе.
Нужно ли настраивать gunicorn и nginx?
Нет. Платформа сама запускает приложение, принимает посетителей и выдает сертификат для HTTPS. Если хочется запускать сайт через gunicorn или uvicorn — укажите это в своем Dockerfile, но для обычного сайта он не нужен.
Сохранится ли база SQLite?
Да, если файл базы лежит в папке /data: она переживает и обновление кода, и засыпание сайта. База рядом с кодом будет заменяться при каждой публикации.
Можно ли выложить сайт на Python с базой PostgreSQL?
Да. Базу можно подключить внешнюю по строке подключения из секретов или поднять рядом с сайтом в docker-compose. Для небольшого сайта часто хватает SQLite в папке /data.
Это бесплатный хостинг?
Для сайтов — да, и без срока: это не пробный период, бесплатный сайт не выключат через месяц. Карта не нужна, рекламы на сайте нет, ссылка сразу открывается по HTTPS. Сайт засыпает без посетителей и просыпается сам за пару секунд, когда его открывают. Бота и фоновый скрипт можно запустить и попробовать бесплатно в течение 3 часов — они заняты постоянно и спать не умеют, поэтому дальше им нужен тариф Pro. Если проектов нужно несколько, на тарифе Pro к нему докупаются места — каждое место дает еще один проект. Pro можно получить и бесплатно — приглашая друзей: за каждого друга, который опубликует проект, неделя Pro, до четырех недель в месяц.
Можно ли запустить проект на Python — Django, Flask или FastAPI?
Да. Положите зависимости в requirements.txt — Netrun определит Python и соберет проект сам. Django, Flask и FastAPI поддерживаются; приложение должно слушать порт из переменной окружения, а ключи и доступ к базе задаются как секреты, а не в коде.