feat: configure realtime services and update environment variables

This commit is contained in:
Giuseppe Raffa
2026-04-14 13:23:26 +02:00
parent 0ae64d0c5b
commit 1044837080
4 changed files with 98 additions and 86 deletions

View File

@@ -1,32 +1,32 @@
services: services:
# auth: auth:
# container_name: auth container_name: auth
# build: build:
# context: ./auth context: ./auth
# dockerfile: Dockerfile dockerfile: Dockerfile
# restart: unless-stopped restart: unless-stopped
# command: npm run dev command: npm run dev
# volumes: volumes:
# - ./auth:/app - ./auth:/app
# - /app/node_modules - /app/node_modules
# env_file: env_file:
# - ./auth/.env - ./auth/.env
# healthcheck: healthcheck:
# test: ["CMD", "node", "-e", "fetch('http://localhost:3006/health').then(r => r.ok ? process.exit(0) : process.exit(1))"] test: ["CMD", "node", "-e", "fetch('http://localhost:3006/health').then(r => r.ok ? process.exit(0) : process.exit(1))"]
# interval: 30s interval: 30s
# timeout: 5s timeout: 5s
# retries: 3 retries: 3
# networks: networks:
# - meb-proxy-net - meb-public
# - meb-internal - meb-private
# ports: ports:
# - "3006:3006" - "3006:3006"
# labels: labels:
# - "traefik.enable=true" - "traefik.enable=true"
# - "traefik.http.routers.auth.rule=Host(`auth.${URL_DOMAIN}`)" - "traefik.http.routers.auth.rule=Host(`auth.mebboat.it`)"
# - "traefik.http.routers.auth.entrypoints=web" - "traefik.http.routers.auth.entrypoints=websecure"
# - "traefik.http.services.auth.loadbalancer.server.port=3006" - "traefik.http.services.auth.loadbalancer.server.port=3006"
# - "traefik.docker.network=meb-proxy-net" - "traefik.docker.network=meb-public"
api: api:
container_name: api-services container_name: api-services
@@ -45,8 +45,6 @@ services:
networks: networks:
- meb-public - meb-public
- meb-private - meb-private
ports:
- "3003:3003"
labels: labels:
- "traefik.enable=true" - "traefik.enable=true"
- "traefik.http.routers.api.rule=Host(`api.mebboat.it`)" - "traefik.http.routers.api.rule=Host(`api.mebboat.it`)"
@@ -55,56 +53,74 @@ services:
- "traefik.http.routers.api.tls.certresolver=letsencrypt" - "traefik.http.routers.api.tls.certresolver=letsencrypt"
- "traefik.docker.network=meb-public" - "traefik.docker.network=meb-public"
# console: console:
# build: build:
# context: ./console context: ./console
# dockerfile: Dockerfile dockerfile: Dockerfile
# restart: unless-stopped restart: unless-stopped
# command: npm run dev command: npm run dev
# volumes: volumes:
# - ./console:/app - ./console:/app
# - /app/node_modules - /app/node_modules
# env_file: env_file:
# - ./console/.env - ./console/.env
# networks: networks:
# - meb-proxy-net - meb-public
# - meb-internal - meb-private
# ports: labels:
# - "3004:3004" - "traefik.enable=true"
- "traefik.http.routers.console.rule=Host(`console.mebboat.it`)"
- "traefik.http.routers.console.entrypoints=websecure"
- "traefik.http.services.console.loadbalancer.server.port=3004"
- "traefik.http.routers.console.tls.certresolver=letsencrypt"
- "traefik.docker.network=meb-public"
# realtime: realtime:
# build: build:
# context: ./realtime context: ./realtime
# dockerfile: Dockerfile dockerfile: Dockerfile
# restart: unless-stopped restart: unless-stopped
# command: npm run dev command: npm run dev
# ports: volumes:
# - "3002:3002" - ./realtime:/app
# - "3102:3102" - /app/node_modules
# volumes: env_file:
# - ./realtime:/app - ./realtime/.env
# - /app/node_modules networks:
# env_file: - meb-private
# - ./realtime/.env - meb-public
# networks: labels:
# - meb-proxy-net - "traefik.enable=true"
# - meb-internal - "traefik.http.routers.realtime.rule=Host(`realtime.mebboat.it`)"
- "traefik.http.routers.realtime.entrypoints=websecure"
- "traefik.http.services.realtime.loadbalancer.server.port=3002"
- "traefik.http.routers.realtime.tls.certresolver=letsencrypt"
- "traefik.docker.network=meb-public"
# ml: - "traefik.http.services.realtime.loadbalancer.sticky.cookie=true"
# container_name: ml-service - "traefik.http.services.realtime.loadbalancer.sticky.cookie.name=realtime-ws"
# build: - "traefik.http.services.realtime.loadbalancer.sticky.cookie.secure=true"
# context: ./ml
# dockerfile: Dockerfile ml:
# restart: unless-stopped container_name: ml-service
# volumes: build:
# - ./ml:/app context: ./ml
# env_file: dockerfile: Dockerfile
# - ./ml/.env restart: unless-stopped
# ports: volumes:
# - "3005:3005" - ./ml:/app
# networks: env_file:
# - meb-proxy-net - ./ml/.env
# - meb-internal networks:
- meb-private
- meb-public
labels:
- "traefik.enable=true"
- "traefik.http.routers.ml.rule=Host(`ml.mebboat.it`)"
- "traefik.http.routers.ml.entrypoints=websecure"
- "traefik.http.services.ml.loadbalancer.server.port=8000"
- "traefik.http.routers.ml.tls.certresolver=letsencrypt"
- "traefik.docker.network=meb-public"
# marine: # marine:
# container_name: marine-service # container_name: marine-service

View File

@@ -1,5 +1,3 @@
PORT=3004
VERSION=1.0.0 VERSION=1.0.0
VERSION_BUILD=1.0 VERSION_BUILD=1.0
VERSION_STATE=beta VERSION_STATE=beta

View File

@@ -36,7 +36,6 @@ app.get('/health', async (req, res) => {
version: process.env.VERSION, version: process.env.VERSION,
build: process.env.VERSION_BUILD, build: process.env.VERSION_BUILD,
state: process.env.VERSION_STATE, state: process.env.VERSION_STATE,
port: process.env.PORT
}); });
}); });
@@ -77,9 +76,8 @@ app.get('/sessions/:sensorId/csv', async (req, res) => {
}); });
const PORT = process.env.PORT || 3000; const server = app.listen(3000, '0.0.0.0', async () => {
const server = app.listen(PORT, '0.0.0.0', async () => { console.log(`Realtime started`);
console.log(`Realtime on port ${PORT}`);
await require('./helper/authdb').initDB(); await require('./helper/authdb').initDB();
}); });

View File

@@ -6,7 +6,7 @@ const redisHelper = require('./helper/redis');
const influxWriter = require('./helper/influxWriter'); const influxWriter = require('./helper/influxWriter');
const ws = new WebSocket.Server({ const ws = new WebSocket.Server({
port: process.env.SOCKET_PORT, port: 3000,
perMessageDeflate: false, perMessageDeflate: false,
verifyClient: async (info, callback) => { verifyClient: async (info, callback) => {
const { query } = url.parse(info.req.url, true); const { query } = url.parse(info.req.url, true);
@@ -107,4 +107,4 @@ ws.on('connection', async (client, req) => {
}); });
}); });
console.log(`[WS] Realtime websocket server on port: ${process.env.SOCKET_PORT}`); console.log(`[WS] Realtime websocket server`);