Skip to content
 
 

Repository files navigation

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.

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

About

Grab your own free "cool.fluxcast.dev" subdomain for your project

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages