README.md
August 3, 2026 · View on GitHub
fluxcast.dev subdomains
Free yourname.fluxcast.dev subdomains for developers.
GitOps DNS driven by pull requests, powered by Python + Cloudflare.
This is a sister project of fluxcast, which streams your Linux desktop to a TV via Miracast/WFD, DLNA, or Chromecast. To give back to the community, we hand out free subdomains the same way is-a.dev does, but the whole infrastructure here is pure Python.
Get a subdomain
- Fork this repo.
- Add one file:
domains/<your-subdomain>.json. - Open a pull request.
- Pass the automated checks, get reviewed, and your DNS goes live within minutes.
Full guide → CONTRIBUTING.md. Info page → sub.fluxcast.dev.
{
"owner": { "username": "your-github-username", "email": "you@example.com" },
"records": { "CNAME": "your-github-username.github.io" }
}
How it works
domains/*.json ──► pytest validation (CI on every PR)
│ └─ names, records, private-IP filter, ownership, nesting
│
merge to main
│
├──► fluxcast-sync → reconciles records into Cloudflare (publish.yml)
└──► fluxcast-raw-api → publishes raw-api/v2.json to raw.fluxcast.dev
- One JSON file = one subdomain. The
domains/directory is the database. - Validation lives in
src/fluxcast_domains/validation.pyand is shared by the test suite and the sync, so nothing invalid can be published. - The sync is apex-safe. Every record it creates is tagged
managed-by:fluxcast-domains; it only ever touches its own records, so thefluxcast.devlanding page and any hand-made record are never at risk. URLrecords redirect automatically. Cloudflare has noURLrecord type, so an edge worker reads the published registry and serves the redirect. New redirects go live with the merge, nothing to configure.
Local development
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytest -q # run the full validation suite
fluxcast-sync --dry-run # preview DNS changes (needs Cloudflare env to apply)
fluxcast-raw-api # regenerate raw-api/v2.json
Publishing (in CI) needs two secrets:
| Secret | Purpose |
|---|---|
CLOUDFLARE_API_TOKEN | scoped token: Zone → DNS → Edit (this zone) |
CLOUDFLARE_ZONE_ID | the fluxcast.dev zone id |
Project layout
| Path | What |
|---|---|
domains/ | one JSON per subdomain (the registry) |
util/ | reserved / internal / trusted / disallowed lists |
src/fluxcast_domains/ | loader, models, validation, records, sync, raw API |
tests/ | pytest validation suite |
.github/workflows/ | CI, publish, raw-api, stale |
Reporting abuse
Found a *.fluxcast.dev subdomain being misused? Open a
report-abuse issue.
See the Terms of Service.
Support the project
This service is free and runs on volunteer time. If it is useful to you:
- ⭐ Star this repo — it genuinely helps more developers find the service.
- ☕ Buy me a coffee on Ko-fi =] — covers the domain and keeps the lights on.
Every star and coffee is appreciated. Thank you!