Деплой mini-app: хостинг и HTTPS-требования
Выложишь Mini App на HTTPS-хостинг, проверишь заголовки и подключишь URL в BotFather.
HTTPS обязателен
Telegram открывает Mini App только по HTTPS с валидным сертификатом. http://, самоподписанный сертификат в проде и «открыть HTML с диска» — не рабочие варианты для пользователей. Для локальной разработки используют HTTPS-туннель к localhost.
Хостинг — любой static/SSR: Vercel, Cloudflare Pages, Netlify, свой nginx + Let's Encrypt.
Статика на Vercel + проверка
Пример минимального package.json и деплоя статики (Vite):
index.html должен подключать официальный скрипт:
Деплой и привязка URL:
Локальный HTTPS-туннель для отладки в Telegram:
Проверка после выкладки:
CORS: если фронт на app.example.com, а API на api.example.com, разреши origin фронта на бэкенде. Запросы с initData идут с твоего домена Mini App.
Как это работает
- Telegram WebView загружает URL как обычный браузер, но требует HTTPS.
- Сертификат должен доверяться системой (Let's Encrypt / хостинг).
- Туннель временно даёт публичный HTTPS → твой
localhostдля тестов Menu Button. - Кэш CDN — после деплоя иногда нужна жёсткая перезагрузка; для
telegram-web-app.jsлучше официальный URL Telegram, не копия у себя.
Частые ошибки
В BotFather оставил http:// или старый preview-URL → пользователь видит ошибку загрузки. После каждого смены домена обнови Menu Button / /newapp.
SPA без fallback на index.html → прямые пути /settings отдают 404 на хостинге. Настрой rewrite на index.html.
API по HTTP Mixed Content → страница HTTPS не вызовет http://api.... API тоже только HTTPS.
Что дальше
- Настройка бота через BotFather — вставить выложенный URL
- initData: проверка на бэкенде — связать фронт с API
- Тема оформления mini-app — проверить UI уже внутри клиента
Материалы gramdocs.tech носят образовательный характер и не являются финансовой, юридической или инвестиционной рекомендацией. Работа с блокчейном TON и токеном Gram связана с рисками потери средств. Правовая информация