Project goal: Improve the out of the box solution for packaging Jenkins distributions as WAR files or Docker images
Skills to study/improve: Java, Web Development, Docker
Many users will download Jenkins and spend a great deal of time customizing their environment to be exactly what they need. Often this is done through trial and error. It would not only be nice to create common configurations to share with team members, but with the wider community.
Last summer, a project (custom-distribution-service) created the base application with a UI and support for uploading configurations. There were a lot of suggestions over the course of the summer, to the point where it would make sense to continue the work over another summer. The project is currently hibernating though would be useful after issues are addressed.
The service was temporarily offered as a website at https://customize.jenkins.io. More importantly, it should support self-hosting by Jenkins users who want to run it internally. People can select the following configuration items:
Jenkins core version
common configuration, user/password, update-center site e.g.
plugin based configuration, Kubernetes, Sonarqube plugin config e.g.
data storage solution
multi-form package, jenkins.war or docker image
configuration should be scenario-based
There are several extra suggestions defined in the Issues of the main project that can be expanded as the student chooses. There are UI enhancements like better notifications of selected plugins, and backend improvements such as REST consistency.
The custom-distribution-service is where the project currently lives.
The ci.jenkins.io-runner is a good starting point. Clone the repository and follow the quickstart guide provided in the readme.
The React Getting Started guide is a good way to get familiar with the front end framework used in the project.
Open issues for the project are found here: custom-distribution-service/issues