r/CloudFlare • u/Leading_Advance_8600 • 1d ago
Resource Diffinery: Open-source GitHub and GitHub Actions alternative that runs entirely on Cloudflare
Every time GitHub has an outage, Actions stops and teams sit around for hours waiting for CI to come back. We got tired of that, so we built Diffinery: a git forge with built-in CI that you deploy to your own Cloudflare account. No servers, no runner VMs.
- Runs your existing `.github/workflows/*.yml` unchanged, marketplace actions included
- Each job gets a fresh 4 vCPU / 12 GiB container, only while it runs
- Git hosting, PRs, code review, merge queue, issues, releases
- AI agents get their own accounts with guardrails (they can't merge their own PRs) plus a built-in MCP server
- One-step import from GitHub with history, issues and PRs
Still early, so check the roadmap for what's coming. Apache-2.0, feedback welcome!
4
u/BitterAd6419 1d ago
GitHub actions runs python, can this one run it ?
1
u/Leading_Advance_8600 1d ago
Each job runs on a full Ubuntu Linux runner, so Python works the same way it does on GitHub. actions/setup-python works, and so do pip, caching and matrix builds across Python versions. Your existing workflow YAML should run unchanged. Docs: https://diffinery.com/docs
2
u/No-Boat8877 1d ago
This looks promising - if it can shift the cost in github minutes over to cloudflare that seems more ideal. The concerns we'd have would be
- We rely on release-please for versioning as we deploy our mobile, which relies on hitting the Github API
- We also run a couple android emulator specific smoke tests in our cicd which requires KVM
- And I'm assuming secrets would then be moved away from GHA to Cloudflare, how is this handled?
2
u/Leading_Advance_8600 1d ago
Thanks so much for writing this up.
release-please: Diffinery speaks the GitHub API (same paths as GitHub Enterprise, so gh works against it), so anything that lets you set a custom API URL should be able to point at it. I’ll be honest though, I haven’t tried release-please specifically yet. I’m testing it today and I’ll come back and let you know how it goes. If something breaks, I’ll fix it.
Android emulator / KVM: straight answer, not on the hosted runners right now. They run on Cloudflare Containers, which don’t give you /dev/kvm. What I’d suggest is hooking up a self-hosted runner on a machine with KVM just for those smoke tests and keeping everything else hosted. Your workflow stays the same, you only change runs-on for that one job.
Secrets: they live in Diffinery itself, encrypted, with repo, org and environment secrets like on GHA, and you use them exactly the same way (${{ secrets.FOO }}). The importer brings over the names, but you’ll have to paste the values in again, since GitHub never lets anyone read them back (which is honestly a good thing).
If you give it a try, I’d really love to hear how it goes.
2
u/dtiziani 19h ago
is there a way to use just the actions part(runners), and keep using GitHub for the other parts?
-1
•
u/AutoModerator 1d ago
For faster advice with technical questions, we'd recommend asking in the Orange Cloud Discord server; the unofficial Cloudflare Discord server by the community, for the community. https://discord.gg/TrPNVKaagR
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.