Skip to content

bob-cd/muck

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Muck - Bob CI/CD Monitor

A modern web-based user interface for Bob CI/CD built with Helidon Nima and HTMX.

Features

  • Real-time Pipeline Monitoring: Auto-refreshing pipeline list using HTMX
  • Server-Side Rendering: No complex JavaScript frameworks, just clean HTML
  • OpenAPI Integration: Client validates against Bob's OpenAPI specification
  • Virtual Threads: Built on Helidon Nima with Java 21's Project Loom for efficient concurrency
  • Modern UI: Beautiful, responsive interface built with DaisyUI and Tailwind CSS

Requirements

  • Java 21+ (required for virtual threads)
  • Maven 3.8+
  • Bob CI/CD server running (default: http://localhost:7777)

Quick Start

1. Start Bob CI/CD

Using compose or kubernetes

This will start:

  • Bob API server (port 7777)
  • RabbitMQ message queue
  • etcd distributed storage
  • Supporting services (runner, artifact store, etc.)

2. Build the Application

Use JDK Version 21 or higher

mvn clean package

3. Run the Application

java -jar target/muck-1.0.0.jar

Or use Maven directly:

mvn exec:java -Dexec.mainClass=muck.Main

4. Access the Web UI

Open your browser to:

http://localhost:7999

Configuration

Edit src/main/resources/application.yaml to configure:

server:
  port: 7999        # Web server port
  host: "0.0.0.0"   # Bind address

dev-mode: false # auto reload freemarker templates

locale: en_us # set locale for date formatting

bob:
  url: "http://localhost:7777"  # Bob API URL
  logger: "logger-local" # Default Logger

Default Logger

Currently the apiserver expects that the logger is passed on every run. That means a UI needs offer the ability to select a logger for each run and maybe set defaults or cache a decision. The current discussion about the logger is here.

Technology Stack

  • Helidon Nima: Modern Java web framework with virtual threads
  • HTMX: High-power tools for HTML
  • DaisyUI: Tailwind CSS component library
  • Tailwind CSS: Utility-first CSS framework
  • FreeMarker: Template engine
  • OpenAPI: API specification and validation
  • Java 21: Virtual threads (Project Loom)

Development

Running Tests

mvn test

Code Style

This project uses modern Java 21+ syntax. See JAVA_STYLE.md for detailed guidelines including:

  • Type inference with var
  • Records for data classes
  • Switch expressions
  • Text blocks
  • Streams and functional programming
  • Code organization and formatting

Quick summary:

  • Use var where type is obvious
  • Prefer records over traditional classes for data
  • Use switch expressions over statements
  • Leverage Java 21+ features
  • See .editorconfig for formatting rules

Java version issues

Verify Java 21+:

java -version

Should show version 21 or higher.

License

Muck like Bob is Free and Open Source and always will be. Licensed fully under MIT

Contributing

Contributions welcome! Please ensure:

  • Code compiles with Java 21
  • Templates are valid FreeMarker
  • HTMX attributes are properly used
  • OpenAPI spec validation passes
  • Tests run

About

Bob-CD Graphical User Interface

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors