OneDev
All in one Self-hosted Git Server with Kanban and CI/CD .
Install
# ubuntu 22.04
$ sudo apt install -y openjdk-19-jre-headless openjdk-19-jre git curl unzip
# Install dependencies if it fails.
$ sudo apt install -f
$ export JAVA_HOME=/usr/lib/jvm/java-19-openjdk-amd6
$ echo $JAVA_HOME
$ wget https://code.onedev.io/downloads/projects/160/builds/3112/artifacts/onedev-7.7.11.zip
$ unzip onedev-7.7.11.zip
$ cd onedev-7.7.11
$ sudo vim conf/wrapper.conf
# Comment out wrapper.java.maxmemory.percent=50
uncomment wrapper.java.maxmemory=1024
$ sudo bash bin/server.sh installstart
$ sudo systemctl status onedev
# allow inbound access via firewall and security group if required port 6610
# http://localhost:6610
# setup account info
# Enable MFA > Click on account name > Two Factor Authentication > scan QR with MFA APP
# Optional: Setup Nginx Reverse Proxy to route to port 443, see decyphertek nginx docs.
Terminology
Agents - runs on remote machines to execute jobs dispatched by server. It can be included in one
or more remote job executors via agent selector. Depending on the job executor being used, it
executes jobs either inside or outside containers. Agents are not required if you run jobs on
server or inside Kubernetes cluster.
Job workspace - is the working directory where job commands are executed. Repository and dependency
files (if there is any) will be retrieved into this directory. Artifacts/reports will also be published
based on this directory
Steps - are defined in job to execute scripts on designated images. Job steps execute sequentially on
job node and share the same job workspace
Step template - groups a sequence of steps as a whole and can be customized with parameters. A step
template can be used in a job and itself can use other step templates if necessary
Services - define live facilities used by a job such as database, message queue etc
Build - is result of running a job
Build Promotion - If some jobs depend on job of a particular build, this build can then be promoted to
run these downstream jobs. During promotion, artifacts (normally verified to be good) of current build can
be passed to downstream jobs for further processing
Pipeline - is an execution of job dependency graph. Job dependency graph can be executed by running any
job in the graph, either manually or automatically via job triggers
Build Stream - Two builds are on same stream if they:
Belongs to same project
Belongs to same job
Corresponding commits are on same branch
References
https://github.com/theonedev/onedev
https://code.onedev.io/projects/162/files/main/pages/installation-guide.md