Skip to content

Contributing to Fluxify ​

Fluxify is open source, and contributions of every size are welcome — a typo fix, a new workflow block, a security improvement, or a whole feature.

IMPORTANT

The full contributor guide lives in the repository, next to the code it describes, so the two can never drift apart:

👉 CONTRIBUTING.md ​

It covers prerequisites, step-by-step local setup, the fast inner-loop commands, where to put your change, testing, and pull request guidelines.


What you'll need ​

ToolMinimum version
Bunv1.4.2+
Dockerv20.10+
Gitv2.30+
GitHub CLI (gh)v2.0+ (recommended)

Getting set up, in brief ​

bash
git clone https://github.com/YOUR_USERNAME/Fluxify.git && cd Fluxify
bun install
docker compose up -d
cp env.example .env
bun run db:migrate
bun run dev

Then open http://localhost:8080/_/admin/ui and log in with [email protected] / admin@123. The defaults in env.example work as they are — the request worker serves every project (WORKER_PROJECT_ID=*), so there is nothing to create first. CONTRIBUTING.md has the detailed walkthrough.


Ways to contribute ​

KindGood first place to look
Bug fixesOpen issues labelled bug
New workflow blocksThe Blocks reference, to see what already exists
DocumentationAnything on this site that confused you
IntegrationsThe Integrations section
Testing & bug reportsTry the Kit deployment and tell us what breaks

WARNING

Alpha software. Platform architecture and internal APIs still change between releases. For anything large, open an issue or discussion first, so your work doesn't collide with something already in flight.

Enterprise code is licensed differently

Code in an ee folder, or in a file with .ee. in its name, is under the Enterprise Edition License, not Apache 2.0. Contributing to it gives Fluxify full rights to use and sell your change. See Licenses and Contributions.


Writing documentation ​

Docs on this site are written for everyone — junior developers, people evaluating Fluxify, and non-technical readers. When you edit them:

  • Explain what happens and what to expect, not how it's built internally.
  • Use concrete examples with realistic inputs and outputs.
  • Reach for tables and callouts (::: tip, ::: info) to keep pages scannable.
  • Diagrams are supported — use a ```mermaid code fence.

Every page should make sense to someone reading it cold.


Cutting a release ​

For maintainers. A release is a tag and nothing else — pushing an annotated v* tag to main runs the whole test suite, then builds and pushes the three images and publishes the GitHub release.

bash
git tag -a v0.1.0-alpha.1 -m "v0.1.0-alpha.1"
git push origin v0.1.0-alpha.1
Images publishedfluxify-admin, fluxify-orchestrator, fluxify-worker, all three on every release
Tags they getThe version tag, plus alpha/beta/rc for a pre-release or latest for a stable one
Release notesGenerated from the commits since the previous tag, with the pull commands prepended
A pre-releaseAny tag with a hyphen (v0.1.0-alpha.1). Marked as a pre-release, and never becomes the repo's "Latest release"

Nothing is published if any test fails, and nothing is announced unless all three images pushed. To redo a release, delete the tag and the GitHub release, then tag again — the workflow leaves an existing release alone.

Do not tag a pre-release as stable

latest is what an unpinned docker pull gets. The first tag without a hyphen creates it, so don't tag v1.0.0 until it really is.


Getting help ​

Thank you for helping build Fluxify! 🚀

Released under the Apache License 2.0. Enterprise features are under the Fluxify Enterprise Edition License.