> For the complete documentation index, see [llms.txt](https://docs.digit.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.digit.org/local-governance/deploy/configure-digit/qa-automation/jenkins-setup-for-automation.md).

# Jenkins Setup for Automation

## Overview

This tutorial will guide you through the step by step procedure to set up Jenkins on a ubuntu machine for automation purposes.

Connect to the remote machine using SSH and follow the steps mentioned below.

## Install Java 8

* sudo apt update
* sudo apt-get install openjdk-8-jdk
* java -version

## Install Jenkins

* sudo wget -q -O - <https://pkg.jenkins.io/debian-stable/jenkins.io.key> | sudo apt-key add -
* sudo sh -c 'echo deb[ <img src="https://www.jenkins.io/sites/default/files/jenkins_favicon.ico" alt="" data-size="line">Debian Jenkins Packages](http://pkg.jenkins.io/debian-stable) binary/ > /etc/apt/sources.list.d/jenkins.list'
* sudo apt update
* sudo apt install jenkins
* sudo systemctl start jenkins
* sudo systemctl status jenkins (should be active)

#### Install and setup apache2 for Jenkins

* sudo apt install apache2
* sudo a2enmod proxy
* sudo a2enmod proxy\_http
* sudo a2enmod headers
* **sudo vi /etc/apache2/sites-available/000-default.conf** and add following code inside **VirtualHost** xml tag:

```
##### ############################################################ ####
##### ============================================================ ####
##### The Build Business Websites Jenkins and Apache Configuration ####
##### ============================================================ ####
##### ############################################################ ####

ProxyPass         /jenkins  http://localhost:8080/jenkins nocanon
ProxyPassReverse  /jenkins  http://localhost:8080/jenkins

ProxyRequests     Off
AllowEncodedSlashes NoDecode

<Proxy http://localhost:8080/jenkins*>
  Order deny,allow
  Allow from all
</Proxy>

##### ============================================================ ####
##### ############################################################ ####
```

* **sudo vi /etc/default/jenkins** and make sure

```
JENKINS_ARGS="--webroot=/var/cache/$NAME/war --httpPort=$HTTP_PORT --prefix=/jenkins"
```

* sudo systemctl restart jenkins
* sudo systemctl restart apache2
* Open port 80 of the remote machine to make it accessible from the local machine

## Setup Jenkins

* sudo vi /var/lib/jenkins/secrets/initialAdminPassword
* copy the initial password inside the file
* now open remote-host-ip/jenkins in local browser
* paste the password, select the required plugin to install and start the installation

> [![Creative Commons License](https://i.creativecommons.org/l/by/4.0/80x15.png)\_\_](http://creativecommons.org/licenses/by/4.0/)*All content on this page by* [*eGov Foundation* ](https://egov.org.in/)*is licensed under a* [*Creative Commons Attribution 4.0 International License*](http://creativecommons.org/licenses/by/4.0/)*.*


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.digit.org/local-governance/deploy/configure-digit/qa-automation/jenkins-setup-for-automation.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
