Thanks for your interest in improving GhostFleet! Bug reports, feature requests and pull requests are all welcome. The project is maintained on a best-effort, community-supported basis by the maintainers listed in the README, so please be patient with triage.
Open a GitHub issue. For a bug, include enough to reproduce it: GhostFleet version, hypervisor and version, the relevant profile/deployment settings, and controller/agent logs.
For anything security-sensitive, follow SECURITY.md instead of opening a public issue.
- Fork the repository and create a topic branch.
- Keep changes focused, and add or update tests where it makes sense.
- Make sure the build and tests pass:
CI runs
make build make testgo vet ./...,go test ./...,go build ./...and the web build. - Open a pull request describing what changed and why.
Changes to the boot chain (
deploy/,cmd/agent/, Dockerfile base images) are not covered by CI; say whether you booted them on a dev controller VM (docs/DEVELOPMENT.md).
GhostFleet is licensed under the Apache License 2.0. By submitting a contribution you agree that it is provided under that same license — the standard "inbound = outbound" model. This follows automatically from Section 5 of the Apache-2.0 license and from GitHub's Terms of Service for public repositories, so no separate Contributor License Agreement (CLA) is required.
Please only submit work that is yours to contribute, or that you otherwise have the right to submit under this license.
- The controller and agent are written in Go; the web UI is Vue 3 + TypeScript
under
web/. - Run
gofmt/go vetbefore pushing. - See docs/ARCHITECTURE.md for how the controller, netboot stack, temp OS and agent fit together, and docs/TECH-STACK.md for the technology choices.