feat(gateway): added first implement of the Gateway (MQTT, Influx, REST)

Signed-off-by: Klagarge <remi@heredero.ch>
This commit is contained in:
2025-04-14 22:39:47 +02:00
parent d33a6a1d02
commit e6ef490314
14 changed files with 928 additions and 0 deletions

View File

@@ -6,6 +6,32 @@ volumes:
rabbitmq_data:
services:
gateway:
image: registry.forge.hefr.ch/team-raclette/project-softweng/gateway:latest
container_name: gateway
restart: unless-stopped
environment:
- INFLUXDB_TOKEN=$INFLUXDB_TOKEN
- INFLUXDB_ORG=$INFLUXDB_ORG
- INFLUXDB_BUCKET=$INFLUXDB_BUCKET
- MQTT_USERNAME=$MQTT_USERNAME
- MQTT_PASSWORD=$MQTT_PASSWORD
- REST_USERNAME=$REST_USERNAME
- REST_PASSWORD=$REST_PASSWORD
- INFLUXDB_URL=http://influx.mse.kb28.ch
- CLIENT_ID=Gateway-SoftwEng
- MQTT_URL=http://mqtt.mse.kb28.ch
- MEASUREMENT_NAME=THC
labels:
- "traefik.enable=true"
- "traefik.http.routers.Gateway-http.entrypoints=http"
- "traefik.http.routers.Gateway-http.rule=Host(`rest.mse.kb28.ch`)"
- "traefik.http.middlewares.Gateway-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.Gateway-https.entrypoints=https"
- "traefik.http.routers.Gateway-https.rule=Host(`rest.mse.kb28.ch`)"
- "traefik.http.routers.Gateway-https.tls.certResolver=letsencrypt"
- "traefik.http.services.Gateway-https.loadbalancer.server.port=8080"
influxdb:
image: influxdb:2
container_name: influxdb
@@ -23,6 +49,15 @@ services:
- DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=$INFLUXDB_TOKEN
- DOCKER_INFLUXDB_INIT_ORG=$INFLUXDB_ORG
- DOCKER_INFLUXDB_INIT_BUCKET=$INFLUXDB_BUCKET
labels:
- "traefik.enable=true"
- "traefik.http.routers.influx-http.entrypoints=http"
- "traefik.http.routers.influx-http.rule=Host(`influx.mse.kb28.ch`)"
- "traefik.http.middlewares.influx-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.influx-https.entrypoints=https"
- "traefik.http.routers.influx-https.rule=Host(`influx.mse.kb28.ch`)"
- "traefik.http.routers.influx-https.tls.certResolver=letsencrypt"
- "traefik.http.services.influx-https.loadbalancer.server.port=8086"
rabbitmq:
image: rabbitmq:3-management-alpine
container_name: rabbitmq
@@ -39,3 +74,12 @@ services:
- RABBITMQ_DEFAULT_PASS=$MQTT_PASSWORD
command:
sh -c "rabbitmq-plugins enable rabbitmq_mqtt && rabbitmq-server"
labels:
- "traefik.enable=true"
- "traefik.http.routers.mqtt-http.entrypoints=http"
- "traefik.http.routers.mqtt-http.rule=Host(`mqtt.mse.kb28.ch`)"
- "traefik.http.middlewares.mqtt-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.mqtt-https.entrypoints=https"
- "traefik.http.routers.mqtt-https.rule=Host(`mqtt.mse.kb28.ch`)"
- "traefik.http.routers.mqtt-https.tls.certResolver=letsencrypt"
- "traefik.http.services.mqtt-https.loadbalancer.server.port=1883"