Как получить бесплатный поддомен на fluxcast.dev через GitHub: полный гайд

Бесплатные поддомены на fluxcast.dev можно получить, создав Pull Request на GitHub. Это автоматизированный процесс, где каждый желающий добавляет DNS-запись для своего поддомена вида yourname.fluxcast.dev. Однако реализация столкнулась с рядом технических сложностей: от Git-конфликтов до лимитов Clo

Как получить бесплатный поддомен на fluxcast.dev через GitHub: полный гайд

Бесплатные поддомены на fluxcast.dev можно получить, создав Pull Request на GitHub. Это автоматизированный процесс, где каждый желающий добавляет DNS-запись для своего поддомена вида yourname.fluxcast.dev. Однако реализация столкнулась с рядом технических сложностей: от Git-конфликтов до лимитов Cloudflare и SSL-сертификатов. В этой статье разберем, как работает система, какие проблемы возникли и как их решали.

Как работает реестр поддоменов на GitHub

Процесс получения поддомена выглядит так: пользователь создаёт Pull Request в репозитории проекта, добавляя запись типа A или CNAME для своего поддомена. После проверки и слияния PR изменения автоматически применяются к DNS-зоне через Cloudflare API. Разработчик написал на Python скрипт, который обрабатывает PR и синхронизирует DNS. Однако на практике возникли сложности: Git не всегда корректно обрабатывает конфликты, а Cloudflare имеет лимиты на количество запросов к API.

Какие проблемы возникают при использовании Git для DNS?

Git-конфликты — одна из главных головных болей. Когда несколько пользователей одновременно создают PR, файл с DNS-записями может конфликтовать. Разработчику пришлось добавить механизм автоматического разрешения конфликтов и очередь обработки, чтобы PR не накладывались друг на друга. Кроме того, GitHub Actions запускает workflow при каждом слиянии, что создает дополнительную нагрузку. Для решения этих проблем были введены повторные попытки при ошибках и ограничение на частоту запросов.

Предыстория и контекст

Практика раздачи бесплатных поддоменов не нова — например, сервисы вроде freenom.com или xip.io предлагали подобное. Однако подход через GitHub PR позволяет автоматизировать процесс и сделать его прозрачным. Разработчик выбрал Cloudflare как DNS-провайдера из-за его удобного API и встроенной поддержки SSL. Но именно лимиты Cloudflare на создание записей стали узким местом: бесплатный тариф позволяет добавить не более 500 DNS-записей, а при частых обновлениях API может временно блокировать запросы.

Как решалась проблема с SSL-сертификатами

Для каждого поддомена требовался SSL-сертификат, чтобы сайты работали по HTTPS. Разработчик использовал автоматическую выдачу через Let's Encrypt и Cloudflare Origin CA. Однако процесс генерации сертификатов для сотен поддоменов занял много времени: сначала нужно было дождаться, пока DNS-записи распространятся, затем выпустить сертификаты. В итоге он настроил скрипт, который выпускает сертификаты пакетно, но всё равно ограничен лимитами Let's Encrypt (50 сертификатов в неделю на домен).

Технические детали реализации

Скрипт написан на Python с использованием библиотек requests для Cloudflare API и PyGithub для работы с GitHub. Он обрабатывает Pull Request, проверяет корректность добавляемых записей (только A, AAAA или CNAME, без дубликатов) и синхронизирует DNS. Для автоматизации используется GitHub Actions: при слиянии PR запускается workflow, который вызывает скрипт. Основные проблемы возникли с Git-конфликтами при параллельных PR и с ограничениями Cloudflare на 1200 запросов в час. Разработчику пришлось добавить очередь обработки и повторные попытки при ошибках.

Как ограничения Cloudflare влияют на производительность?

Cloudflare на бесплатном тарифе ограничивает количество API-запросов до 1200 в час. При активной раздаче поддоменов это может стать узким местом. Разработчик решил проблему, добавив задержки между запросами и кэширование DNS-записей. Также он планирует перейти на платный тариф, если проект станет популярным. Другое ограничение — максимум 500 DNS-записей на бесплатном аккаунте, что может быть недостаточно для масштабирования.

Кого затронет и как

Проект в первую очередь интересен разработчикам, которым нужен бесплатный поддомен для тестирования, портфолио или личного сайта. Также это пример автоматизации DevOps-процессов с использованием GitHub и Cloudflare. Для русскоязычного сообщества проект может быть полезен как альтернатива платным DNS-сервисам. Однако стоит учитывать, что поддомены выдаются на усмотрение автора, и он может отозвать их в любой момент.

Какие альтернативы существуют для бесплатных поддоменов?

Помимо fluxcast.dev, есть сервисы вродe freenom.com (бесплатные домены верхнего уровня .tk, .ml и др.) и xip.io (динамические поддомены для локальной разработки). Однако fluxcast.dev предлагает простую автоматизацию через GitHub, что удобно для разработчиков, уже использующих этот инструмент. В отличие от freenom, здесь нет рекламы и ограничений по трафику, но есть лимиты на количество записей.

Что будет дальше

Разработчик планирует улучшить обработку Pull Request, добавить автоматическое тестирование DNS-записей и, возможно, веб-интерфейс для управления поддоменами. В перспективе он хочет интегрировать поддержку DNSSEC и увеличить лимиты за счёт платного тарифа Cloudflare. Также рассматривается возможность добавления поддержки IPv6 и кастомных SSL-сертификатов.

Итог

Проект fluxcast.dev демонстрирует, как можно использовать GitHub и Cloudflare для автоматизации раздачи поддоменов. Несмотря на технические сложности, решение работает и уже привлекло первых пользователей. Разработчик открыл исходный код на GitHub, так что любой может изучить реализацию или предложить улучшения. Если вам нужен бесплатный поддомен для экспериментов, попробуйте создать Pull Request — процесс простой, но требует базовых знаний Git и DNS.