프로젝트를 위한 무료 하위 도메인을 원했습니다. 결국 파이썬에서 나만의 레지스트리를 구축했습니다 (그리고 그 과정에서 DNS, Git 및 Cloudflare와 싸웠습니다).

작성자

카테고리:

← 피드로
DEV Community · Illium · 2026-07-24 개발(SW)
Cover image for I wanted free subdomains for my project. Ended up building my own registry in Python (and fighting DNS, Git and Cloudflare along the way)

Illium

I registered fluxcast.dev for my Linux casting project (FluxCast). One apex record was enough, the rest of the subdomains were just wasting away.

Then I remembered is-a.dev. The idea of getting free subdomains through a simple GitHub PR looked so good that I decided to build my own version.
“Sounds like an evening project,” I thought.

It wasn’t.

The validation rabbit hole

First I needed proper validation. I wrote a bunch of checks using pytest. Blocking private IPs was easy with ipaddress, but catching duplicate keys in JSON was trickier, Python’s json.loads silently keeps only the last value. If I hadn’t caught that, someone could have hidden malicious records in a PR.

Production paranoia

The real fluxcast.dev landing page was already live. I was terrified of accidentally deleting it with my sync script. So I made every managed record carry the tag managed-by:fluxcast-domains. The script only touches records with this label. Everything else is invisible to it.

Of course I still managed to confuse Zone ID with Account ID in the Cloudflare dashboard. Then came the fun error: TypeError: Missing required argument: ‘ttl’. Turns out the new Cloudflare Python SDK made it mandatory.

Git strikes back

While studying is-a.dev I cloned their repo for reference… and somehow committed the entire .git folder as a submodule. On GitHub it looked completely broken. Regular git rm didn’t help. I had to rewrite history with a clean commit.

The final boss

When I finally ran the real sync, it stayed “in queue” for minutes. Turns out GitHub had a small Actions hiccup and my repo was private (private repos get lower priority). Made it public — problem solved.

Then I created a public API endpoint on raw.fluxcast.dev via GitHub Pages. Opened it in the browser and got a big red “Connection is not secure” warning. For a few scary seconds I thought the domain was hijacked. Nope — just the certificate hadn’t propagated yet, and .dev is in the HSTS preload list.

Result

Now anyone can get a free yourname.fluxcast.dev subdomain in minutes:

JSON

{
  "owner": { 
    "username": "your-github-username", 
    "email": "[email protected]" 
  },
  "records": { 
    "CNAME": "your-github-username.github.io" 
  }
}

Enter fullscreen mode Exit fullscreen mode

No accounts, no long reviews, no “is your project developer-related enough?” nonsense. As long as it’s not harmful — you’re good!

The registry is very fresh. If you want a subdomain, the guide is here: https://sub.fluxcast.dev

Repo: https://github.com/IlyaP358/fluxcast-domains

Would love your feedback, bug reports, or ideas how to make it better. =]

원문에서 계속 ↗

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다