Jenkins Course
Initial Setup and UI
Jenkins is installed and running. You open the browser, hit localhost:8080, and a setup screen is staring at you. This lesson walks you through every step of that first-time setup and every corner of the UI — so nothing feels unfamiliar when you start building jobs.
This lesson covers
The unlock screen → Plugin install → Admin account → The dashboard → Key UI areas you'll use every day
Step 1 — Unlocking Jenkins
The very first screen Jenkins shows you is an unlock page. It's asking for a one-time password that was generated when Jenkins started for the first time. This is a security measure — it proves that whoever is doing the setup has actual access to the server, not just the network.
Unlock Jenkins
To ensure Jenkins is securely set up, please enter the administrator password from one of these locations on your server.
Linux / Mac (native install):
/var/lib/jenkins/secrets/initialAdminPassword
Docker:
docker exec jenkins-local cat /var/jenkins_home/secrets/initialAdminPassword
Once you paste the password and click Continue, Jenkins moves to the plugin selection screen.
Step 2 — Installing Plugins
Jenkins asks you to choose between two options. This is one of the most important choices you make during setup — and most people pick the wrong one for their situation.
✅ Recommended for most people
Install Suggested Plugins
Jenkins installs a curated set of the most commonly used plugins — Git, Pipeline, Credentials, Workspace Cleanup, and more. Takes 2–5 minutes. Best choice if you're learning or setting up a general-purpose Jenkins.
For advanced users
Select Plugins to Install
You hand-pick every plugin from a full list. Good for locked-down enterprise environments where you know exactly what you need and nothing else. Easy to end up with a broken setup if you skip something important.
Quick note: Plugins are extensions that add capabilities to Jenkins — like adding apps to a phone. A fresh Jenkins install can barely do anything useful on its own. Plugins are where the power lives. You'll go deep on plugins in Section III.
Step 3 — Creating Your Admin Account
After plugins install, Jenkins asks you to create the first admin user. Fill in a username, password, full name, and email address. This becomes the primary admin account — the one with full control over everything.
Don't skip this step. Jenkins will offer a "Skip and continue as admin" option. If you skip it, the admin password stays as that long random string from the unlock screen — and teams regularly lose it. Always create a proper admin account here.
The Dashboard — Your Command Centre
After setup, you land on the Jenkins dashboard. This is the screen you'll open every morning. Let's walk through exactly what each area does:
Quick Actions
Build Queue
No builds in queue
Build Executor
Idle · 2 executors
All Jobs
Every Area of the UI — Explained
🏠
Dashboard
The home screen. Lists all your jobs with their last build status. Green dot = last build passed. Red = failed. Blue = running. This is the first thing you check every morning.
➕
New Item
Where you create new jobs. Click this and Jenkins asks you to choose a job type — Freestyle, Pipeline, Multibranch Pipeline, and more. You'll be here a lot.
⚙️
Manage Jenkins
The control panel. System configuration, plugin management, managing nodes, security settings, credentials — everything lives under this menu. Treat it like your settings app.
🕐
Build History
A timeline of every build that has ever run on this Jenkins instance — across all jobs. Useful for auditing: "What ran last Tuesday at 3 PM?" This has the answer.
📋
Build Queue
Shows jobs waiting for a free executor. If this list keeps growing and not shrinking, you need more agents or more executors. A long queue is a sign your Jenkins is undersized.
🖥
Build Executor Status
Shows which executors are running which jobs right now. Click a running job name here to jump straight to its live console output. Super useful when something's taking longer than expected.
The Console Output — The Most Important Page
When a build runs, Jenkins captures every line of output from every command and displays it in the Console Output page. This is the page you'll visit most when something goes wrong. To get there: click on a job → click a build number → click Console Output.
Started by user admin
[Pipeline] Start of Pipeline
[Pipeline] node
Running on agent-linux-01 in /var/jenkins_home/workspace/frontend-test
[Pipeline] stage
[Pipeline] { (Test) }
+ npm test
FAIL src/components/Checkout.test.js
● Checkout › should calculate total correctly
Expected: 99.99 · Received: 109.99
Tests: 1 failed, 14 passed
Finished: FAILURE
Reading the Console Output
- Blue
[Pipeline]lines — Jenkins narrating its own execution. These show which stage is running and which agent is being used. Running on agent-linux-01— tells you exactly which machine ran this build. In a multi-agent setup this is critical for debugging.- Lines starting with
+— the actual shell commands Jenkins executed, printed before their output.+ npm testmeans Jenkins ran the commandnpm test. - Red text — not always Jenkins — often the tool itself (npm, gradle, pytest) printing its own failure output. Read these lines carefully — they contain the real error.
Finished: FAILURE— Jenkins' final verdict. This is what turns the build dot red on the dashboard.
Checking Jenkins From the Terminal
The scenario:
You're a junior DevOps engineer. Jenkins has been running for a week. Your manager asks: "Is Jenkins healthy? How long has it been up?" You don't want to scroll through the UI — you want the raw facts fast. This command gives you Jenkins' version, uptime, and system info in seconds.
Tools used:
- curl — a command-line tool for making web requests. Here we use it to call the Jenkins API and get system information back in JSON format.
- Jenkins REST API — Jenkins exposes a built-in API at
/api/jsonon any page. Add/api/jsonto the end of any Jenkins URL and you get that page's data as machine-readable JSON instead of HTML. - python3 -m json.tool — a quick way to pretty-print JSON so it's readable. It's built into Python — no install needed.
# Call the Jenkins API to get system-level information
# The /api/json endpoint returns data about whatever page you're on
# Here we're calling the root URL so we get overall system info
curl \
--user admin:your-api-token \
http://jenkins-master-01:8080/api/json?pretty=true
Where to practice: If you have Jenkins running via Docker from Lesson 5, open a new terminal and run this command against http://localhost:8080. Use your admin username and the password you set during setup. Full API documentation is at jenkins.io — Remote Access API.
{
"_class": "hudson.model.Hudson",
"assignedLabels": [{"name": "built-in"}],
"description": null,
"jobs": [
{"name": "api-gateway-deploy", "url": "http://jenkins-master-01:8080/job/api-gateway-deploy/", "color": "blue"},
{"name": "frontend-test", "url": "http://jenkins-master-01:8080/job/frontend-test/", "color": "red"},
{"name": "payment-service-build","url": "http://jenkins-master-01:8080/job/payment-service-build/","color": "blue"}
],
"mode": "NORMAL",
"nodeDescription": "the controller for Jenkins",
"nodeName": "",
"numExecutors": 0,
"quietingDown": false,
"slaveAgentPort": 50000,
"useCrumbs": true,
"useSecurity": true,
"views": [{"name": "All", "url": "http://jenkins-master-01:8080/"}]
}
What just happened?
"color": "blue"and"red"— Jenkins uses colour names to represent build status in its API. Blue = last build passed (yes, blue not green — a quirk from Jenkins' early days). Red = last build failed."numExecutors": 0— confirms the master has zero executors. Exactly what we want. All builds route to agents."useSecurity": true— security is enabled on this Jenkins instance. If this were false, anyone on the network could access Jenkins with no login — a serious misconfiguration."quietingDown": false— Jenkins is accepting new builds normally. If this were true it means someone put Jenkins into "quiet mode" — new jobs queue up but don't start. Used before maintenance."slaveAgentPort": 50000— this is the port agents use to connect back to the master via JNLP. This is why we published port 50000 in the Docker run command in Lesson 5.
Teacher's Note
Bookmark the console output page. Every Jenkins problem you ever debug will start there.
Practice Questions
1. What is the name of the file Jenkins generates at first start that you need to unlock the setup screen?
2. Where in the Jenkins UI do you go to see every command that ran during a build and why it failed?
3. Under which menu in the Jenkins UI would you find plugin management and system configuration?
Quiz
1. In the Jenkins API response, what colour value represents a job whose last build passed?
2. What does "quietingDown": true mean in the Jenkins API response?
3. During first-time setup, which plugin option should most users choose?
Up Next · Lesson 7
Jenkins Jobs Overview
Freestyle, Pipeline, Multibranch — five job types and exactly when to use each one.