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:
Jeroen Laverman
2018-09-21 14:12:47 +02:00
committed by GitHub
parent 5fe86954b0
commit 9fb2e7f3be
47 changed files with 632 additions and 123 deletions

View File

@@ -7,7 +7,7 @@ Eclipse [hawkBit](http://www.eclipse.org/hawkbit/index.html) is an domain indepe
Build: [![Circle CI](https://circleci.com/gh/eclipse/hawkbit.svg?style=shield)](https://circleci.com/gh/eclipse/hawkbit) Build: [![Circle CI](https://circleci.com/gh/eclipse/hawkbit.svg?style=shield)](https://circleci.com/gh/eclipse/hawkbit)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.eclipse.hawkbit/hawkbit-parent/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.eclipse.hawkbit/hawkbit-parent) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.eclipse.hawkbit/hawkbit-parent/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.eclipse.hawkbit/hawkbit-parent)
Docker images: [![Docker](https://images.microbadger.com/badges/version/hawkbit/hawkbit-update-server:0.2.1.svg)](https://hub.docker.com/r/hawkbit/hawkbit-update-server) [![Docker MYSQL](https://images.microbadger.com/badges/version/hawkbit/hawkbit-update-server:0.2.1-mysql.svg)](https://hub.docker.com/r/hawkbit/hawkbit-update-server) Docker images: [![Docker](https://images.microbadger.com/badges/version/hawkbit/hawkbit-update-server:0.2.2.svg)](https://hub.docker.com/r/hawkbit/hawkbit-update-server) [![Docker MYSQL](https://images.microbadger.com/badges/version/hawkbit/hawkbit-update-server:0.2.2-mysql.svg)](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:

View File

@@ -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 ../../..

View File

@@ -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">&nbsp;</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 | &#10003; | &#10003; | &#10003; |
| hawkBit Device Simulator | | | &#10003; |
| MySQL | | &#10003; | &#10003; |
| RabbitMQ | | &#10003; | &#10003; |
### 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

View File

@@ -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
View File

@@ -0,0 +1,4 @@
---
title: Sandbox
redirectURL: https://hawkbit.eclipse.org
---

View File

@@ -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 %}}

View File

@@ -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> &nbsp; Sandbox <i class="fas fa-desktop"></i> &nbsp; Sandbox
</a> </a>
</li> </li>

View File

@@ -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 }}">

View 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
```

View 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}"

View 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 ""

View File

@@ -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

View File

@@ -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: "/"

View 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. |

View 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"]

View 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-----

View 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"]

View 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-----

View 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 | &#10003; | &#10003; | &#10003; |
| hawkBit Device Simulator | [http://localhost:8083/](http://localhost:8083/) | - | | | &#10003; |
| MySQL | localhost:3306/hawkbit | root | | &#10003; | &#10003; |
| RabbitMQ | [http://localhost:15672](http://localhost:15672) | guest:guest | | &#10003; | &#10003; |

View 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

View File

@@ -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'

View File

@@ -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.

View File

@@ -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

View File

@@ -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

View File

@@ -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>

View File

@@ -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}

View File

@@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

View File

@@ -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>