Запит «хостинг для Python» ховає три різні задачі: сайт на Django чи Flask, API на FastAPI і Telegram-бот. Спільне в них одне: це процес, який має працювати постійно, а не PHP-скрипт, що хостинг запускає на кожен запит. Через це звичайний shared на cPanel, розрахований на сайти, підходить рідко, а VPS і PaaS майже завжди. Нижче: що потрібно застосунку, три шляхи, запуск бота, ціни з офіційних сторінок і чек-лист перед оплатою. Відповідні сервери зібрано в категорії хостинг для Python, VPS окремо порівняно в рейтингу VPS.
Про метод. 10 жовтня 2026 року ми відкрили сторінки цін Railway, DigitalOcean і Friendhosting та переписали тарифи так, як вони там показані. Сторінки Fornex і Vultr віддали нам помилку 403. Для Vultr ми взяли ставки з його публічного API тарифів, для Fornex ціну не наводимо: дивіться її на сайті.
Тарифи змінюються кілька разів на рік. Усі суми в статті — знімок за даними сайту провайдера, жовтень 2026; наші власні розрахунки позначено окремо. Перед оплатою відкрийте живу сторінку цін.
Що потрібно Python-застосунку від хостингу
PHP-сайт хостинг запускає сам: Apache чи PHP-FPM викликає скрипт на кожен запит. З Python інакше. Фреймворк не приймає з'єднання з інтернету, тому між ним і браузером потрібен сервер застосунків. Документація Django прямо попереджає: команда runserver — це легкий сервер для розробки, для продакшну вона не годиться.
Інтерфейсів між веб-сервером і Python два. WSGI — основний стандарт для синхронного коду, на ньому класично працюють Django і Flask. ASGI — асинхронний, його використовує FastAPI та асинхронна частина Django. Звідси й стек: WSGI-застосунок запускають через Gunicorn, ASGI — через Uvicorn (окремо або воркером під Gunicorn). Сам Gunicorn документація радить тримати за проксі й називає Nginx: з синхронними воркерами проксі має буферизувати повільних клієнтів, інакше сервер уразливий до DoS.
Кількість воркерів впливає на вибір тарифу. Gunicorn пропонує стартову формулу (2 × ядра) + 1 і зауважує, що навіть під велике навантаження зазвичай вистачає 4–12 воркерів. У FastAPI те саме робить прапорець: fastapi run --workers 4. Але кожен воркер — окремий процес із власною копією застосунку в пам'яті. Три воркери на одноядерному VPS з 1 ГіБ разом із PostgreSQL можуть упертися в пам'ять, тому починайте з двох і дивіться free -m під навантаженням.
Якщо Nginx віддає 502, а Gunicorn лише пише про запуск нового воркера, у FAQ Gunicorn першим підозрюваним названо OOM killer: ядро прибило процес через нестачу пам'яті. Перевірте dmesg до того, як міняти код.
Як розпізнати OOM у журналі ядра і чим його лікувати, розібрано в статті про OOM killer у Linux. Мінімум, який має дати хостинг:
- SSH і право ставити пакети: pip, venv (або poetry чи uv) і системні бібліотеки, потрібні для збірки колес.
- Процес, який живе постійно й переживає вихід із SSH та перезапуск сервера: systemd-юніт, supervisor або менеджер платформи.
- Reverse proxy і HTTPS: Nginx із сертифікатом на VPS, готовий домен із TLS на PaaS.
- База: SQLite для малого проєкту, PostgreSQL для решти.
Три шляхи: shared з Python, VPS і PaaS
| Критерій | Shared з Python (Passenger) | VPS | PaaS (Railway та аналоги) |
|---|---|---|---|
| Хто адмініструє | Хостер, ви користуєтеся панеллю | Ви: ОС, Nginx, оновлення | Платформа |
| Постійний процес (бот, воркер) | Зазвичай ні | Так | Так, окремим сервісом |
| WSGI / ASGI | WSGI | Обидва | Обидва, команду запуску задаєте ви |
| Оплата | Фіксована на місяць | Фіксована за сервер | За фактичне споживання |
| Підходить для | Малий Flask чи Django-сайт, бот на webhook | Усе, що росте | MVP, прототипи, малі сервіси |
| Головний ризик | Функцію не підключено, ліміти на процеси | Безпека й бекапи на вас | Рахунок росте разом із навантаженням |
Shared із Python: працює, але з застереженнями
У cPanel є застосунок «Setup Python App». Він з'являється там, де хостер встановив CloudLinux і Python Selector: WSGI-застосунки віддає Apache через модуль Passenger. Для маленького Flask чи Django-сайту це найпростіший старт: обираєте версію Python, папку застосунку й адресу, а Gunicorn і systemd не потрібні. Це опис за документацією CloudLinux і cPanel, а не за нашими замірами.
Застережень три. Функція є не в кожного хостера, і на shared її часто вмикають лише після звернення в підтримку. Passenger говорить мовою WSGI, тож асинхронний FastAPI доводиться загортати в адаптер, і перевага ASGI зникає. І головне: на shared зазвичай не дозволяють довгі фонові процеси, тому бот на long polling чи воркер Celery там не живуть. У нашому каталозі жодна картка shared-хостера прямо не заявляє підтримку Python, тому ми не називаємо «shared із Python» поіменно. Спитайте підтримку про три речі: чи є Python Selector, яка версія Python і що з фоновими процесами.
Є й спеціалізовані сервіси на кшталт PythonAnywhere. За його сторінкою цін (жовтень 2026) безкоштовний тариф Beginner дає один вебзастосунок, ліміт 100 CPU-секунд, без always-on tasks і з виходом в інтернет лише на список дозволених сайтів (api.telegram.org у ньому є). Платний Developer коштує $10 на місяць, з одним always-on task і без обмежень на вихідні запити. Для хобі-бота на webhook вистачає.
VPS: повний контроль і фіксована ціна
VPS — це Linux-сервер, на якому все ставите ви: потрібну версію Python, Nginx, systemd-юніт, PostgreSQL на тій самій машині. Так працює більшість продакшн-проєктів на Python. Мінус очевидний: оновлення, безпека й бекапи на вас. Натомість рахунок фіксований, а обмежень на процеси немає.
Старт за сторінками провайдерів. DigitalOcean: Basic Droplet $4 за 512 МіБ і 1 vCPU, $6 за 1 ГіБ і 25 ГіБ диска, $12 за 2 ГіБ; тарифікація посекундна з місячною стелею. Vultr: $5 за 1 vCPU, 1 ГБ RAM і 25 ГБ, $10 за 2 ГБ, $20 за 2 vCPU і 4 ГБ. Friendhosting: €4,99 за 1 vCPU, 1 ГБ і 10 ГБ NVMe, €9,49 за 2 vCPU, 2 ГБ і 20 ГБ NVMe. У Fornex тариф ми не наводимо, зате в каталозі там 7 днів тесту й 30 днів на повернення коштів: можна перевірити сервер під своїм застосунком. Що ще дивитися в конфігурації, розібрано в статті про вибір конфігурації VPS.
PaaS: деплой із Git без адміністрування
У PaaS ви підключаєте репозиторій, платформа збирає застосунок і запускає його. Railway для Python сама підбирає команду запуску: за документацією Railpack, для Django вона шукає manage.py і стартує Gunicorn, для FastAPI — Uvicorn. Якщо визначення не спрацювало, команду вписуєте в налаштуваннях сервісу. Платформа працює з PostgreSQL, MySQL і Redis та з фоновими процесами. Інші платформи цього типу зібрано в категорії PaaS.
Оплата йде за споживанням. Railway Hobby коштує $5 на місяць і включає $5 споживання, далі ви платите за ресурси: за ставками на сторінці це приблизно $20 за vCPU і $10 за ГБ RAM на місяць плюс $0.05 за ГБ вихідного трафіку. Наш розрахунок за цими ставками: бот, який тримає 256 МБ, дає близько $2.5 за пам'ять і копійки за CPU, тобто вкладається у включені $5. Сервіс, що постійно тримає 1 ГБ, обійдеться приблизно в $10 лише за RAM, дорожче за Droplet на $6 із тим самим гігабайтом. DigitalOcean App Platform простіший: контейнер на 1 vCPU і 512 МіБ коштує $5 на місяць, безкоштовних динамічних застосунків немає, а воркер тарифікується як звичайний контейнер.
Хостинг для Python із серверами в Європі
Європейський регіон дає коротший відгук для аудиторії з ЄС та України. Боту розташування майже неважливе: він ходить до серверів Telegram, а не до користувача. Для сайту й API різниця вимірюється десятками мілісекунд. Європейські майданчики мають такі хости з нашого каталогу:
| Хост | Тип | Європейські локації (картка каталогу) | Старт за офіційним прайсом |
|---|---|---|---|
| Fornex | VPS | Німеччина, Нідерланди, Іспанія, Швеція, Швейцарія | сторінка цін недоступна для перевірки |
| Friendhosting | VPS | Нідерланди, Болгарія, Польща, Чехія, Латвія, Швеція | €4,99 (1 vCPU, 1 ГБ, 10 ГБ NVMe) |
| DigitalOcean | VPS, App Platform | Нідерланди, Німеччина, Велика Британія | $6 (1 vCPU, 1 ГіБ, 25 ГіБ) |
| Vultr | VPS | Нідерланди, Німеччина, Велика Британія, Франція | $5 (1 vCPU, 1 ГБ, 25 ГБ) |
| Railway | PaaS | Амстердам (EU West) | Hobby $5, включає $5 споживання |
Якщо вам потрібен просто найдешевший європейський сервер, ціни різних провайдерів зведено в статті про найдешевший VPS у Європі, а про те, як обрати країну розміщення, — у гайді по VPS в Європі.
Хостинг для Telegram-бота: webhook чи long polling
Telegram дає боту два способи отримувати оновлення, і вони взаємовиключні: поки задано webhook, метод getUpdates не працює. Від вибору залежить, який хостинг вам потрібен.
| Long polling (getUpdates) | Webhook | |
|---|---|---|
| Як працює | Бот сам постійно питає Telegram. Параметр timeout за замовчуванням дорівнює 0 (short polling), документація радить таке лише для тестів | Telegram сам надсилає оновлення POST-запитом на ваш HTTPS-адрес |
| Що потрібно від хостингу | Процес, який не завершується: VPS, PaaS або always-on task | Публічний HTTPS-адрес на порту 443, 80, 88 або 8443; код живе у звичайному вебзастосунку |
| Домен і сертифікат | Не потрібні | HTTPS обов'язковий; самопідписаний сертифікат теж працює, якщо завантажити його при налаштуванні webhook |
| Якщо бот недоступний | Оновлення чекають на боці Telegram не довше 24 годин | Telegram повторює запит і після розумної кількості спроб припиняє, якщо відповідь не 2xx |
| Де запускати | VPS, PaaS, платний always-on task | Shared із Python, VPS, PaaS, безкоштовний вебзастосунок |
Практичний висновок для хостингу простий. Long polling потребує процесу, який живе постійно, тож іде на VPS, PaaS або платний always-on task. Webhook — це звичайний HTTP-обробник, саме він дозволяє тримати бота на shared із Python. Для production задайте secret_token: Telegram додає його в заголовок X-Telegram-Bot-Api-Secret-Token на кожен запит, і ви відсіюєте чужі виклики. Параметр max_connections (від 1 до 100, за замовчуванням 40) обмежує паралельні запити, на малому VPS його варто знизити. Відповідайте 200 одразу, а важку роботу віддавайте в чергу.
База даних і фонові задачі: PostgreSQL, Celery, Redis
SQLite вистачає боту з десятком користувачів, але вона допускає одного писаря за раз. Щойно з'являється кілька воркерів чи Celery, беріть PostgreSQL. На VPS він ділить пам'ять із застосунком, тож зазвичай це різниця між тарифом на 1 ГіБ і на 2 ГіБ. У PaaS база — окремий сервіс з оплатою за споживанням; DigitalOcean пропонує ще й керовані бази.
Для фонових задач Celery підтримує RabbitMQ, Redis і Amazon SQS як стабільні брокери, а RQ працює лише з Redis. Про Redis і його форк Valkey ми писали окремо: Valkey замість Redis. На VPS воркер — ще один systemd-юніт, на PaaS — окремий сервіс зі своєю командою запуску й своїм рахунком. Задачі, що виконуються раз на добу, часто обходяться cron без Celery зовсім.
Що брати під ваш проєкт і скільки це коштує
| Проєкт | Що брати | Орієнтир за офіційними прайсами |
|---|---|---|
| Telegram-бот на long polling | VPS 512 МіБ–1 ГіБ або PaaS | DigitalOcean $4–6, Friendhosting €4,99, Railway Hobby $5 зі $5 споживання |
| Telegram-бот на webhook, мало трафіку | Shared із Python (після підтвердження підтримки) або вебзастосунок PythonAnywhere | Free-тариф PythonAnywhere або Developer $10 |
| Малий Flask чи Django-сайт | VPS 1 ГіБ, SQLite або PostgreSQL | Vultr $5, DigitalOcean $6 |
| Django + PostgreSQL + Celery + Redis | VPS від 2 ГіБ | DigitalOcean $12, Vultr $10, Friendhosting €9,49 (2 vCPU) |
| FastAPI API з кількома сервісами | PaaS або VPS на 2 vCPU | Railway за споживанням, DigitalOcean $18 (2 vCPU, 2 ГіБ) |
| MVP, прототип, деплой із GitHub | PaaS | Railway Hobby $5, DigitalOcean App Platform $5 |
| Обробка даних, ML-інференс | VPS із запасом RAM і ядер; для GPU — хмара | Від $20 за 2 vCPU і 4 ГБ (Vultr); GPU тарифікується окремо |
Це орієнтир, замірів тут немає: реальну пам'ять застосунку покаже free -m за добу під справжнім навантаженням. Межа між PaaS і VPS проста: поки сервіс майже весь час простоює, дешевше оплата за споживання, а коли він стабільно тримає гігабайт і ядро, виграє фіксований VPS. Якщо потрібна відеокарта, ціни за годину зібрано в статті про оренду GPU.
Для бота чи невеликого API я б не шукав «хостинг із Python» у розділі shared. Дешевий VPS або кредит PaaS коштує стільки ж, скільки година, яку ви витратите на з'ясування, чому хостер прибив ваш процес.
Ігор Джазов, редактор Tophosting
Чек-лист перед оплатою
- Для shared: напишіть у підтримку й спитайте, чи є Python Selector (Application Manager), яка версія Python, чи дозволено фонові процеси і який ліміт пам'яті.
- Для VPS: перевірте, чи є root, чи можна поставити потрібну версію Python, і скільки RAM на старті. Менше 1 ГіБ під Django з базою не беріть.
- Вимкніть DEBUG, задайте ALLOWED_HOSTS і SECRET_KEY через змінні оточення, запустіть manage.py check --deploy.
- Поставте Gunicorn чи Uvicorn під systemd і Nginx попереду; сертифікат — через certbot.
- Увімкніть бекапи бази й знімки диска до першого релізу, а не після першої втрати даних.
- Скористайтеся тестовим періодом чи поверненням коштів: у каталозі це 7 днів тесту й 30 днів на повернення у Fornex, 30 днів тесту у Zomro.
Підсумок
Коротко: для Django-сайту чи API в продакшні беріть VPS від 1–2 ГіБ, для прототипу й швидкого деплою з Git — PaaS на кшталт Railway. Бота на webhook можна тримати й на shared із Python, якщо підтримка підтвердила Python Selector і відсутність жорстких лімітів. Для європейської аудиторії дивіться майданчики з Нідерландами чи Німеччиною: Fornex, Friendhosting, DigitalOcean. Повний список з відгуками й пробним періодом — у категорії хостинг для Python.
Часті питання
Який хостинг потрібен для Python?
Для Django, Flask і FastAPI — Linux VPS із root-доступом або PaaS: застосунок має працювати постійним процесом за Gunicorn чи Uvicorn. Звичайний shared на cPanel підходить, лише якщо хостер дає Python Selector («Setup Python App») і дозволяє ваш тип навантаження.
Який хостинг обрати для Django?
Для невеликого сайту вистачить VPS на 1 ГіБ (за сторінками провайдерів, жовтень 2026: Vultr $5, DigitalOcean $6), для Django з PostgreSQL і Celery — від 2 ГіБ. Швидкий старт без адміністрування дає PaaS, наприклад Railway. Перед релізом запустіть manage.py check --deploy.
Де хостити Telegram-бота на Python?
Бот на long polling потребує процесу, який не завершується, тож його ставлять на VPS, PaaS або платний always-on task. Бот на webhook — звичайний HTTP-обробник, його можна тримати на shared із Python, у вебзастосунку PythonAnywhere або на тому самому VPS, де сайт.
Webhook чи long polling для Telegram-бота?
Вони взаємовиключні: поки задано webhook, getUpdates не працює. Polling простіший у розробці й не вимагає домену. Webhook потребує HTTPS на порту 443, 80, 88 або 8443 і дозволяє обійтися без постійного процесу, тому добре лягає на shared і серверлес.
Скільки RAM потрібно Python-застосунку?
Малому боту чи Flask-сайту зазвичай вистачає 512 МіБ–1 ГіБ. Django з PostgreSQL, Gunicorn із кількома воркерами і Celery потребує від 2 ГіБ, бо кожен воркер — окремий процес із власною копією застосунку. Точну цифру покаже free -m під реальним навантаженням.
Що краще для Python: VPS чи PaaS?
PaaS на кшталт Railway вигідний для прототипів і легкого навантаження: платите за споживання, деплой із GitHub. Коли сервіс постійно тримає гігабайт пам'яті й ядро, фіксований VPS стає дешевшим: за ставками Railway 1 ГБ RAM — близько $10 на місяць проти $6 за Droplet на 1 ГіБ.
