Spring Boot H2 + Spring Data JPA Thymeleaf + UI

ktool-web-status

A modern, multi-tab URL health monitoring web application built with Spring Boot, H2, Spring Data JPA, async processing, and a Thymeleaf + Bootstrap 5 UI.

Características Principales

Multi-Tab Organization

Group URLs into logical tabs.

Async Validation

Click Validate All to check all URLs concurrently.

Status Tracking

Stores HTTP status, times, and errors.

CSV Import/Export

Bulk-import and export URLs from CSV.

Persistent H2 Database

Data survives restarts with built-in web UI.

Modern Dark UI

Responsive, dark-themed interface.

Instalación y Despliegue

Ejecuta la herramienta a través de Docker. Dockerfile.example

Build the image

docker build -t ktool-web-status -f Dockerfile.example .

Basic Run

docker run -p 8080:8080 ktool-web-status

With Custom SSL

docker run \ -e SERVER_PORT=8443 \ -e SERVER_SSL_KEY_STORE=file:/certs/keystore.p12 \ -e SERVER_SSL_KEY_STORE_PASSWORD=secret \ -e SERVER_SSL_KEY_STORE_TYPE=PKCS12 \ -v /path/to/certs:/certs \ -p 8443:8443 \ ktool-web-status

Configuration Variables

docker run \ -e SERVER_PORT=8080 \ -e SPRING_DATASOURCE_URL=jdbc:h2:file:./data/monitor-db \ -e ASYNC_CORE_POOL_SIZE=5 \ -e MONITOR_CONNECTION_TIMEOUT_MS=10000 \ -p 8080:8080 \ ktool-web-status
Configurable Properties
Property Default
async.core-pool-size 5
async.max-pool-size 20
async.queue-capacity 100
monitor.connection-timeout-ms 10000
monitor.read-timeout-ms 15000
server.port 8080
spring.datasource.url jdbc:h2:file:./data/monitor-db;AUTO_SERVER=TRUE
spring.h2.console.enabled true
spring.jpa.hibernate.ddl-auto update

Usage Guide

Crear una Pestaña

  • Click New Tab
  • Enter a name
  • Create Tab

Añadir URLs

  • Navigate to tab
  • Add URL
  • Fill out details

Validating URLs

  • Click Validate All
  • OK Code matches expected
  • FAIL Code differs
  • ERROR Network/Connection error

CSV Format

url,expectedCode,tags,description https://kanopus.cl,200,"web,prod",Sitio principal https://api.kanopus.cl,200,"api,prod",Health