How to contribute
Being an open source project means any help offered will be greatly appreciated, below is a quick run through of how you can help
Fork the latest branch of the component you want to contribute to:
- manager - the api endpoint through which Nebula is controlled, includes manager Dockerfile & entire code structure
- docs - docs (schematics, wishlist\todo's, and API doc)
- worker - the worker manager that manages individual Nebula workers, includes worker Dockerfile & entire code structure
- nebula-python-sdk - a pythonic SDK for using Nebula
- nebula-cmd - a CLI for using Nebula
- reporter - an optional component used to populate status reports to the backend DB to allow the admin to know the status of the managed devices
- nebula-orchestrator.github.io - the Jekyll based main website
Make sure you have a GitHub account
- Use virtualenv to install all requirements from the requirements.txt file
- Fix an issue \ add a feature
- Create a pull request
Nebula is designed with the following philosophy in mind, any feature\pull requests will be judged against the following:
- Follow Linux philosophy and have each component do one thing & one thing only.
- Each component needs to be possible to be scaled out to extremely large sizes.
- Reliability is more important then shiny new features.
- No vendor\cloud lock-in, if it's only available in one cloud it will not be used.
- No latency sensitivity, assume workers to have a below average internet access and are in the other side of the world.
What you can help with
- Documentation - everyone hates them but without them would you be able to figure out how to use Nebula?
- Bug fixes / feature requests - anything off github issues lists
- Submitting tickets - even if you don't have the time\knowledge to fix a bug just opening a github issue about it will greatly help
- Suggesting improvements
- Spreading the word
- Your awesome for helping, thanks.
P.S. Don't forget to add yourself to to CONTRIBUTORS.md file.