This commit is contained in:
Björn Ellensohn 2024-02-08 11:48:19 +01:00
parent a7a8f5176e
commit f67d9259ee
12 changed files with 441 additions and 39 deletions

17
config/caddy/Caddyfile Normal file
View File

@ -0,0 +1,17 @@
http://loki {
root * /usr/share/caddy
file_server browse
}
http://browse.loki {
root * /usr/share/caddy
file_server browse
}
http://config.loki {
reverse_proxy olivetin:1337
}
http://control.loki {
reverse_proxy foxglove:8080
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -0,0 +1,72 @@
<!DOCTYPE html>
<html>
<!-- ersetze die Links + QR Codes unter den Kommentaren -->
<head>
<title>CPS Bot Overview</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
</head>
<header>
<h1 id="HEADLINE">CPS Bot Mini Overview<img src="CPS_Logo_White_square_TRANSP.png" id="LOGO"></h1>
</header>
<body>
<div class="box" id="LEFT">
<p class="mini-heads">Connect to Wi-Fi:</p>
<!-- replace mit relativen Link!!!, bei mir spinnts und es wird das gebrochene Bild symbol angezeigt. Anders geht
es allerdings, falls nicht bei dir sags mir -->
<img src="qr_wifi_actual.png" class="qr">
<div id="NORM_SET">
<table>
<tr>
<td>SSD:</td>
<td>CPS_bot_mini</td>
</tr>
<tr>
<td>Password: </td>
<td>pac999CPS</td>
</tr>
</table>
</div>
</div>
<div class="box" id="RIGHT">
<div id="BLOCK_ONE">
<p class="mini-heads">Link to WebGui:</p>
<!-- again -->
<!-- Replace link at href -->
<!-- hier Link zu WebGui -->
<a href="https://www.unileoben.ac.at/universitaet/lehrstuehle/institute/department-product-engineering/lehrstuhl-fuer-cyber-physical-systems/">
<img src="qr_dummy_1.png" class="qr qr_2"></a>
<br>
</div>
<p id="SPACE"> </p>
<div id="BLOCK_TWO">
<p class="mini-heads">Link to Manual:</p>
<!-- again -->
<!-- hier Link zu Manual -->
<a href="https://www.unileoben.ac.at/universitaet/lehrstuehle/institute/department-product-engineering/lehrstuhl-fuer-cyber-physical-systems/">
<img src="qr_dummy_2.png" class="qr qr_2">
</a>
<br>
</div>
</div>
<div class="info">
<!-- Link zum Lehrstuhl, einfach den ganzen Div Block rausnehmen falls du das nicht willst -->
<a href="https://cps.unileoben.ac.at/">Check us out!</a>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

View File

@ -0,0 +1,241 @@
html
{
background-color: rgb(51, 51, 51);
font-family: sans-serif;
padding-bottom: 50px;
}
#HEADLINE
{
font-family:'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;
text-align: center;
color: white;
background-color: rgb(1, 115, 126);
box-shadow: 0px 15px 0px -5px rgb(1, 89, 97);
margin-top: 2px;
}
#LOGO
{
height: 1em;
width: auto;
float: right;
margin-top: 2px;
padding-left: 12px;
padding-right: 12px;
background-color: inherit;
}
.mini-heads
{
color: white;
font-weight: 700;
}
#LEFT
{
float: left;
max-width: 49.5%;
text-align: center;
}
#RIGHT
{
float: right;
max-width: 49.5%;
flex-direction: row;
text-align: center;
}
.qr
{
max-width: 59.5%;
height: auto;
object-fit: cover;
border-color: black;
border: 3px solid;
border-radius: 10%;
}
.qr_2
{
width: 35%;
height: auto;
}
table, td
{
color: white;
width: 70%;
line-height: 190%;
border: 1px solid rgb(76, 76, 76);
background-color: rgb(34, 34, 34);
border-collapse: collapse;
margin-left: auto;
margin-right: auto;
}
#SPACE
{
padding: 3px;
}
#NORM_SET
{
padding-top: 6px;
}
.link
{
color: white;
background-color: rgb(1, 115, 126);
padding-left: 10px;
padding-right: 10px;
border-radius: 3px;
text-decoration: none;
}
.link:hover
{
color: rgb(206, 206, 206);
}
.link:visited
{
color: rgb(75, 75, 75);
background-color: rgb(1, 89, 97);
}
.info
{
color: white;
background-color: rgb(34, 34, 34);
padding-top: 3px;
padding-right: 6px;
text-indent: 6px;
position: fixed;
bottom: 0px;
right: 6px;
border: 1px solid rgb(76, 76, 76);
}
.info:hover
{
cursor: pointer;
}
.info:visited
{
color: rgb(206, 206, 206);
}
a, a:visited, a:hover, a:active {
text-decoration: none;
color: inherit;
}
/* Phone */ /* pract. ab 400% zoom (inludkiert) am pc */
@media only screen and (max-width : 480px)
{
#LEFT
{
width: 100%;
max-width: none;
clear: both;
text-align: center;
}
#RIGHT
{
max-width: none;
padding-top: 10px;
}
.qr
{
max-width: 43.9%;
}
.qr_2
{
width: 29%;
}
}
/* Tablet / Ipad */ /* pract. ab 200% Zoom (nicht inkludiert) am pc */
@media only screen and (max-width : 767px) and (min-width: 481px)
{
#LEFT
{
max-width: none;
width: 100%;
clear: both;
text-align: center;
}
.qr
{
max-width: 35%;
}
table td
{
font-size: large;
}
.mini-heads
{
font-size: x-large;
}
#RIGHT
{
max-width: none;
}
#SPACE
{
padding: none;
display: none;
}
#BLOCK_ONE
{
max-width: 49.5%;
float: left;
}
#BLOCK_TWO
{
max-width: 49.5%;
float: right;
}
.qr_2
{
max-width: 80%;
width: 50%;
}
.link
{
font-size: larger;
}
.info
{
font-size: larger;
}
}

