Make it possible to run backend components locally
See original GitHub issueIs your feature request related to a problem? Please describe.
The necessity to setup and run a number of backend components makes it difficult to quickly setup and test Eclipse Steady. Moreover, smaller development organizations or single developers may not want or cannot afford to operate always-on server components.
Describe the solution you’d like
It should be possible to run all components of Steady locally, e.g., on a developer machine or build system, without the need to operate a server. Ideally, the local setup does not require any explicit action or input from the user but happens transparently.
At least the following two topics must be covered:
- The footprint of the existing Docker Compose environment must be reduced to limit the consumption of client resources. The
frontend-appsandfrontend-bugscan be removed altogether. The servicesrest-backendandrest-lib-utilsonly require one container each. Other improvements in regards to allocated memory may be possible. - The setup of the local environment must be done in an automated or semi-automated fashion, and there are several possibilities:
- Create a new goal
setup(subclass oforg.eclipse.steady.goals.AbstractGoal), which has to be called explicitly before running analysis goals - When running analysis goals, check whether
vulas.shared.backend.serviceUrlis set tolocalhostand, if yes, check and setup as needed - Use an existing Maven plugin to check and setup the (reduced) Docker Compose environment. This approach would exclude CLI, Gradle and Python users to run Steady locally.
- Create a new goal
In any case, it is clear that the sync with Project KB will impact the initial installation time, similar to the NVD download in case of OWASP Dependency Check. Subsequent goal executions, however, should not be impacted.
Describe alternatives you’ve considered
None
Additional context
None
Issue Analytics
- State:
- Created 3 years ago
- Comments:5 (5 by maintainers)

Top Related StackOverflow Question
Rather than developing a new Maven plugin from scratch, I would subclass
AbstractGoal, and create thin wrappers (goals) for the existing Maven and Gradle plugins.If I understand correctly, such subclass would download and build all images it finds in
docker-compose-local.yml(a slim version of the existingdocker-compose.yml) before runningdocker-compose up, correct?With release 3.2.1, the local setup and execution has been facilitated with help of two bash scripts (#502). Different usage profiles (
core,ui,vdb,all) allow running different sets of containers to reduce resource consumption.