Hithomelabs/CFTunnels#150: Add Spring Boot Actuator health check endpoints for portainer-automation

- Add spring-boot-starter-actuator dependency to portainer-automation/build.gradle
- Configure management.server.port=8082 with health,info exposure in application.properties
- Map 5005:8082 in portainer-automation/docker-compose.yaml
- Add MGMT_PORT=5005 to portainer-automation/.env.example
- EXPOSE 8081 8082 in portainer-automation Dockerfile
- No ActuatorSecurityConfig needed: service has no Spring Security/OIDC
- Management port stays LAN-only, NOT added to any tunnel ingress
This commit is contained in:
hitanshu310 2026-08-02 23:57:44 +05:30
parent b9c39ad990
commit 48cd8d242f
5 changed files with 13 additions and 1 deletions

View File

@ -36,3 +36,6 @@ ENV=dev
# Host port to map to container port 8081
HOST_PORT=8081
# Host port to map to actuator management port 8082 (health checks, LAN only)
MGMT_PORT=5005

View File

@ -9,4 +9,5 @@ RUN ./gradlew :portainer-automation:bootJar
FROM openjdk:17-jdk-slim
COPY --from=build /app/portainer-automation/build/libs/*.jar app.jar
EXPOSE 8081 8082
ENTRYPOINT ["java", "-jar", "/app.jar"]

View File

@ -5,6 +5,7 @@ dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'org.apache.httpcomponents.client5:httpclient5'
compileOnly 'org.projectlombok:lombok'

View File

@ -3,7 +3,8 @@ services:
image: gitea.hithomelabs.com/hithomelabs/portainer-automation:${ENV:-test}
container_name: portainer-automation_${ENV:-test}
ports:
- "${HOST_PORT:-8081}:8081"
- "${HOST_PORT:-8081}:8081" # Application port (internal service)
- "${MGMT_PORT:-5005}:8082" # Health management port (LAN only)
environment:
- SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE:-local}
- PORTAINER_API_KEY=${PORTAINER_API_KEY}

View File

@ -3,3 +3,9 @@ portainer.base-url=https://192.168.0.100:9442
portainer.api-key=${PORTAINER_API_KEY:}
portainer.endpoint-id=1
portainer.service.api-key=${PORTAINER_SERVICE_API_KEY:change-me}
# Actuator configuration - management port and exposed endpoints
# App runs on server.port=8081, so management port must differ (8082)
management.server.port=8082
management.endpoints.web.exposure.include=health,info
management.endpoint.health.show-details=when-authorized