Binary file not shown.

View File

@ -0,0 +1,18 @@
# ------------------------------------------------------------
# Default Site
# ------------------------------------------------------------
server {
listen 80 default;
listen [::]:80 default;
server_name default-host.localhost;
access_log /data/logs/default-host_access.log combined;
error_log /data/logs/default-host_error.log warn;
include conf.d/include/letsencrypt-acme-challenge.conf;
location / {
return 301 http://192.168.20.10:1337/;
}
}

View File

@ -0,0 +1,59 @@
# ------------------------------------------------------------
# overview.loki
# ------------------------------------------------------------
map $scheme $hsts_header {
https "max-age=63072000; preload";
}
server {
set $forward_scheme http;
set $server "host.docker.internal";
set $port 1337;
listen 80;
listen [::]:80;
server_name overview.loki;
access_log /data/logs/proxy-host-3_access.log proxy;
error_log /data/logs/proxy-host-3_error.log warn;
location / {
# Proxy!
include conf.d/include/proxy.conf;
}
# Custom
include /data/nginx/custom/server_proxy[.]conf;
}

View File

@ -36,6 +36,7 @@ services:
# Allows graphical programs in the container. # Allows graphical programs in the container.
- /tmp/.X11-unix:/tmp/.X11-unix:rw - /tmp/.X11-unix:/tmp/.X11-unix:rw
- ${XAUTHORITY:-$HOME/.Xauthority}:/root/.Xauthority - ${XAUTHORITY:-$HOME/.Xauthority}:/root/.Xauthority
restart: unless-stopped
# Overlay image containing the project specific source code. # Overlay image containing the project specific source code.
overlay: overlay:
extends: base extends: base
@ -137,30 +138,6 @@ services:
################################################################################################################################### ###################################################################################################################################
# Webgui Supervision via Foxglove Studio # # Webgui Supervision via Foxglove Studio #
################################################################################################################################### ###################################################################################################################################
# config:
# container_name: olivetin
# image: ghcr.io/bjoernellens1/cps_bot_mini_ws/olivetin
# build:
# context: .
# dockerfile: docker/Dockerfile
# tags:
# - ghcr.io/bjoernellens1/cps_bot_mini_ws/olivetin
# target: olivetin
# x-bake:
# platforms:
# #- linux/arm64
# - linux/amd64
# #user: root
# privileged: true
# volumes:
# - ./config/olivetin.yaml:/config/config.yaml # replace host path or volume as needed
# # - .:/repo
# - /var/run/docker.sock:/var/run/docker.sock
# # - /var/lib/docker:/var/lib/docker
# ports:
# - "80:1337"
# restart: unless-stopped
olivetin: olivetin:
container_name: olivetin container_name: olivetin
image: jamesread/olivetin image: jamesread/olivetin
@ -186,7 +163,7 @@ services:
# - /var/lib/docker:/var/lib/docker # - /var/lib/docker:/var/lib/docker
- ~/.ssh/id_rsa:/root/.ssh/id_rsa - ~/.ssh/id_rsa:/root/.ssh/id_rsa
ports: ports:
- "80:1337" - "1337:1337"
restart: unless-stopped restart: unless-stopped
portainer: portainer:
@ -268,22 +245,35 @@ services:
# Core Services for Web Management # # Core Services for Web Management #
################################################################################################################################ ################################################################################################################################
npm: # nginx proxy manager for reverse proxying the webservices # npm: # nginx proxy manager for reverse proxying the webservices
#user "bjoern.ellensohn@unileoben.ac.at" # #user "bjoern.ellensohn@unileoben.ac.at"
#password "cpsloki_npm" # #password "cpsloki_npm"
image: 'jc21/nginx-proxy-manager:latest' # image: 'jc21/nginx-proxy-manager:latest'
restart: always #unless-stopped # restart: unless-stopped
ports: # ports:
- '80:80' # - '80:80'
- '81:81' # - '81:81'
- '443:443' # - '443:443'
volumes: # extra_hosts:
- ./config/npm:/data # - "host.docker.internal:host-gateway"
- ./letsencrypt:/etc/letsencrypt # #network_mode: host
# volumes:
# - ./config/npm:/data
# - ./config/npm/letsencrypt:/etc/letsencrypt
# depends_on:
# - foxglove
# - olivetin
management: caddy:
image: caddy:latest
ports:
- "80:80"
- "443:443"
volumes:
- ./config/caddy/Caddyfile:/etc/caddy/Caddyfile
- ./config/caddy/content:/usr/share/caddy/
restart: always
depends_on: depends_on:
- npm
- foxglove - foxglove
- olivetin - olivetin

View File

@ -43,6 +43,11 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
ros-${ROS_DISTRO}-xacro \ ros-${ROS_DISTRO}-xacro \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
# Install Foxglove Bridge
RUN apt-get update && apt-get install -y --no-install-recommends \
ros-${ROS_DISTRO}-foxglove-bridge \
&& rm -rf /var/lib/apt/lists/*
ENV RMW_IMPLEMENTATION=rmw_cyclonedds_cpp ENV RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
########################################### ###########################################