惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
T
The Blog of Author Tim Ferriss
S
Securelist
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Tor Project blog
S
Schneier on Security
Google DeepMind News
Google DeepMind News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Blog — PlanetScale
Blog — PlanetScale
AWS News Blog
AWS News Blog
F
Fortinet All Blogs
C
Cisco Blogs
L
LangChain Blog
MongoDB | Blog
MongoDB | Blog
D
Docker
T
The Exploit Database - CXSecurity.com
The GitHub Blog
The GitHub Blog
月光博客
月光博客
量子位
A
Arctic Wolf
博客园 - 叶小钗
L
LINUX DO - 热门话题
J
Java Code Geeks
The Hacker News
The Hacker News
Security Latest
Security Latest
V
Vulnerabilities – Threatpost
M
MIT News - Artificial intelligence
博客园 - 【当耐特】
T
Tenable Blog
Microsoft Security Blog
Microsoft Security Blog
Recent Announcements
Recent Announcements
Simon Willison's Weblog
Simon Willison's Weblog
B
Blog
阮一峰的网络日志
阮一峰的网络日志
A
About on SuperTechFans
博客园_首页
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Threat Research - Cisco Blogs
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Y
Y Combinator Blog
PCI Perspectives
PCI Perspectives
Hacker News: Ask HN
Hacker News: Ask HN
P
Palo Alto Networks Blog
小众软件
小众软件
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
O
OpenAI News
P
Privacy International News Feed
P
Privacy & Cybersecurity Law Blog
N
Netflix TechBlog - Medium

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Как хостить Mini App на GitHub Pages: бесплатно, быстро, без сервера
Денис · 2026-06-26 · via Все публикации подряд на Хабре

Когда я только начинал пилить TG Notion, первой мыслью было: «Надо брать VPS, ставить Nginx, прикручивать домен, получать сертификат...». Знакомо? Если ты хоть раз настраивал HTTPS для Mini App — ты понимаешь, о чём я.

Но оказалось, что можно вообще без всего этого. Серьёзно. GitHub Pages даёт тебе бесплатный HTTPS-хостинг для статики, а деплой происходит через git push. Никаких серверов, никакой боли. Звучит как сказка? Сейчас расскажу, как это работает, и покажу на живом примере — TG Notion.

1. В чём проблема

Для Telegram Mini App нужен URL с https://. Без этого WebApp не откроется.

Ты делаешь демку. Она ещё сырая. Меняешь интерфейс пять раз в день. Ловишь баги. И после каждого изменения ты должен идти на сервер, пушить код, перезапускать Nginx, чистить кэш. Это отнимает время и бесит.

Сервер — это продакшен. А демка — это песочница. Она должна обновляться мгновенно и без геморроя. Ты хочешь просто сохранить файл и сразу увидеть результат. Не лезть в SSH, не трогать конфиги, не ждать деплой.

2. Решение — GitHub Pages

GitHub Pages — это бесплатный хостинг для статических сайтов. Вы просто кладёте HTML/CSS/JS файлы в репозиторий, включаете Pages в настройках репозитория — и у вас есть HTTPS. Деплой — git push. Всё. Бесплатно. Навсегда.

Для Mini App этого более чем достаточно. Боту не нужен сервер для WebApp — он просто открывает URL. Вся логика живёт в Telegram (WebApp API), ваш код — в браузере. Поэтому никаких бэкендов, никаких аренд.

Давайте по шагам.

2.1 Создаём репозиторий

Заходим на GitHub, жмём «+» → «New repository». Имя: tg-notion-ui (или любое другое). Важно: репозиторий должен быть публичным — иначе GitHub Pages не включится для частного репо.

git clone https://github.com/yourname/tg-notion-ui.git
cd tg-notion-ui

2.2 Структура файлов

В корне репозитория создаём три файла:

index.html — точка входа. Telegram откроет этот файл по URL кнопки Menu Button.

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Mini App</title>
</head>
<body>
    <h1>Привет, я Mini App</h1>
</body>
</html>

style.css — здесь живёт тема, стили, отступы. Никакой магии, только CSS-переменные.

:root {
    --bg: #1a1a2e;
    --text: #e0e0e0;
    --accent: #4a86ff;
}

app.js — логика WebApp. Подключаем Telegram WebApp API, инициализируем, разворачиваем на весь экран.

const tg = window.Telegram.WebApp;
tg.ready();
tg.expand();

2.3 Включаем GitHub Pages

Идём в Settings репозитория → Pages → Branch: выставляем main, жмём Save. Через минуту сайт живёт по адресу https://yourname.github.io/tg-notion-ui/.

В BotFather прописываем этот URL как Menu Button. Готово.

3. Пример — TG Notion

TG Notion — это живой пример. Это notes & tasks внутри Telegram, которые хостятся на GitHub Pages.

Что там под капотом:

  • Mini App: чистый HTML/CSS/JS. SPA, без фреймворков, без сборщиков. Файлы — статика.

  • Данные: localStorage. Да, это костыль. Но для демки это работает идеально. Пользователь что-то создал — оно сохранилось и открылось здесь же. Никакой базы, никаких бэкендов.

  • Бот: aiogram + SQLite. Это дверь. Просто регистрация пользователя. Но база здесь не для Mini App — она для будущего. Сейчас бот работает с моего компа,пока я не доведу его до ума. Но когда я перенесу базу на сервер, WebApp проснётся для синхронизации данных.

Репозиторий всего этого лежит здесь: https://github.com/Elrick-from-Malnibone/tg-notion-ui

4. Пошаговая настройка GitHub Pages

Держите инструкцию:

Шаг 1. Создайте репозиторий на GitHub. Название не важно. Главное — он должен быть публичным.

Шаг 2. Положите в репозиторий три файла: index.htmlstyle.cssapp.js. Содержимое — любое. Это просто пример, вы можете написать своё.

Шаг 3. Settings → Pages → Branch: main/ (root). Save. Ждать минуту. Открывайте URL из Settings.

Шаг 4. BotFather → /mybots → Menu Button. URL: ваш https://....github.io/..... Готово. Ваш Mini App живёт по этому адресу.

Никаких серверов. Никаких Nginx. Никаких Certbot.

5. Ограничения

Честно. GitHub Pages — это статика. Только фронтенд. Вы не можете запустить там Python, Node.js, базу данных. Нельзя API, нельзя вебхуки. Поэтому:

  • Нет серверной логики. Ваш код не исполняется на сервере — он просто лежит и отображается. Юзер жмёт кнопку — фронтенд реагирует. Данные сохраняются тут же, на устройстве.

  • Нет синхронизации. Данные локальны. Пользователь открыл на телефоне — на десктопе их нет. Это демо. Так и задумано.

Когда вы дорастёте до продакшена, вы возьмёте сервер, базу, настройте API, вебхуки. Тогда данные будут бегать между устройствами, и localStorage уйдёт в историю.

6. Что дальше

TG Notion — это только начало. Дальше я добавлю:

  • Синхронизацию через базу данных (SQLite/PostgreSQL)

  • Шеринг заметок и задач (кнопка «Поделиться»)

  • Общие доски (совместное редактирование)

  • Напоминания (бот пришлёт уведомление в Telegram)

  • Категории и папки

Но это всё потом. Сейчас — демка. И она полностью работает. Вы можете потрогать её здесь: @Telega_notion_bot.

7. Ссылки

Надеюсь, было полезно. Тестируйте, ломайте, пишите в чат.