# wardviaene/jenkins-course architecture

> Architecture diagram of the GitHub repository wardviaene/jenkins-course, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/wardviaene/jenkins-course
- Repository: https://github.com/wardviaene/jenkins-course

## Overview

This repository is course material for Jenkins CI/CD with Pipelines and Docker, rather than an application with a documented runtime workflow. The tree identifies several pipeline examples, job DSL definitions, and Jenkins environment setup files. Source excerpts are unavailable, so the relationships between these materials and any external services cannot be verified.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_pipelines["Pipeline examples"]
  node_customapi["Custom API"]
  node_email["Email notifications"]
  node_jfrog["JFrog integration"]
  node_slack["Slack notifications"]
  node_sonarqube["SonarQube"]
  node_sshagent["SSH agent"]
end

subgraph group_jobs["Job definitions"]
  node_nodejob["Node.js job<br/>[nodejs.groovy]"]
  node_nodecontainer["Node.js Docker job"]
end

subgraph group_environment["Jenkins environment"]
  node_compose["Docker Compose<br/>[docker-compose.yml]"]
  node_slaveimage["Jenkins slave image"]
  node_slaveentry["Slave entrypoint<br/>[entrypoint.sh]"]
  node_slaveuserdata["Slave provisioning"]
  node_install["Jenkins installation<br/>[install_jenkins.sh]"]
  node_installdebian["Debian installation"]
end

click node_customapi "https://github.com/wardviaene/jenkins-course/blob/master/customapi-integration/Jenkinsfile"
click node_email "https://github.com/wardviaene/jenkins-course/blob/master/email-notifications/Jenkinsfile"
click node_jfrog "https://github.com/wardviaene/jenkins-course/blob/master/jfrog-integration/Jenkinsfile"
click node_slack "https://github.com/wardviaene/jenkins-course/blob/master/slack-notifications/Jenkinsfile"
click node_sonarqube "https://github.com/wardviaene/jenkins-course/blob/master/sonarqube/Jenkinsfile"
click node_sshagent "https://github.com/wardviaene/jenkins-course/blob/master/ssh-agent/Jenkinsfile"
click node_nodejob "https://github.com/wardviaene/jenkins-course/blob/master/job-dsl/nodejs.groovy"
click node_nodecontainer "https://github.com/wardviaene/jenkins-course/blob/master/job-dsl/nodejsdocker.groovy"
click node_compose "https://github.com/wardviaene/jenkins-course/blob/master/docker-compose/docker-compose.yml"
click node_slaveimage "https://github.com/wardviaene/jenkins-course/blob/master/jenkins-slave/Dockerfile"
click node_slaveentry "https://github.com/wardviaene/jenkins-course/blob/master/jenkins-slave/entrypoint.sh"
click node_slaveuserdata "https://github.com/wardviaene/jenkins-course/blob/master/jenkins-slave/digitalocean_userdata.sh"
click node_install "https://github.com/wardviaene/jenkins-course/blob/master/scripts/install_jenkins.sh"
click node_installdebian "https://github.com/wardviaene/jenkins-course/blob/master/scripts/install_jenkins_debian.sh"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_customapi,node_email,node_jfrog,node_slack,node_sonarqube,node_sshagent toneBlue
class node_nodejob,node_nodecontainer toneAmber
class node_compose,node_slaveimage,node_slaveentry,node_slaveuserdata,node_install,node_installdebian toneMint
```

## Components

### Pipeline examples

- [Custom API](https://github.com/wardviaene/jenkins-course/blob/master/customapi-integration/Jenkinsfile): `customapi-integration/Jenkinsfile`
- [Email notifications](https://github.com/wardviaene/jenkins-course/blob/master/email-notifications/Jenkinsfile): `email-notifications/Jenkinsfile`
- [JFrog integration](https://github.com/wardviaene/jenkins-course/blob/master/jfrog-integration/Jenkinsfile): `jfrog-integration/Jenkinsfile`
- [Slack notifications](https://github.com/wardviaene/jenkins-course/blob/master/slack-notifications/Jenkinsfile): `slack-notifications/Jenkinsfile`
- [SonarQube](https://github.com/wardviaene/jenkins-course/blob/master/sonarqube/Jenkinsfile): `sonarqube/Jenkinsfile`
- [SSH agent](https://github.com/wardviaene/jenkins-course/blob/master/ssh-agent/Jenkinsfile): `ssh-agent/Jenkinsfile`

### Job definitions

- [Node.js job](https://github.com/wardviaene/jenkins-course/blob/master/job-dsl/nodejs.groovy): `job-dsl/nodejs.groovy`
- [Node.js Docker job](https://github.com/wardviaene/jenkins-course/blob/master/job-dsl/nodejsdocker.groovy): `job-dsl/nodejsdocker.groovy`

### Jenkins environment

- [Docker Compose](https://github.com/wardviaene/jenkins-course/blob/master/docker-compose/docker-compose.yml): `docker-compose/docker-compose.yml`
- [Jenkins slave image](https://github.com/wardviaene/jenkins-course/blob/master/jenkins-slave/Dockerfile): `jenkins-slave/Dockerfile`
- [Slave entrypoint](https://github.com/wardviaene/jenkins-course/blob/master/jenkins-slave/entrypoint.sh): `jenkins-slave/entrypoint.sh`
- [Slave provisioning](https://github.com/wardviaene/jenkins-course/blob/master/jenkins-slave/digitalocean_userdata.sh): `jenkins-slave/digitalocean_userdata.sh`
- [Jenkins installation](https://github.com/wardviaene/jenkins-course/blob/master/scripts/install_jenkins.sh): `scripts/install_jenkins.sh`
- [Debian installation](https://github.com/wardviaene/jenkins-course/blob/master/scripts/install_jenkins_debian.sh): `scripts/install_jenkins_debian.sh`
