Add new sandbox (#741)
* Add new sandbox files and remove temporary unavailable notice * remove old deployment script * adapt application properties * restructure hawkbit-runtime * move sandbox description. * adapt license checks * Introduce review findings and add new docker files * Remove redundant profile and attribute * Update website * redirect to sandbox * getting started * Add description for docker folder and renew favicon
This commit is contained in:
@@ -7,7 +7,7 @@ Eclipse [hawkBit](http://www.eclipse.org/hawkbit/index.html) is an domain indepe
|
|||||||
Build: [](https://circleci.com/gh/eclipse/hawkbit)
|
Build: [](https://circleci.com/gh/eclipse/hawkbit)
|
||||||
[](https://maven-badges.herokuapp.com/maven-central/org.eclipse.hawkbit/hawkbit-parent)
|
[](https://maven-badges.herokuapp.com/maven-central/org.eclipse.hawkbit/hawkbit-parent)
|
||||||
|
|
||||||
Docker images: [](https://hub.docker.com/r/hawkbit/hawkbit-update-server) [](https://hub.docker.com/r/hawkbit/hawkbit-update-server)
|
Docker images: [](https://hub.docker.com/r/hawkbit/hawkbit-update-server) [](https://hub.docker.com/r/hawkbit/hawkbit-update-server)
|
||||||
|
|
||||||
# Documentation
|
# Documentation
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@ Next to the hawkBit core hosted here the project maintains as well [examples](ht
|
|||||||
|
|
||||||
We offer a sandbox installation that is free for everyone to try out hawkBit. However, keep in mind that the sandbox database will be reset from time to time. It is also not possible to upload any artifacts into the sandbox. But you can use it to try out the Management UI, Management API and DDI API. Keep in mind as well that you are not permitted to store any kind of personal data in the sandbox.
|
We offer a sandbox installation that is free for everyone to try out hawkBit. However, keep in mind that the sandbox database will be reset from time to time. It is also not possible to upload any artifacts into the sandbox. But you can use it to try out the Management UI, Management API and DDI API. Keep in mind as well that you are not permitted to store any kind of personal data in the sandbox.
|
||||||
|
|
||||||
_NOTE: The sandbox is currently unavailable. We will be back soon!_
|
[https://hawkbit.eclipse.org](https://hawkbit.eclipse.org)
|
||||||
|
|
||||||
In addition the following vendors offer free trial accounts for their hawkBit compatible products:
|
In addition the following vendors offer free trial accounts for their hawkBit compatible products:
|
||||||
|
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2015 Bosch Software Innovations GmbH and others.
|
|
||||||
#
|
|
||||||
# All rights reserved. This program and the accompanying materials
|
|
||||||
# are made available under the terms of the Eclipse Public License v1.0
|
|
||||||
# which accompanies this distribution, and is available at
|
|
||||||
# http://www.eclipse.org/legal/epl-v10.html
|
|
||||||
#
|
|
||||||
|
|
||||||
# This script allows the deployment of the complete hawkBit sandbox including
|
|
||||||
# data example to a cloud foundry enviroment. Expects existing CF CLI
|
|
||||||
# installation and login to be existing already.
|
|
||||||
|
|
||||||
cf api https://api.eu-gb.bluemix.net
|
|
||||||
cf login
|
|
||||||
cf stop hawkbit-simulator
|
|
||||||
cd hawkbit-runtime/hawkbit-update-server/target/
|
|
||||||
cf push
|
|
||||||
cd ../../../../hawkbit-examples/
|
|
||||||
java -jar hawkbit-example-mgmt-simulator/target/hawkbit-example-mgmt-simulator-0.3.0-SNAPSHOT-exec.jar --hawkbit.url=https://hawkbit-demo-sandbox.eu-gb.mybluemix.net --hawkbit.username=demo --hawkbit.password=demo
|
|
||||||
cd hawkbit-device-simulator/target/
|
|
||||||
cf push
|
|
||||||
cd ../../..
|
|
||||||
@@ -6,10 +6,12 @@ weight: 20
|
|||||||
## On Sandbox
|
## On Sandbox
|
||||||
|
|
||||||
We offer a sandbox installation that is free for everyone to try out hawkBit's [Management UI](/hawkbit/ui/),
|
We offer a sandbox installation that is free for everyone to try out hawkBit's [Management UI](/hawkbit/ui/),
|
||||||
[Management API](/hawkbit/apis/management_api/), and [Direct Device Integration API](/hawkbit/apis/ddi_api/).
|
[Management API](/hawkbit/apis/management_api/), and [Direct Device Integration API](/hawkbit/apis/ddi_api/):
|
||||||
|
**[<i class="fas fa-desktop"> </i> https://hawkbit.eclipse.org](https://hawkbit.eclipse.org)**
|
||||||
|
|
||||||
{{% warning %}}
|
{{% warning %}}
|
||||||
The hawkBit sandbox is currently unavailable. [More infos ...](/hawkbit/sandbox/sandboxunavailable/)
|
The sandbox is a shared installation that will be reset from time to time. Therefore, it is not allowed to upload
|
||||||
|
any personal data.
|
||||||
{{% /warning %}}
|
{{% /warning %}}
|
||||||
|
|
||||||
In addition, the following vendors offer free trial accounts for their Eclipse hawkBit compatible products:
|
In addition, the following vendors offer free trial accounts for their Eclipse hawkBit compatible products:
|
||||||
@@ -19,22 +21,43 @@ In addition, the following vendors offer free trial accounts for their Eclipse h
|
|||||||
|
|
||||||
## From Docker Image
|
## From Docker Image
|
||||||
|
|
||||||
### Update server only
|
### Overview
|
||||||
|
|
||||||
```sh
|
| Service / Container | A | B | C |
|
||||||
$ docker run -d -p 8080:8080 hawkbit/hawkbit-update-server
|
|---|---|---|---|
|
||||||
|
| hawkBit Update Server | ✓ | ✓ | ✓ |
|
||||||
|
| hawkBit Device Simulator | | | ✓ |
|
||||||
|
| MySQL | | ✓ | ✓ |
|
||||||
|
| RabbitMQ | | ✓ | ✓ |
|
||||||
|
|
||||||
|
### A: Run hawkBit Update Server as Docker Container
|
||||||
|
|
||||||
|
Start the hawkBit Update Server as a single container
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ docker run -p 8080:8080 hawkbit/hawkbit-update-server:latest
|
||||||
```
|
```
|
||||||
|
|
||||||
### Updates server + MySql + RabbitMq
|
### B: Run hawkBit Update Server with services as Docker Compose
|
||||||
|
|
||||||
```sh
|
Start the hawkBit Update Server together with an MySQL and RabbitMQ instance as containers
|
||||||
|
|
||||||
|
```bash
|
||||||
$ git clone https://github.com/eclipse/hawkbit.git
|
$ git clone https://github.com/eclipse/hawkbit.git
|
||||||
$ cd hawkbit/hawkbit-runtime/hawkbit-update-server/docker
|
$ cd hawkbit/hawkbit-runtime/hawkbit-update-server/docker
|
||||||
$ docker-compose up -d
|
$ docker-compose up -d
|
||||||
```
|
```
|
||||||
{{% note %}}
|
|
||||||
Requires Docker-Compose installed.
|
### C: Run hawkBit Update Server with services as Docker Stack
|
||||||
{{% /note %}}
|
|
||||||
|
Start the hawkBit Update Server and Device Simulator together with an MySQL and RabbitMQ instance as services within a swarm
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ git clone https://github.com/eclipse/hawkbit.git
|
||||||
|
$ cd hawkbit/hawkbit-runtime/hawkbit-update-server/docker
|
||||||
|
$ docker stack init
|
||||||
|
$ docker stack deploy -c docker-compose-stack.yml hawkbit
|
||||||
|
```
|
||||||
|
|
||||||
## From Sources
|
## From Sources
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,12 @@ title: Release Notes
|
|||||||
weight: 100
|
weight: 100
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 0.2.2
|
||||||
|
|
||||||
|
**Release Date:** Thursday, September 21, 2018 <br />
|
||||||
|
[Tag](https://github.com/eclipse/hawkbit/releases/tag/0.2.2) /
|
||||||
|
[Release](https://github.com/eclipse/hawkbit/milestone/10?closed=1)
|
||||||
|
|
||||||
## 0.2.1
|
## 0.2.1
|
||||||
|
|
||||||
**Release Date:** Friday, July 6, 2018 <br />
|
**Release Date:** Friday, July 6, 2018 <br />
|
||||||
|
|||||||
4
docs/content/sandbox.md
Normal file
4
docs/content/sandbox.md
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
title: Sandbox
|
||||||
|
redirectURL: https://hawkbit.eclipse.org
|
||||||
|
---
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
---
|
|
||||||
title: Sandbox
|
|
||||||
weight: -201
|
|
||||||
---
|
|
||||||
|
|
||||||
## We are sorry, but the sandbox is currently unavailable
|
|
||||||
|
|
||||||
{{% warning %}}
|
|
||||||
We are migrating the hawkBit Sandbox to be hosted by the Eclipse Foundation. Therefore, it is currently unavailable.
|
|
||||||
We will be back soon.
|
|
||||||
{{% /warning %}}
|
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
{{ if (eq (trim .Site.Params.provider " " | lower) "github") | and (isset .Site.Params "repo_url") }}
|
{{ if (eq (trim .Site.Params.provider " " | lower) "github") | and (isset .Site.Params "repo_url") }}
|
||||||
<ul class="repo">
|
<ul class="repo">
|
||||||
<li class="repo-download">
|
<li class="repo-download">
|
||||||
<a href="/hawkbit/sandbox/sandboxunavailable/" target="_blank" title="hawkBit Sandbox" data-action="sandbox">
|
<a href="https://hawkbit.eclipse.org" target="_blank" title="hawkBit Sandbox" data-action="sandbox">
|
||||||
<i class="fas fa-desktop"></i> Sandbox
|
<i class="fas fa-desktop"></i> Sandbox
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -27,6 +27,8 @@
|
|||||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
||||||
|
|
||||||
|
{{ if .Params.redirectURL }}<meta http-equiv="refresh" content="1; url={{ .Params.redirectURL }}"/>{{ end }}
|
||||||
|
|
||||||
<link rel="shortcut icon" type="image/x-icon" href="{{ with .Site.Params.favicon }}{{ . | absURL }}{{ else }}{{ "images/favicon.ico" | absURL }}{{ end }}">
|
<link rel="shortcut icon" type="image/x-icon" href="{{ with .Site.Params.favicon }}{{ . | absURL }}{{ else }}{{ "images/favicon.ico" | absURL }}{{ end }}">
|
||||||
<link rel="icon" type="image/x-icon" href="{{ with .Site.Params.favicon }}{{ . | absURL }}{{ else }}{{ "images/favicon.ico" | absURL }}{{ end }}">
|
<link rel="icon" type="image/x-icon" href="{{ with .Site.Params.favicon }}{{ . | absURL }}{{ else }}{{ "images/favicon.ico" | absURL }}{{ end }}">
|
||||||
|
|
||||||
|
|||||||
55
hawkbit-runtime/.sandbox/README.md
Normal file
55
hawkbit-runtime/.sandbox/README.md
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
hawkBit Sandbox
|
||||||
|
===
|
||||||
|
|
||||||
|
## Try out the update server in our hawkBit sandbox
|
||||||
|
|
||||||
|
- try out Management UI https://hawkbit.eclipse.org (username: demo, passwd: demo)
|
||||||
|
- try out Management API https://hawkbit.eclipse.org/rest/v1/targets (don't forget basic auth header; username: demo, passwd: demo)
|
||||||
|
- try out DDI API https://hawkbit.eclipse.org/DEFAULT/controller/v1/MYTESTDEVICE
|
||||||
|
|
||||||
|
|
||||||
|
## Sandbox Setup
|
||||||
|
|
||||||
|
**1. File Structure**
|
||||||
|
|
||||||
|
Copy the files to the respective location on the VM.
|
||||||
|
|
||||||
|
```
|
||||||
|
/
|
||||||
|
+.sandbox
|
||||||
|
|
|
||||||
|
+-stacks
|
||||||
|
| +-sandbox
|
||||||
|
| | +-docker-compose-stack.yml
|
||||||
|
| +-proxy
|
||||||
|
| +-docker-compose-stack.yml
|
||||||
|
+- scripts
|
||||||
|
+-intialize-cronjobs.sh
|
||||||
|
+-sandbox-cleanup.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
**2. Initialize Cronjobs**
|
||||||
|
|
||||||
|
Reset the Sandbox once a week with a cron-job and log its output.
|
||||||
|
|
||||||
|
```
|
||||||
|
$ sudo /.sandbox/scripts/initialize-cronjobs.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
**3. Nginx Reverse Proxy**
|
||||||
|
|
||||||
|
Start the stack for the Nginx reverse proxy with Let's Encrypt support. Thanks to JrCs for providing the Docker container
|
||||||
|
and instructions with his [Docker-Letsencrypt-Nginx-Companion](https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion).
|
||||||
|
|
||||||
|
```
|
||||||
|
$ docker stack deploy -c /.sandbox/stacks/sandbox/docker-compose-stack.yml proxy
|
||||||
|
```
|
||||||
|
|
||||||
|
**4. hawkBit**
|
||||||
|
|
||||||
|
Start the hawkBit stack.
|
||||||
|
|
||||||
|
```
|
||||||
|
$ docker stack deploy -c /.sandbox/stacks/sandbox/docker-compose-stack.yml hawkbit
|
||||||
|
```
|
||||||
28
hawkbit-runtime/.sandbox/scripts/initialize-cronjobs.sh
Normal file
28
hawkbit-runtime/.sandbox/scripts/initialize-cronjobs.sh
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2018 Bosch Software Innovations GmbH and others.
|
||||||
|
#
|
||||||
|
# All rights reserved. This program and the accompanying materials
|
||||||
|
# are made available under the terms of the Eclipse Public License v1.0
|
||||||
|
# which accompanies this distribution, and is available at
|
||||||
|
# http://www.eclipse.org/legal/epl-v10.html
|
||||||
|
#
|
||||||
|
|
||||||
|
SCRIPT_DIR="/.sandbox/scripts"
|
||||||
|
LOGFILE_DIR="/.sandbox/logs"
|
||||||
|
|
||||||
|
# m h dom mon dow user command
|
||||||
|
SANDBOX_CLEANUP_JOB="0 0 * * 0 root ${SCRIPT_DIR}/sandbox-cleanup.sh >> ${LOGFILE_DIR}/\$(date +\%F)-hawkbit 2>&1"
|
||||||
|
LOGFILE_CLEANUP_JOB="0 0 0 * * root find ${LOGFILE_DIR}* -mtime +182 -exec rm {} \; >/dev/null 2>&1"
|
||||||
|
|
||||||
|
CRONTAB_FILE="/etc/crontab"
|
||||||
|
|
||||||
|
|
||||||
|
# Create directory for log files
|
||||||
|
mkdir -p ${LOGFILE_DIR}
|
||||||
|
|
||||||
|
|
||||||
|
echo "# Reset hawkBit stack once a week to delete all data" >> "${CRONTAB_FILE}"
|
||||||
|
echo "${SANDBOX_CLEANUP_JOB}" >> "${CRONTAB_FILE}"
|
||||||
|
|
||||||
|
echo "# Remove log files documenting reset, that are older than 6 months" >> "${CRONTAB_FILE}"
|
||||||
|
echo "${LOGFILE_CLEANUP_JOB}" >> "${CRONTAB_FILE}"
|
||||||
51
hawkbit-runtime/.sandbox/scripts/sandbox-cleanup.sh
Normal file
51
hawkbit-runtime/.sandbox/scripts/sandbox-cleanup.sh
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2018 Bosch Software Innovations GmbH and others.
|
||||||
|
#
|
||||||
|
# All rights reserved. This program and the accompanying materials
|
||||||
|
# are made available under the terms of the Eclipse Public License v1.0
|
||||||
|
# which accompanies this distribution, and is available at
|
||||||
|
# http://www.eclipse.org/legal/epl-v10.html
|
||||||
|
#
|
||||||
|
|
||||||
|
STACK_NAME=hawkbit
|
||||||
|
|
||||||
|
echo "/------------------------------------------------------------------------------"
|
||||||
|
echo "| Data Clean Up START: $(date -u) "
|
||||||
|
echo "+------------------------------------------------------------------------------"
|
||||||
|
echo "|"
|
||||||
|
echo "+-- Remove Docker Stack:"
|
||||||
|
docker stack rm $STACK_NAME
|
||||||
|
sleep 15
|
||||||
|
echo "|"
|
||||||
|
echo "+-- Remove Docker Container:"
|
||||||
|
docker container prune --force
|
||||||
|
sleep 5
|
||||||
|
echo "|"
|
||||||
|
echo "+-- Remove Docker Volumes:"
|
||||||
|
docker volume prune --force
|
||||||
|
echo "|"
|
||||||
|
echo "+-- Verify Docker Container:"
|
||||||
|
docker container ls --all
|
||||||
|
echo "|"
|
||||||
|
echo "+-- Verify Docker Volumes:"
|
||||||
|
docker volume ls
|
||||||
|
echo "|"
|
||||||
|
echo "+-- Restart Docker Stack:"
|
||||||
|
docker stack deploy -c /.sandbox/stacks/sandbox/docker-compose-stack.yml $STACK_NAME
|
||||||
|
echo "|"
|
||||||
|
# Value is based on trial and error
|
||||||
|
echo "+-- Wait for hawkBit to start (320s):"
|
||||||
|
sleep 320
|
||||||
|
echo "|"
|
||||||
|
# Device Simulator has to be restarted, since hawkBit takes too long to start
|
||||||
|
echo "+-- Restart Device Simulator:"
|
||||||
|
docker service update --force hawkbit_simulator
|
||||||
|
echo "|"
|
||||||
|
# Images used by a container are not deleted. Therefore, we run this after the stacks
|
||||||
|
# are started. Only unused images will be deleted.
|
||||||
|
echo "+-- Clean up Docker:"
|
||||||
|
docker system prune --force
|
||||||
|
echo "+------------------------------------------------------------------------------"
|
||||||
|
echo "| END: $(date -u) "
|
||||||
|
echo "\------------------------------------------------------------------------------"
|
||||||
|
echo ""
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2018 Bosch Software Innovations GmbH and others.
|
||||||
|
#
|
||||||
|
# All rights reserved. This program and the accompanying materials
|
||||||
|
# are made available under the terms of the Eclipse Public License v1.0
|
||||||
|
# which accompanies this distribution, and is available at
|
||||||
|
# http://www.eclipse.org/legal/epl-v10.html
|
||||||
|
#
|
||||||
|
|
||||||
|
version: '3.7'
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
vhost:
|
||||||
|
challange:
|
||||||
|
certificates:
|
||||||
|
|
||||||
|
networks:
|
||||||
|
proxy:
|
||||||
|
driver: overlay
|
||||||
|
|
||||||
|
services:
|
||||||
|
|
||||||
|
# ---------------------
|
||||||
|
# nginx reverse proxy
|
||||||
|
# ---------------------
|
||||||
|
nginx:
|
||||||
|
image: "jwilder/nginx-proxy"
|
||||||
|
ports:
|
||||||
|
- 80:80
|
||||||
|
- 443:443
|
||||||
|
networks:
|
||||||
|
- proxy
|
||||||
|
volumes:
|
||||||
|
- certificates:/etc/nginx/certs:ro
|
||||||
|
- vhost:/etc/nginx/vhost.d
|
||||||
|
- challange:/usr/share/nginx/html
|
||||||
|
- /var/run/docker.sock:/tmp/docker.sock:ro
|
||||||
|
deploy:
|
||||||
|
replicas: 1
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
labels:
|
||||||
|
- "com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy"
|
||||||
|
|
||||||
|
# ---------------------
|
||||||
|
# lets encrypt nginx-proxy companion
|
||||||
|
# ---------------------
|
||||||
|
letsencrypt:
|
||||||
|
image: "jrcs/letsencrypt-nginx-proxy-companion"
|
||||||
|
networks:
|
||||||
|
- proxy
|
||||||
|
volumes:
|
||||||
|
- certificates:/etc/nginx/certs:rw
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
|
- vhost:/etc/nginx/vhost.d
|
||||||
|
- challange:/usr/share/nginx/html
|
||||||
|
deploy:
|
||||||
|
replicas: 1
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
@@ -0,0 +1,76 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2018 Bosch Software Innovations GmbH and others.
|
||||||
|
#
|
||||||
|
# All rights reserved. This program and the accompanying materials
|
||||||
|
# are made available under the terms of the Eclipse Public License v1.0
|
||||||
|
# which accompanies this distribution, and is available at
|
||||||
|
# http://www.eclipse.org/legal/epl-v10.html
|
||||||
|
#
|
||||||
|
|
||||||
|
version: '3.7'
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
vhost:
|
||||||
|
challange:
|
||||||
|
|
||||||
|
networks:
|
||||||
|
proxy_proxy:
|
||||||
|
external: true
|
||||||
|
sandbox:
|
||||||
|
driver: overlay
|
||||||
|
|
||||||
|
services:
|
||||||
|
|
||||||
|
# ---------------------
|
||||||
|
# hawkBit service
|
||||||
|
# ---------------------
|
||||||
|
hawkbit:
|
||||||
|
image: "hawkbit/hawkbit-update-server:latest"
|
||||||
|
networks:
|
||||||
|
- proxy_proxy
|
||||||
|
- sandbox
|
||||||
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
environment:
|
||||||
|
- 'SPRING_PROFILES_ACTIVE=cloudsandbox'
|
||||||
|
- 'SPRING_RABBITMQ_HOST=rabbitmq'
|
||||||
|
- 'SPRING_RABBITMQ_USERNAME=guest'
|
||||||
|
- 'SPRING_RABBITMQ_PASSWORD=guest'
|
||||||
|
- 'VIRTUAL_HOST=hawkbit.eclipse.org'
|
||||||
|
- 'LETSENCRYPT_HOST=hawkbit.eclipse.org'
|
||||||
|
|
||||||
|
# ---------------------
|
||||||
|
# hawkBit simulator
|
||||||
|
# ---------------------
|
||||||
|
simulator:
|
||||||
|
image: "hawkbit/hawkbit-device-simulator:latest"
|
||||||
|
networks:
|
||||||
|
- sandbox
|
||||||
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
environment:
|
||||||
|
- 'SPRING_RABBITMQ_VIRTUALHOST=/'
|
||||||
|
- 'SPRING_RABBITMQ_HOST=rabbitmq'
|
||||||
|
- 'SPRING_RABBITMQ_PORT=5672'
|
||||||
|
- 'SPRING_RABBITMQ_USERNAME=guest'
|
||||||
|
- 'SPRING_RABBITMQ_PASSWORD=guest'
|
||||||
|
- 'SPRING_RABBITMQ_SSL_ENABLED=false'
|
||||||
|
- 'HAWKBIT_DEVICES_SIMULATOR_AMQP_RECEIVERCONNECTORQUEUEFROMSP=sp_direct_queue'
|
||||||
|
- 'HAWKBIT_DEVICES_SIMULATOR_AMQP_SENDERFORSPEXCHANGE=sp.direct.exchange'
|
||||||
|
- 'HAWKBIT_DEVICES_SIMULATOR_AMQP_DEADLETTERQUEUE=sp_direct_queue_deadletter_ttl'
|
||||||
|
- 'HAWKBIT_DEVICES_SIMULATOR_AMQP_DEADLETTEREXCHANGE=sp.direct.exchange.deadletter'
|
||||||
|
|
||||||
|
# ---------------------
|
||||||
|
# RabbitMQ service
|
||||||
|
# ---------------------
|
||||||
|
rabbitmq:
|
||||||
|
image: "rabbitmq:3-management"
|
||||||
|
networks:
|
||||||
|
- sandbox
|
||||||
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
environment:
|
||||||
|
RABBITMQ_DEFAULT_VHOST: "/"
|
||||||
9
hawkbit-runtime/README.md
Normal file
9
hawkbit-runtime/README.md
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
hawkBit Runtime
|
||||||
|
===
|
||||||
|
|
||||||
|
|
||||||
|
| Folder | Description |
|
||||||
|
|--------|-------------|
|
||||||
|
| `.sandbox/` | Content of the hawkBit sandbox installation running on [hawkbit.eclipse.org](https://hawkbit.eclipse.org/UI/). |
|
||||||
|
| `docker/` | Docker related files, such es Dockerfiles, compose and stack files to quickly start up an hawkBit. |
|
||||||
|
| `hawkbit-update-server/` | Spring-Boot application of hawkBit. |
|
||||||
15
hawkbit-runtime/docker/0.2.2-mysql/Dockerfile
Normal file
15
hawkbit-runtime/docker/0.2.2-mysql/Dockerfile
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
FROM hawkbit/hawkbit-update-server:0.2.2
|
||||||
|
|
||||||
|
ENV MARIADB_DRIVER_VERSION=2.2.6
|
||||||
|
|
||||||
|
COPY KEYS .
|
||||||
|
|
||||||
|
RUN set -x \
|
||||||
|
&& apk add --no-cache --virtual build-dependencies gnupg unzip libressl wget \
|
||||||
|
&& gpg --import KEYS \
|
||||||
|
&& wget -O $JAVA_HOME/lib/ext/mariadb-java-client.jar --no-verbose http://downloads.mariadb.com/Connectors/java/connector-java-$MARIADB_DRIVER_VERSION/mariadb-java-client-$MARIADB_DRIVER_VERSION.jar \
|
||||||
|
&& wget -O $JAVA_HOME/lib/ext/mariadb-java-client.jar.asc --no-verbose http://downloads.mariadb.com/Connectors/java/connector-java-$MARIADB_DRIVER_VERSION/mariadb-java-client-$MARIADB_DRIVER_VERSION.jar.asc \
|
||||||
|
&& gpg --verify --batch $JAVA_HOME/lib/ext/mariadb-java-client.jar.asc $JAVA_HOME/lib/ext/mariadb-java-client.jar \
|
||||||
|
&& apk del build-dependencies
|
||||||
|
|
||||||
|
ENTRYPOINT ["java","-jar","hawkbit-update-server.jar","--spring.profiles.active=mysql","-Xms768m -Xmx768m -XX:MaxMetaspaceSize=250m -XX:MetaspaceSize=250m -Xss300K -XX:+UseG1GC -XX:+UseStringDeduplication -XX:+UseCompressedOops -XX:+HeapDumpOnOutOfMemoryError"]
|
||||||
40
hawkbit-runtime/docker/0.2.2-mysql/KEYS
Normal file
40
hawkbit-runtime/docker/0.2.2-mysql/KEYS
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
Version: SKS 1.1.6
|
||||||
|
Comment: Hostname: pgp.mit.edu
|
||||||
|
|
||||||
|
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
|
||||||
|
FsnHsQksxFhCqGYdUKyfRsobs/Ns
|
||||||
|
=ovQp
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
23
hawkbit-runtime/docker/0.2.2/Dockerfile
Normal file
23
hawkbit-runtime/docker/0.2.2/Dockerfile
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
FROM openjdk:8u171-jre-alpine
|
||||||
|
|
||||||
|
ENV HAWKBIT_VERSION=0.2.2 \
|
||||||
|
HAWKBIT_HOME=/opt/hawkbit
|
||||||
|
|
||||||
|
EXPOSE 8080
|
||||||
|
|
||||||
|
COPY KEY .
|
||||||
|
|
||||||
|
RUN set -x \
|
||||||
|
&& apk add --no-cache --virtual build-dependencies gnupg unzip libressl wget \
|
||||||
|
&& gpg --import KEY \
|
||||||
|
&& mkdir -p $HAWKBIT_HOME \
|
||||||
|
&& cd $HAWKBIT_HOME \
|
||||||
|
&& wget -O hawkbit-update-server.jar --no-verbose https://repo1.maven.org/maven2/org/eclipse/hawkbit/hawkbit-update-server/$HAWKBIT_VERSION/hawkbit-update-server-$HAWKBIT_VERSION.jar \
|
||||||
|
&& wget -O hawkbit-update-server.jar.asc --no-verbose https://repo1.maven.org/maven2/org/eclipse/hawkbit/hawkbit-update-server/$HAWKBIT_VERSION/hawkbit-update-server-$HAWKBIT_VERSION.jar.asc \
|
||||||
|
&& gpg --batch --verify hawkbit-update-server.jar.asc hawkbit-update-server.jar \
|
||||||
|
&& apk del build-dependencies
|
||||||
|
|
||||||
|
VOLUME "$HAWKBIT_HOME/data"
|
||||||
|
|
||||||
|
WORKDIR $HAWKBIT_HOME
|
||||||
|
ENTRYPOINT ["java","-jar","hawkbit-update-server.jar","-Xms768m -Xmx768m -XX:MaxMetaspaceSize=250m -XX:MetaspaceSize=250m -Xss300K -XX:+UseG1GC -XX:+UseStringDeduplication -XX:+UseCompressedOops -XX:+HeapDumpOnOutOfMemoryError"]
|
||||||
79
hawkbit-runtime/docker/0.2.2/KEY
Normal file
79
hawkbit-runtime/docker/0.2.2/KEY
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
Version: SKS 1.1.6
|
||||||
|
Comment: Hostname: pgp.mit.edu
|
||||||
|
|
||||||
|
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
|
||||||
|
LrdPYOGtAA==
|
||||||
|
=a0Oj
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
40
hawkbit-runtime/docker/README.md
Normal file
40
hawkbit-runtime/docker/README.md
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
hawkBit Docker
|
||||||
|
===
|
||||||
|
|
||||||
|
# Setup
|
||||||
|
|
||||||
|
## A: Docker Container
|
||||||
|
|
||||||
|
Start the hawkBit Update Server as a single container
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ docker run -d -p 8080:8080 hawkbit/hawkbit-update-server:latest
|
||||||
|
```
|
||||||
|
|
||||||
|
## B: Docker Compose
|
||||||
|
|
||||||
|
Start the hawkBit Update Server together with an MySQL and RabbitMQ instance as containers
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Requires Docker Compose to be installed
|
||||||
|
$ docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## C: Docker Stack
|
||||||
|
|
||||||
|
Start the hawkBit Update Server and Device Simulator together with an MySQL and RabbitMQ instance as services within a swarm
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ docker stack init
|
||||||
|
$ docker stack deploy -c docker-compose-stack.yml hawkbit
|
||||||
|
```
|
||||||
|
|
||||||
|
# Access
|
||||||
|
|
||||||
|
| Service / Container | URL | Login | A | B | C |
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
| hawkBit Update Server | [http://localhost:8080/](http://localhost:8080/) | admin:admin | ✓ | ✓ | ✓ |
|
||||||
|
| hawkBit Device Simulator | [http://localhost:8083/](http://localhost:8083/) | - | | | ✓ |
|
||||||
|
| MySQL | localhost:3306/hawkbit | root | | ✓ | ✓ |
|
||||||
|
| RabbitMQ | [http://localhost:15672](http://localhost:15672) | guest:guest | | ✓ | ✓ |
|
||||||
93
hawkbit-runtime/docker/docker-compose-stack.yml
Normal file
93
hawkbit-runtime/docker/docker-compose-stack.yml
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2018 Bosch Software Innovations GmbH and others.
|
||||||
|
#
|
||||||
|
# All rights reserved. This program and the accompanying materials
|
||||||
|
# are made available under the terms of the Eclipse Public License v1.0
|
||||||
|
# which accompanies this distribution, and is available at
|
||||||
|
# http://www.eclipse.org/legal/epl-v10.html
|
||||||
|
#
|
||||||
|
version: '3.7'
|
||||||
|
|
||||||
|
services:
|
||||||
|
|
||||||
|
# ---------------------
|
||||||
|
# hawkBit service
|
||||||
|
# ---------------------
|
||||||
|
hawkbit:
|
||||||
|
image: "hawkbit/hawkbit-update-server:0.2.2-mysql"
|
||||||
|
networks:
|
||||||
|
- hawknet
|
||||||
|
ports:
|
||||||
|
- "8080:8080"
|
||||||
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
environment:
|
||||||
|
- 'SPRING_PROFILES_ACTIVE=cloudsandbox'
|
||||||
|
- 'SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/hawkbit'
|
||||||
|
- 'SPRING_RABBITMQ_HOST=rabbitmq'
|
||||||
|
- 'SPRING_RABBITMQ_USERNAME=guest'
|
||||||
|
- 'SPRING_RABBITMQ_PASSWORD=guest'
|
||||||
|
- 'SPRING_DATASOURCE_USERNAME=root'
|
||||||
|
|
||||||
|
# ---------------------
|
||||||
|
# hawkBit simulator
|
||||||
|
# ---------------------
|
||||||
|
simulator:
|
||||||
|
image: "hawkbit/hawkbit-device-simulator:latest"
|
||||||
|
networks:
|
||||||
|
- hawknet
|
||||||
|
ports:
|
||||||
|
- "8083:8083"
|
||||||
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
environment:
|
||||||
|
- 'SPRING_RABBITMQ_VIRTUALHOST=/'
|
||||||
|
- 'SPRING_RABBITMQ_HOST=rabbitmq'
|
||||||
|
- 'SPRING_RABBITMQ_PORT=5672'
|
||||||
|
- 'SPRING_RABBITMQ_USERNAME=guest'
|
||||||
|
- 'SPRING_RABBITMQ_PASSWORD=guest'
|
||||||
|
- 'SPRING_RABBITMQ_SSL_ENABLED=false'
|
||||||
|
- 'HAWKBIT_DEVICES_SIMULATOR_AMQP_RECEIVERCONNECTORQUEUEFROMSP=sp_direct_queue'
|
||||||
|
- 'HAWKBIT_DEVICES_SIMULATOR_AMQP_SENDERFORSPEXCHANGE=sp.direct.exchange'
|
||||||
|
- 'HAWKBIT_DEVICES_SIMULATOR_AMQP_DEADLETTERQUEUE=sp_direct_queue_deadletter_ttl'
|
||||||
|
- 'HAWKBIT_DEVICES_SIMULATOR_AMQP_DEADLETTEREXCHANGE=sp.direct.exchange.deadletter'
|
||||||
|
|
||||||
|
# ---------------------
|
||||||
|
# RabbitMQ service
|
||||||
|
# ---------------------
|
||||||
|
rabbitmq:
|
||||||
|
image: "rabbitmq:3-management"
|
||||||
|
networks:
|
||||||
|
- hawknet
|
||||||
|
ports:
|
||||||
|
- "15672:15672"
|
||||||
|
- "5672:5672"
|
||||||
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
environment:
|
||||||
|
RABBITMQ_DEFAULT_VHOST: "/"
|
||||||
|
|
||||||
|
# ---------------------
|
||||||
|
# MySQL service
|
||||||
|
# ---------------------
|
||||||
|
mysql:
|
||||||
|
image: "mysql:5.7"
|
||||||
|
networks:
|
||||||
|
- hawknet
|
||||||
|
ports:
|
||||||
|
- "3306:3306"
|
||||||
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
environment:
|
||||||
|
MYSQL_DATABASE: "hawkbit"
|
||||||
|
MYSQL_USER: "root"
|
||||||
|
MYSQL_ALLOW_EMPTY_PASSWORD: "true"
|
||||||
|
|
||||||
|
|
||||||
|
networks:
|
||||||
|
hawknet:
|
||||||
|
driver: overlay
|
||||||
@@ -1,3 +1,11 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2018 Bosch Software Innovations GmbH and others.
|
||||||
|
#
|
||||||
|
# All rights reserved. This program and the accompanying materials
|
||||||
|
# are made available under the terms of the Eclipse Public License v1.0
|
||||||
|
# which accompanies this distribution, and is available at
|
||||||
|
# http://www.eclipse.org/legal/epl-v10.html
|
||||||
|
#
|
||||||
version: '3'
|
version: '3'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
@@ -35,7 +43,7 @@ services:
|
|||||||
# HawkBit service
|
# HawkBit service
|
||||||
# ---------------------
|
# ---------------------
|
||||||
hawkbit:
|
hawkbit:
|
||||||
image: "hawkbit/hawkbit-update-server:0.2.1-mysql"
|
image: "hawkbit/hawkbit-update-server:0.2.2-mysql"
|
||||||
environment:
|
environment:
|
||||||
- 'SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/hawkbit'
|
- 'SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/hawkbit'
|
||||||
- 'SPRING_RABBITMQ_HOST=rabbitmq'
|
- 'SPRING_RABBITMQ_HOST=rabbitmq'
|
||||||
@@ -2,12 +2,6 @@
|
|||||||
|
|
||||||
The hawkBit Update Server is a standalone spring-boot application with an embedded servlet container .
|
The hawkBit Update Server is a standalone spring-boot application with an embedded servlet container .
|
||||||
|
|
||||||
## Try out the update server in our hawkBit sandbox on Bluemix
|
|
||||||
|
|
||||||
- try out Management UI https://hawkbit-demo-sandbox.eu-gb.mybluemix.net/UI (username: admin, passwd: admin)
|
|
||||||
- try out Management API https://hawkbit-demo-sandbox.eu-gb.mybluemix.net/rest/v1/targets (don't forget basic auth header; username: admin, passwd: admin)
|
|
||||||
- try out DDI API https://hawkbit-demo-sandbox.eu-gb.mybluemix.net/DEFAULT/controller/v1/MYTESTDEVICE (authentication disabled)
|
|
||||||
|
|
||||||
## On your own workstation
|
## On your own workstation
|
||||||
|
|
||||||
### Run
|
### Run
|
||||||
@@ -29,14 +23,6 @@ run org.eclipse.hawkbit.app.Start
|
|||||||
The Management UI can be accessed via http://localhost:8080/UI
|
The Management UI can be accessed via http://localhost:8080/UI
|
||||||
The Management API can be accessed via http://localhost:8080/rest/v1
|
The Management API can be accessed via http://localhost:8080/rest/v1
|
||||||
|
|
||||||
## Deploy example app to Cloud Foundry
|
|
||||||
|
|
||||||
- Go to ```target``` subfolder.
|
|
||||||
- Select one of the two manifests
|
|
||||||
- **manifest-simple.yml** for a standalone hawkBit installation with embedded H2.
|
|
||||||
- **manifest.yml** for a standalone hawkBit installation with embedded H2 and RabbitMQ service binding for DMF integration (note: this manifest is used for the sandbox above).
|
|
||||||
- Run ```cf push``` against you cloud foundry environment.
|
|
||||||
|
|
||||||
## Enable Clustering (experimental)
|
## Enable Clustering (experimental)
|
||||||
|
|
||||||
Clustering in hawkBit is based on _Spring Cloud Bus_. It is not enabled in the example app by default.
|
Clustering in hawkBit is based on _Spring Cloud Bus_. It is not enabled in the example app by default.
|
||||||
|
|||||||
@@ -1,20 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2015 Bosch Software Innovations GmbH and others.
|
|
||||||
#
|
|
||||||
# All rights reserved. This program and the accompanying materials
|
|
||||||
# are made available under the terms of the Eclipse Public License v1.0
|
|
||||||
# which accompanies this distribution, and is available at
|
|
||||||
# http://www.eclipse.org/legal/epl-v10.html
|
|
||||||
#
|
|
||||||
|
|
||||||
---
|
|
||||||
applications:
|
|
||||||
- name: hawkbit-simple
|
|
||||||
memory: 1024M
|
|
||||||
instances: 1
|
|
||||||
buildpack: https://github.com/cloudfoundry/java-buildpack
|
|
||||||
path: @project.build.finalName@.jar
|
|
||||||
env:
|
|
||||||
SPRING_PROFILES_ACTIVE: cloudsandbox
|
|
||||||
CF_STAGING_TIMEOUT: 15
|
|
||||||
CF_STARTUP_TIMEOUT: 15
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2015 Bosch Software Innovations GmbH and others.
|
|
||||||
#
|
|
||||||
# All rights reserved. This program and the accompanying materials
|
|
||||||
# are made available under the terms of the Eclipse Public License v1.0
|
|
||||||
# which accompanies this distribution, and is available at
|
|
||||||
# http://www.eclipse.org/legal/epl-v10.html
|
|
||||||
#
|
|
||||||
|
|
||||||
---
|
|
||||||
applications:
|
|
||||||
- name: hawkbit-demo-sandbox
|
|
||||||
memory: 2048M
|
|
||||||
disk_quota: 2048M
|
|
||||||
instances: 1
|
|
||||||
buildpack: https://github.com/cloudfoundry/java-buildpack
|
|
||||||
path: @project.build.finalName@.jar
|
|
||||||
services:
|
|
||||||
- dmf-rabbit
|
|
||||||
env:
|
|
||||||
SPRING_PROFILES_ACTIVE: cloudsandbox,amqp
|
|
||||||
CF_STAGING_TIMEOUT: 15
|
|
||||||
CF_STARTUP_TIMEOUT: 15
|
|
||||||
JBP_CONFIG_JAVA_MAIN: '{ arguments: "-XX:+UseG1GC -XX:+UseStringDeduplication -XX:+UseCompressedOops -XX:+ExitOnOutOfMemoryError" }'
|
|
||||||
timeout: 180
|
|
||||||
@@ -31,7 +31,6 @@
|
|||||||
</goals>
|
</goals>
|
||||||
<configuration>
|
<configuration>
|
||||||
<outputDirectory>${baseDir}</outputDirectory>
|
<outputDirectory>${baseDir}</outputDirectory>
|
||||||
<addResources>false</addResources>
|
|
||||||
<mainClass>org.eclipse.hawkbit.app.Start</mainClass>
|
<mainClass>org.eclipse.hawkbit.app.Start</mainClass>
|
||||||
<layout>JAR</layout>
|
<layout>JAR</layout>
|
||||||
</configuration>
|
</configuration>
|
||||||
@@ -43,15 +42,6 @@
|
|||||||
<resource>
|
<resource>
|
||||||
<directory>src/main/resources</directory>
|
<directory>src/main/resources</directory>
|
||||||
</resource>
|
</resource>
|
||||||
<resource>
|
|
||||||
<directory>cf</directory>
|
|
||||||
<filtering>true</filtering>
|
|
||||||
<targetPath>${project.build.directory}</targetPath>
|
|
||||||
<includes>
|
|
||||||
<include>manifest.yml</include>
|
|
||||||
<include>manifest-simple.yml</include>
|
|
||||||
</includes>
|
|
||||||
</resource>
|
|
||||||
</resources>
|
</resources>
|
||||||
</build>
|
</build>
|
||||||
|
|
||||||
@@ -73,7 +63,6 @@
|
|||||||
<groupId>com.microsoft.sqlserver</groupId>
|
<groupId>com.microsoft.sqlserver</groupId>
|
||||||
<artifactId>mssql-jdbc</artifactId>
|
<artifactId>mssql-jdbc</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2015 Bosch Software Innovations GmbH and others.
|
# Copyright (c) 2018 Bosch Software Innovations GmbH and others.
|
||||||
#
|
#
|
||||||
# All rights reserved. This program and the accompanying materials
|
# All rights reserved. This program and the accompanying materials
|
||||||
# are made available under the terms of the Eclipse Public License v1.0
|
# are made available under the terms of the Eclipse Public License v1.0
|
||||||
@@ -7,9 +7,7 @@
|
|||||||
# http://www.eclipse.org/legal/epl-v10.html
|
# http://www.eclipse.org/legal/epl-v10.html
|
||||||
#
|
#
|
||||||
|
|
||||||
security.require-ssl=true
|
|
||||||
server.tomcat.protocol-header=X-Forwarded-Proto
|
server.tomcat.protocol-header=X-Forwarded-Proto
|
||||||
# IBM Adresses unpredictable
|
|
||||||
server.tomcat.internal-proxies=.*
|
server.tomcat.internal-proxies=.*
|
||||||
|
|
||||||
# Sandbox, small files only
|
# Sandbox, small files only
|
||||||
@@ -20,7 +18,7 @@ spring.http.multipart.max-request-size=-1
|
|||||||
hawkbit.artifact.url.protocols.download-http.rel=download-http
|
hawkbit.artifact.url.protocols.download-http.rel=download-http
|
||||||
hawkbit.artifact.url.protocols.download-http.protocol=https
|
hawkbit.artifact.url.protocols.download-http.protocol=https
|
||||||
hawkbit.artifact.url.protocols.download-http.supports=DMF,DDI
|
hawkbit.artifact.url.protocols.download-http.supports=DMF,DDI
|
||||||
hawkbit.artifact.url.protocols.download-http.hostname=hawkbit-demo-sandbox.eu-gb.mybluemix.net
|
hawkbit.artifact.url.protocols.download-http.hostname=hawkbit.eclipse.org
|
||||||
hawkbit.artifact.url.protocols.download-http.ref={protocol}://{hostname}/{tenant}/controller/v1/{controllerId}/softwaremodules/{softwareModuleId}/artifacts/{artifactFileName}
|
hawkbit.artifact.url.protocols.download-http.ref={protocol}://{hostname}/{tenant}/controller/v1/{controllerId}/softwaremodules/{softwareModuleId}/artifacts/{artifactFileName}
|
||||||
hawkbit.artifact.url.protocols.md5sum-http.rel=md5sum-http
|
hawkbit.artifact.url.protocols.md5sum-http.rel=md5sum-http
|
||||||
hawkbit.artifact.url.protocols.md5sum-http.protocol=${hawkbit.artifact.url.protocols.download-http.protocol}
|
hawkbit.artifact.url.protocols.md5sum-http.protocol=${hawkbit.artifact.url.protocols.download-http.protocol}
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ hawkbit.server.ddi.security.authentication.gatewaytoken.enabled=true
|
|||||||
hawkbit.server.repository.publish-target-poll-event=false
|
hawkbit.server.repository.publish-target-poll-event=false
|
||||||
|
|
||||||
## Configuration for DMF/RabbitMQ integration
|
## Configuration for DMF/RabbitMQ integration
|
||||||
spring.profiles.active=amqp
|
|
||||||
spring.rabbitmq.username=guest
|
spring.rabbitmq.username=guest
|
||||||
spring.rabbitmq.password=guest
|
spring.rabbitmq.password=guest
|
||||||
spring.rabbitmq.virtualHost=/
|
spring.rabbitmq.virtualHost=/
|
||||||
@@ -39,6 +38,9 @@ hawkbit.server.ui.demo.tenant=DEFAULT
|
|||||||
spring.http.multipart.max-file-size=1024MB
|
spring.http.multipart.max-file-size=1024MB
|
||||||
spring.http.multipart.max-request-size=-1
|
spring.http.multipart.max-request-size=-1
|
||||||
|
|
||||||
|
# UI Favicon
|
||||||
|
spring.mvc.favicon.enabled=false
|
||||||
|
|
||||||
# UI help links
|
# UI help links
|
||||||
hawkbit.server.ui.links.documentation.root=https://www.eclipse.org/hawkbit/
|
hawkbit.server.ui.links.documentation.root=https://www.eclipse.org/hawkbit/
|
||||||
hawkbit.server.ui.links.documentation.security=https://www.eclipse.org/hawkbit/concepts/authentication/
|
hawkbit.server.ui.links.documentation.security=https://www.eclipse.org/hawkbit/concepts/authentication/
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 32 KiB |
BIN
hawkbit-ui/src/main/resources/VAADIN/themes/hawkbit/favicon.ico
Normal file
BIN
hawkbit-ui/src/main/resources/VAADIN/themes/hawkbit/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
1
pom.xml
1
pom.xml
@@ -343,6 +343,7 @@
|
|||||||
<exclude>.sonar</exclude>
|
<exclude>.sonar</exclude>
|
||||||
<exclude>**/Dockerfile</exclude>
|
<exclude>**/Dockerfile</exclude>
|
||||||
<exclude>**/docker-compose.yml</exclude>
|
<exclude>**/docker-compose.yml</exclude>
|
||||||
|
<exclude>**/docker-compose-stack.yml</exclude>
|
||||||
<exclude>**/.sonar/**</exclude>
|
<exclude>**/.sonar/**</exclude>
|
||||||
<exclude>docs/content/**</exclude>
|
<exclude>docs/content/**</exclude>
|
||||||
<exclude>docs/layouts/**</exclude>
|
<exclude>docs/layouts/**</exclude>
|
||||||
|
|||||||
Reference in New Issue
Block a user