Skip to content

fluxcast logo

fluxcast.dev subdomains

Free yourname.fluxcast.dev subdomains for developers. GitOps DNS driven by pull requests, powered by Python + Cloudflare.

Domains Pull Requests Issues Stars


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

  1. Fork this repo.
  2. Add one file: domains/<your-subdomain>.json.
  3. Open a pull request.
  4. 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.py and 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 the fluxcast.dev landing page and any hand-made record are never at risk.
  • URL records redirect automatically. Cloudflare has no URL record 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!

License

GPL-3.0

Releases

Sponsor this project

Packages

Contributors

Languages