Floh
August 26, 2025, 6:47am
1
The Documentation states that there is rudimental integration with hawkbit but I can’t find any branch, repo or sample project holding this setup. I would like to evaluate the combination of hawkbit and OR for my use case.
Where can i find these changes?
Thanks,
Florian
Rich
September 4, 2025, 3:55pm
2
Hey @Floh ,
Here’s some docker compose services showing simple integration steps:
volumes:
deployment-data:
hawkbit-data:
hawkbit-artifact-data:
services:
# PROXY NEEDS A CUSTOM CONFIG TO ALLOW ACCESS TO HAWKBIT UI
proxy:
image: openremote/proxy:${PROXY_VERSION:-latest}
restart: always
depends_on:
manager:
condition: service_healthy
ports:
- "80:80"
- "443:443"
- "8883:8883"
- "127.0.0.1:8404:8404" # Localhost metrics access
volumes:
- proxy-data:/deployment
- /etc/haproxy/haproxy.cfg:/path/to/custom/haproxy.cfg
environment:
LE_EMAIL: ${OR_EMAIL_ADMIN}
DOMAINNAME: ${OR_HOSTNAME?OR_HOSTNAME must be set}
DOMAINNAMES: ${OR_ADDITIONAL_HOSTNAMES:-}
HAPROXY_CONFIG: '/data/proxy/haproxy.cfg'
hawkbitdb:
image: openremote/postgresql:${POSTGRESQL_VERSION:-latest}
restart: always
environment:
POSTGRES_DB: 'hawkbit'
healthcheck:
retries: 100
volumes:
- hawkbit-data:/var/lib/postgresql/data
hawkbit:
image: openremote/hawkbit:latest
restart: always
depends_on:
keycloak:
condition: service_healthy
hawkbitdb:
condition: service_healthy
proxy:
condition: service_healthy
healthcheck:
interval: 3s
timeout: 3s
start_period: 3s
retries: 100
test: ["CMD", "curl", "--fail", "--silent", "http://localhost:8080/hawkbit"]
volumes:
- hawkbit-artifact-data:/opt/hawkbit/artifactrepo
environment:
- LOGGING_LEVEL_ROOT=INFO
# - LOGGING_LEVEL_ORG_SPRINGFRAMEWORK_SECURITY=DEBUG
# - LOGGING_LEVEL_ORG_SPRINGFRAMEWORK_SECURITY_ACCESS_VOTE=INFO
# - LOGGING_LEVEL_ORG_SPRINGFRAMEWORK_SECURITY_ACCESS_INTERCEPT=INFO
- SPRING_DATASOURCE_URL=jdbc:postgresql://hawkbitdb:5432/hawkbit
- SPRING_DATASOURCE_USERNAME=postgres
- SPRING_DATASOURCE_PASSWORD=postgres
- spring.jpa.database=POSTGRESQL
- spring.datasource.driverClassName=org.postgresql.Driver
# - SPRING_RABBITMQ_HOST=rabbitmq
# - SPRING_RABBITMQ_USERNAME=guest
# - SPRING_RABBITMQ_PASSWORD=guest
- hawkbit.dmf.rabbitmq.enabled=false
# - hawkbit.artifact.url.protocols.download-http.hostname=${OR_HOSTNAME?OR_HOSTNAME must be set}
- hawkbit.artifact.url.protocols.download-http.port=443
- hawkbit.artifact.url.protocols.download-http.protocol=https
- 'hawkbit.artifact.url.protocols.download-http.ref={protocol}://{hostnameRequest}:{port}$${server.servlet.context-path}/{tenant}/controller/v1/{controllerId}/softwaremodules/{softwareModuleId}/artifacts/{artifactFileName}'
- hawkbit.server.ddi.security.authentication.targettoken.enabled=true
- server.use-forward-headers=true
- server.forward-headers-strategy=NATIVE
- server.servlet.context-path=/hawkbit
# OIDC config below
- spring.security.oauth2.client.registration.oidc.client-id=hawkbit
- spring.security.oauth2.client.registration.oidc.client-secret=${HAWKBIT_CLIENT_SECRET?HAWKBIT_CLIENT_SECRET must be set}
- spring.security.oauth2.client.registration.oidc.authorization-grant-type=authorization_code
- spring.security.oauth2.client.registration.oidc.scope=openid
- spring.security.oauth2.client.provider.oidc.issuer-uri=https://${OR_HOSTNAME?OR_HOSTNAME must be set}/auth/realms/master
- spring.security.oauth2.client.provider.oidc.user-name-attribute=preferred_username
ports:
- "8083:8080"
Custom haproxy.cfg snippet:
frontend https
.
.
.
# Insert the following above the last line (use_backend manager_backend)
acl hawkbit path_beg /hawkbit
use_backend hawkbit_backend if hawkbit
backend hawkbit_backend
server hawkbit hawkbit:8080 resolvers docker_resolver
system
Closed
December 3, 2025, 3:56pm
3
This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.