Self-hosted DevOps CD/CI platforms
Last updated
Last updated
I recommend gitlab CI if you want to experiment how to integrate different tools into a CD/CI. Gitlab has a professional version, so the private installation is limited in features.
Before installing anything on your local machine or VM check the system requirements here .
Recommended solution
Install your own gitlab server on a virtual machine as described in
Register your local machine as a runner and run it with gitlab-runner --debug run
to see if it connects to the server. Why should you register your local computer as a runner? If your build steps run locally, then they will also run successfully with your local gitlab runner. Don't forget to try everything before putting it into a pipeline. Also test if your docker container runs sucessfully on you local machien before setting it up in the pipeline.
Thank you embedded inventor for the detailed tutorial!
Docs
There is already a running instance thanks to our dockerfile. We need to enter the container and register the runner with:
Create a namespace (group) and call it vulnlab, create a project in your gitlab instance with name dsvw
Read your public ssh key and enter it in the ssh key sections of your user in gitlab cat ~/.ssh/id_rsa.pub
Push it to you local gitlab instance git push --set-upstream git@localhost:vulnlab/dsvw.git
I recommend jenkins if you want to learn how to configure your CD/CI server in detail. Jenkins is completely free of charge and open source. No sign-up, no limits. It is more difficult to maintain than the other platforms. Jenkinsfiles that describe the pipeline workflow are less human friendly than the yaml description files used by many other systems.
You to sign-up for the free version.
If your code is hosted on github in a public repository you can use the free version of Github actions without limits. You don't need to install your own CD/CI server. I recommend this option if you want to test some tools and quickly get their output for further analysis.
You need to sign-up an account in order to use it.
For private repos there is the following limit as of mai 2021:
2,000 automation minutes/month
500MB of Packages storage
I found the solution here:
Add a docker container with the gitlab-runner image. See for more info.
Clone a vulnerable app from github (see ), for instance git clone
Start building your pipeline!
run the docker container described here
Sales arguments for using travis over jenkins: