Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть тре
Штош, продолжаем эпопею.
В предыдущих частях Telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть уно и Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть до я поведал вам, мои дорогие читатели и подписчики, о выборе направления разработки и инструментах для решения поставленных задач.
Что у нас теперь есть?
Приложение запускается на моем собственном компьютере и я могу писать сам себе какой я бесподобный. Но в этом ли смысл моего приложения, так ли я его хотел использовать? Хмм…
Я должен подарить свое творение миру, чтобы каждый о нем узнал и затрепетал.
Что для этого необходимо сделать? Правильно, приложение должно быть доступно через интернет, чтобы каждый владелец приложения telegram мог спокойно запустить его в любой точке мира и наслаждаться общением. Есть два варианта решения:
- Обеспечить доступ к приложению на моем компьютере из внешней сети (есть несколько интересных способов решения данной задачи, если будет интересно, напишу и о них);
- Арендовать VPS (Virtual Private Server ака виртуальный приватный сервер) у любого хостинг провайдера.
Я выбрал второй вариант. Что такое VPS? Если совсем кратко это просто тупо компьютер, доступный из интернета и обеспечением которого занимается хостинг провайдер. Управление VPS у меня реализовано через консоль и выглядит следующим образом.
Вы видите все составные части моего приложения:
- В папке backend находятся все данные и файлы, связанные с «основным» бэкендом;
- Файл docker-compose.yml отвечает за обеспечение взаимодействия между докер контейнерами, о которых я расскажу далее;
- В папке frontend находятся все данные и файлы, связанные с фронтендом;
- В папке nginx находятся все данные и файлы, связанные с инструментом nginx, который реализует веб-сервер и почтовый прокси-сервер;
- В папке tgbot находятся все данные и файлы, реализующие функционал взаимодействия с ботом в тг.Как эти папки с файлами оказались на VPS? Есть три способа, о которых я знаю:
- Через консоль по SFTP (это транспортный протокол такой) просто тупо копировать все данные;
- Через инструмент FileZilla, который реализует SFTP, но с удобным графическим интерфейсом;
- Через git – когда вы заливаете весь ваш код на github или gitlab и уже оттуда скачиваете все на VPS.
Я использую 2 и 3 варианты, так как уже не могу жить без git (это как Ватсон, который без трубки заснуть уже не мог) и некоторые файлы с паролями/секретами, docker-compose, dockerfile копирую через FileZilla.
Теперь все необходимые файлы находятся на VPS и нам необходимо все это вместе запустить. Настало время рассказать про докер, великий и ужасный.
Не буду сильно углубляться в особенности докер и docker-compose, потому как на ютубе полно видео, в которых достаточно доходчиво объясняется что это и для чего это. Я лишь расскажу вам о том, какие проблемы позволил мне решить докер.
- Установка базы данных в пару строчек в docker-compose.yml;
- Установка nginx в пару строчек в dockerfile и docker-compose.yml;
- Запуск программ и поддержка их в запущенном состоянии. Если руками через консоль запускать программы, то при закрытии консоли, они (программы) тоже закроются (не все).
После правильной сборки и запуска всех контейнеров, через docker-compose.yml, вы можете увидеть такую картинку и обрадоваться, что ничего не отвалилось и все контейнеры запущены и работают. Если совсем тезисно, то каждая строчка это контейнер, в котором запущена всего лишь одна составная часть приложения (nginx для фронтенда, основной бэкенд, база данных и бэкенд для бота).
Теперь ваше приложение доступно по ip адресу в браузере, который получил VPS. И тут у вас может возникнуть справедливый вопрос «А где здесь telegram, если приложение запускается в браузере?». Абсолютно верное замечание и ответ достаточно прост - telegram мини-приложение это сайт, который просто открывается в отдельном окне самого telegram и никакой магии. О том, как реализуется эта процедура и о дальнейших настройках доменного имени и ssl, без чего не возможен запуск именно мини-приложения, я расскажу в последующих частях.
А, ну и конечно, как я уже ранее писал, мини-приложение уже готово и ждет своих пользователей, как говорится welcome t.me/Socionyx_Bot/socionyx.
Буду премного благодарен за обратную связь и замечания по работе текущего мини-приложения.
P.S. я не забыл про твой вопрос мой дорогой nikita17cm и об особенностях «микросерверности», и о разделе бота и основного бэкенда, я обязательно расскажу в следующей части.