Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/infra-neo/CICD/llms.txt

Use this file to discover all available pages before exploring further.

This page is a concise cheat sheet for daily operations with the CI/CD stack. Bookmark it for quick access to service URLs, credentials, Docker Compose commands, Maven goals, and pipeline parameters without needing to dig through longer guides.

Service URLs and Credentials

All services are available on localhost after running ./setup.sh. The Nexus admin password is generated on first startup — retrieve it with docker exec nexus cat /nexus-data/admin.password.
ServiceURLUsernamePassword
Jenkinshttp://localhost:8080adminadmin
SonarQubehttp://localhost:9000adminadmin
Nexushttp://localhost:8081admin[generated]
WildFly HTTPhttp://localhost:8090adminadmin
WildFly Adminhttp://localhost:9990adminadmin
JBoss HTTPhttp://localhost:8070adminadmin
JBoss Adminhttp://localhost:9970adminadmin
SonarQube requires a password change on first login. After changing it, update the sonarqube-token credential in Jenkins accordingly.

Port Reference

PortServicePurpose
8080JenkinsWeb UI
50000JenkinsAgent communication
9000SonarQubeWeb UI
8081NexusWeb UI
8090WildFlyHTTP
9990WildFlyAdmin Console
8070JBossHTTP
9970JBossAdmin Console
5432PostgreSQLDatabase (internal only)
If a port is already in use on your host, change the left-hand side of the mapping in docker-compose.yml (e.g. "8090:8080""8091:8080") and restart the stack.

Common Docker Compose Commands

# Start all services
docker compose up -d

# Stop all services
docker compose down

# Stop and remove volumes (destroys data)
docker compose down -v

# Restart all services
docker compose restart

# Restart specific service
docker compose restart wildfly

# View all logs
docker compose logs -f

# View specific service logs
docker compose logs -f jenkins

# Get Nexus admin password
docker exec nexus cat /nexus-data/admin.password

# Access container shell
docker exec -it wildfly /bin/bash

Building and Deploying

# Navigate to the example project
cd examples/webapp-sample

# Build with tests
mvn clean install

# Build, skip tests
mvn clean package -DskipTests

# Build and run SonarQube analysis
mvn clean verify sonar:sonar

# Deploy WAR to WildFly
docker cp target/*.war wildfly:/opt/jboss/wildfly/standalone/deployments/

# Deploy WAR to JBoss
docker cp target/*.war jboss:/opt/jboss/wildfly/standalone/deployments/

# Deploy using Maven plugin
mvn wildfly:deploy

# Deploy from ZIP source archive
./upload-source.sh myapp.zip dev wildfly

Pipeline Parameters

When creating or triggering Jenkins jobs, use these parameters:
ParameterValuesDescription
ENVIRONMENTdev, staging, prodTarget deployment environment
TARGET_SERVERwildfly, jbossApplication server to deploy to
SKIP_TESTStrue, falseSkip test execution during build
SKIP_SONARtrue, falseSkip SonarQube static analysis
FROM_ZIPtrue, falseBuild from a ZIP source archive

Maven Goals Reference

GoalDescription
cleanDelete the target/ build directory
compileCompile all Java source files
testCompile and run unit tests
packagePackage compiled code into a WAR or JAR
installInstall the artifact to the local Maven repository
deployUpload the artifact to Nexus
sonar:sonarRun SonarQube static analysis
clean installClean then build and install
clean package -DskipTestsBuild quickly without running tests
clean verify sonar:sonarFull build, verify, and analyze with SonarQube

Security Scanning Rules

The pipeline scans source code for hardcoded secrets. The following patterns will fail a build:
// These patterns cause build failure:
String password = "myPassword123";
String apiKey   = "sk_live_abc123";
String token    = "ghp_xyz123abc";
Replace them with environment variable lookups:
// Correct — read credentials from environment:
String password = System.getenv("DB_PASSWORD");
String apiKey   = System.getenv("API_KEY");
String token    = System.getenv("AUTH_TOKEN");
For properties files, use the placeholder syntax:
db.password=${DB_PASSWORD_DEV}
api.key=${API_KEY_PROD}
app.version=${APP_VERSION}

Checking Service Health

curl -s http://localhost:8080/login | grep -q 'Jenkins' && echo '✓ Jenkins OK'
curl -s http://localhost:9000/api/system/status
curl -s http://localhost:8090 | grep -q 'WildFly' && echo '✓ WildFly OK'
docker ps             # list all running containers
docker stats --no-stream  # resource usage snapshot

Backup and Restore Commands

# Create a timestamped backup
./backup-restore.sh backup

# List all available backups
./backup-restore.sh list

# Restore a specific backup (use timestamp from list)
./backup-restore.sh restore 20251025_143022
Always run ./backup-restore.sh backup before performing upgrades, configuration changes, or any destructive operation on the stack.

Version Check Commands

# Maven version
mvn -version

# Docker version
docker --version

# Docker Compose version
docker compose version

# Java version inside a container
docker exec wildfly java -version

Build docs developers (and LLMs) love