From cb5062c0de9408884dd36a0180ec74dd6ae9f45a Mon Sep 17 00:00:00 2001 From: rxf Date: Sat, 28 Mar 2026 15:20:51 +0100 Subject: [PATCH] =?UTF-8?q?V=203.0.0=20Jetzt=20l=C3=A4ufts=20erst=20mal=20?= =?UTF-8?q?auf=20citysensor.de=20(strato)=20mit=20der=20MongoDB=20auf=20IO?= =?UTF-8?q?NOS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.example | 30 ++ .env.local | 18 + .gitignore | 3 + .vscode/launch.json | 2 +- DOCKER.md | 235 +++++++++++ Dockerfile_geiger-web => Dockerfile | 0 geiger-app.js => app.js | 1 + build_and_copy.sh | 63 --- compose.yml | 13 + debug-server.sh | 93 +++++ deploy.sh | 67 +++ docker-compose.local.yml | 29 ++ docker-compose.prod.yml | 64 +++ docker-compose.yml | 43 -- log/geiger-web.log | 627 ++++++++++++++++++++++++++++ package.json | 8 +- public/js/global.js | 2 +- routes/mapdata.js | 1 + test-server.sh | 26 ++ 19 files changed, 1213 insertions(+), 112 deletions(-) create mode 100644 .env.example create mode 100644 .env.local create mode 100644 DOCKER.md rename Dockerfile_geiger-web => Dockerfile (100%) rename geiger-app.js => app.js (98%) delete mode 100755 build_and_copy.sh create mode 100644 compose.yml create mode 100755 debug-server.sh create mode 100755 deploy.sh create mode 100644 docker-compose.local.yml create mode 100644 docker-compose.prod.yml delete mode 100644 docker-compose.yml create mode 100644 log/geiger-web.log create mode 100755 test-server.sh diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..4a4ad08 --- /dev/null +++ b/.env.example @@ -0,0 +1,30 @@ +# Environment Variables für docker-compose.prod.yml +# WICHTIG: Kopiere diese Datei zu .env und passe die Werte an! +# cp .env.example .env +# +# ACHTUNG: .env sollte NICHT ins Git committed werden! + +# Server Configuration +SERVERPORT=3005 +EXTERNAL_PORT=3005 +DEBUG=false + +# MongoDB Configuration - EXTERNER SERVER +# Beispiel für Produktionsserver: +MONGOHOST=your-mongodb-server.example.com +MONGOPORT=27017 +MONGOBASE=allsensors + +# MongoDB Authentication +# Setze auf "true" wenn MongoDB Authentifizierung verwendet +MONGOAUTH=true + +# MongoDB User und Password im Format: username:password +# Beispiel: MONGOUSRP=admin:SecurePassword123 +MONGOUSRP=admin:your-secure-password-here + +# Node Environment +NODE_ENV=production + +# Timezone +TZ=Europe/Berlin diff --git a/.env.local b/.env.local new file mode 100644 index 0000000..ab042a3 --- /dev/null +++ b/.env.local @@ -0,0 +1,18 @@ +# Environment Variables für lokale Entwicklung mit docker-compose.local.yml +# Diese Datei kann für lokale MongoDB-Verbindungseinstellungen verwendet werden + +# Server Configuration +SERVERPORT=3005 +DEBUG=true + +# MongoDB Configuration - REMOTE SERVER +MONGOHOST=217.72.203.152 +MONGOPORT=27037 +MONGOBASE=sensor_data +MONGOAUTH=true +MONGOUSRP=admin:mongo4noise + +# Timezone +TZ=Europe/Berlin + +LOCALDIR=/Users/rxf/Projekte/Geiger_WEB_26 diff --git a/.gitignore b/.gitignore index e625aa9..0c9aa2b 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,6 @@ Feinstaub_ToDos.pdf this_is_MacBig .idea +.env +.env.local.custom +.DS_Store diff --git a/.vscode/launch.json b/.vscode/launch.json index 8981707..c4d4f92 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -26,7 +26,7 @@ "MONGOUSRP": "admin:mongo4noise", "MONGOBASE": "sensor_data" }, - "program": "${workspaceFolder}/geiger-app.js" + "program": "${workspaceFolder}/app.js" } ] } \ No newline at end of file diff --git a/DOCKER.md b/DOCKER.md new file mode 100644 index 0000000..cd37665 --- /dev/null +++ b/DOCKER.md @@ -0,0 +1,235 @@ +# Docker Deployment Anleitung + +## Übersicht + +Es gibt zwei Docker Compose Konfigurationen: +- `docker-compose.local.yml` - Für lokale Entwicklung (mit externem MongoDB) +- `docker-compose.prod.yml` - Für Server/Produktion (mit externem MongoDB) + +Beide Konfigurationen verwenden einen **externen MongoDB Server** und starten keinen eigenen MongoDB Container. + +## Lokale Entwicklung + +### Voraussetzungen +- Docker und Docker Compose installiert +- Zugriff auf MongoDB Server (lokal oder remote) + +### Konfiguration + +Die lokale Entwicklung verwendet einen **externen MongoDB Server**. Konfiguriere die Verbindung: + +**Option 1: .env.local Datei verwenden (empfohlen)** +```bash +cp .env.local .env.local.custom +nano .env.local.custom # Anpassen +docker compose -f docker-compose.local.yml --env-file .env.local.custom up +``` + +**Option 2: Direkt in docker-compose.local.yml anpassen** +Ändere die Environment-Variablen im File entsprechend deinem Setup. + +**MongoDB auf Host-Maschine:** +```yaml +- MONGOHOST=host.docker.internal # für Mac/Windows +- MONGOHOST=172.17.0.1 # für Linux +``` + +**MongoDB auf anderem Server:** +```yaml +- MONGOHOST=mongodb-dev.example.com +- MONGOPORT=27017 +- MONGOAUTH=true +- MONGOUSRP=user:password +``` + +### Verwendung + +```bash +# Starten (baut beim ersten Mal automatisch das Image) +docker compose -f docker-compose.local.yml up + +# Mit .env.local +docker compose -f docker-compose.local.yml --env-file .env.local up + +# Im Hintergrund starten +docker compose -f docker-compose.local.yml up -d + +# Logs anzeigen +docker compose -f docker-compose.local.yml logs -f + +# Stoppen +docker compose -f docker-compose.local.yml down +``` + +### Zugriff +- Anwendung: http://localhost:3005/fs/ + +### Hinweis: network_mode host + +Wenn MongoDB auf `localhost` der Host-Maschine läuft, kannst du in `docker-compose.local.yml` auskommentieren: +```yaml +network_mode: host +``` +Dann ist die App direkt auf dem Host-Netzwerk und kann `localhost:27017` erreichen. + +## Server/Produktion + +### Voraussetzungen +- Docker und Docker Compose installiert +- Zugriff auf externen MongoDB Server +- Image auf docker.citysensor.de Registry + +### Erste Einrichtung + +1. **Environment-Datei erstellen:** + ```bash + cp .env.example .env + nano .env # oder ein anderer Editor + ``` + +2. **Werte in .env anpassen:** + ```env + MONGOHOST=ihre-mongodb-server.example.com + MONGOPORT=27017 + MONGOBASE=allsensors + MONGOAUTH=true + MONGOUSRP=admin:securepassword + ``` + +3. **Zur Registry einloggen:** + ```bash + docker login docker.citysensor.de + ``` + +4. **Image pullen:** + ```bash + docker compose -f docker-compose.prod.yml pull + ``` + +### Deployment + +```bash +# Starten +docker compose -f docker-compose.prod.yml up -d + +# Status prüfen +docker compose -f docker-compose.prod.yml ps + +# Logs anzeigen +docker compose -f docker-compose.prod.yml logs -f geiger-web + +# Neustarten +docker compose -f docker-compose.prod.yml restart + +# Stoppen +docker compose -f docker-compose.prod.yml down +``` + +### Update auf neue Version + +```bash +# Neues Image pullen +docker compose -f docker-compose.prod.yml pull + +# Container neu starten mit neuem Image +docker compose -f docker-compose.prod.yml up -d + +# Alte Images aufräumen +docker image prune -f +``` + +### Monitoring + +```bash +# Live Logs +docker compose -f docker-compose.prod.yml logs -f + +# Ressourcen-Nutzung +docker stats geiger_web_prod + +# Health Check Status +docker inspect --format='{{.State.Health.Status}}' geiger_web_prod +``` + +## Build & Push (für Entwickler) + +Das deploy.sh Script übernimmt Build und Push automatisch: + +```bash +# Mit automatischem Datums-Tag +./deploy.sh + +# Mit spezifischem Tag +TAG=v2.9.6 ./deploy.sh +``` + +Oder manuell: + +```bash +# Image bauen +docker build -t docker.citysensor.de/geiger_web_26:latest . + +# Image zu Registry pushen +docker push docker.citysensor.de/geiger_web_26:latest +``` + +## Troubleshooting + +### Container startet nicht +```bash +# Detaillierte Logs +docker compose -f docker-compose.prod.yml logs geiger-web + +# Container Shell betreten +docker exec -it geiger_web_prod sh +``` + +### MongoDB Verbindungsprobleme +- Prüfe MONGOHOST und MONGOPORT in .env oder .env.local +- Prüfe Netzwerk-Konnektivität: `docker exec -it geiger_web_prod ping mongodb` +- Prüfe MongoDB Credentials +- **Lokal:** Wenn MongoDB auf localhost läuft, verwende `MONGOHOST=host.docker.internal` (Mac/Windows) oder `MONGOHOST=172.17.0.1` (Linux) +- **Lokal:** Alternativ aktiviere `network_mode: host` in docker-compose.local.yml + +### Port bereits belegt +Ändere EXTERNAL_PORT in .env auf einen anderen Port: +```env +EXTERNAL_PORT=3006 +``` + +### Logs zu groß +Die Produktionskonfiguration limitiert Logs auf 3 × 10MB. Bei Bedarf anpassen in docker-compose.prod.yml: +```yaml +logging: + options: + max-size: "10m" + max-file: "3" +``` + +## Sicherheitshinweise + +1. **.env Datei NIEMALS ins Git committen!** + - Ist bereits in .gitignore + - Enthält sensible Zugangsdaten + +2. **Starke Passwörter verwenden** + - Besonders für Produktions-MongoDB + +3. **Firewall konfigurieren** + - Nur notwendige Ports öffnen + - MongoDB Port (27017) nicht öffentlich zugänglich machen + +4. **Regelmäßige Updates** + - Base Image (node:alpine) aktuell halten + - Dependencies in package.json aktualisieren + +## Systemanforderungen + +### Lokal +- Minimum: 2 GB RAM, 2 CPU Cores +- Docker >= 20.10 +- Docker Compose >= 2.0 (oder Docker mit integriertem compose plugin) + +### Server +- Empfohlen: 2 GB RAM, 2 CPU Cores +- Anpassbar in docker-compose.prod.yml unter `deploy.resources` diff --git a/Dockerfile_geiger-web b/Dockerfile similarity index 100% rename from Dockerfile_geiger-web rename to Dockerfile diff --git a/geiger-app.js b/app.js similarity index 98% rename from geiger-app.js rename to app.js index 77c0b78..aaca289 100755 --- a/geiger-app.js +++ b/app.js @@ -40,6 +40,7 @@ async function checkHost(req, res, next) { (req.headers.host == 'multigeiger.rexfue.de') || (req.headers.host == 'multigeiger.citysensor.de') || (req.headers.host == 'test2.citysensor.de') || + (req.headers.host == 'geiger2.citysensor.de') || (req.headers.host == 'localhost:'+PORT) || (req.headers.host == 'nuccy:3005') || (req.headers.host == 'h2953026.stratoserver.net:8082') || diff --git a/build_and_copy.sh b/build_and_copy.sh deleted file mode 100755 index 381891b..0000000 --- a/build_and_copy.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/bash -# Build Docker-Container -# -# Call: buildit.sh name [target] -# -# The Dockerfile must be named like Dockerfile_name -# -# 2018-09-20 rxf -# - before sending docker image to remote, tag actual remote image -# -# 2018-09-14 rxf -# - first Version -# - -set -x -port="" -orgName=geiger-web -name=geiger-web - -usage() -{ - echo "Usage build_and_copy.sh [-p port] [-n name] target" - echo " Build docker container $name and copy to target" - echo "Params:" - echo " target: Where to copy the container to " - echo " -p port: ssh port (default 22)" - echo " -n name: new name for container (default: $orgName)" -} - -while getopts n:p:h? o -do - case "$o" in - n) name="$OPTARG";; - p) port="-p $OPTARG";; - h) usage; exit 0;; - *) usage; exit 1;; - esac -done -shift $((OPTIND-1)) - -while [ $# -gt 0 ]; do - if [[ -z "$target" ]]; then - target=$1 - shift - else - echo "bad option $1" - # exit 1 - shift - fi -done - -docker build -f Dockerfile_$orgName -t $name . - -dat=`date +%Y%m%d%H%M` - -if [ "$target" == "localhost" ] -then - docker tag $name $name:V_$dat - exit -fi - -ssh $port $target "docker tag $name $name:V_$dat" -docker save $name | bzip2 | pv | ssh $port $target 'bunzip2 | docker load' diff --git a/compose.yml b/compose.yml new file mode 100644 index 0000000..683013e --- /dev/null +++ b/compose.yml @@ -0,0 +1,13 @@ +services: + geiger2: + image: docker.citysensor.de/geiger_web_26:latest + container_name: geiger2 + restart: unless-stopped + env_file: + - .env.local + volumes: + - ${LOCALDIR}/log:/var/log + environment: + TZ: ${TZ:-Europe/Berlin} + ports: + - "3005:3005" diff --git a/debug-server.sh b/debug-server.sh new file mode 100755 index 0000000..9e00466 --- /dev/null +++ b/debug-server.sh @@ -0,0 +1,93 @@ +#!/bin/bash + +# Debug Script für Geiger Web Server +# Diagnostiziert Probleme mit dem Container + +set -e + +CONTAINER_NAME="geiger_web_prod" +VOLUME_NAME="geiger_logs_prod" + +echo "==========================================" +echo " Geiger Web Server Debug" +echo "==========================================" +echo "" + +# 1. Container Status prüfen +echo ">>> Container Status:" +docker ps -a --filter "name=${CONTAINER_NAME}" --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" +echo "" + +# 2. Container stoppen (falls läuft) +echo ">>> Stoppe Container..." +docker stop ${CONTAINER_NAME} 2>/dev/null || echo "Container war bereits gestoppt" +echo "" + +# 3. Logs aus Volume extrahieren +echo ">>> Extrahiere Logs aus Volume..." +docker run --rm \ + -v ${VOLUME_NAME}:/logs \ + alpine:latest \ + cat /logs/geiger-web.log 2>/dev/null | tail -100 > /tmp/geiger-debug.log || echo "Keine Logs gefunden" + +if [ -s /tmp/geiger-debug.log ]; then + echo ">>> Letzte 100 Log-Zeilen:" + cat /tmp/geiger-debug.log + echo "" +else + echo "Keine Logs im Volume gefunden" + echo "" +fi + +# 4. Container Umgebungsvariablen prüfen +echo ">>> Container Environment (ohne Passwörter):" +docker inspect ${CONTAINER_NAME} 2>/dev/null | jq -r '.[0].Config.Env[]' | grep -E '^MONGO|^DEBUG|^SERVERPORT|^TZ' || echo "Container nicht gefunden" +echo "" + +# 5. MongoDB Verbindung testen +echo ">>> Teste MongoDB Verbindung:" +MONGOHOST=$(docker inspect ${CONTAINER_NAME} 2>/dev/null | jq -r '.[0].Config.Env[]' | grep '^MONGOHOST=' | cut -d'=' -f2) +MONGOPORT=$(docker inspect ${CONTAINER_NAME} 2>/dev/null | jq -r '.[0].Config.Env[]' | grep '^MONGOPORT=' | cut -d'=' -f2) + +if [ ! -z "$MONGOHOST" ] && [ ! -z "$MONGOPORT" ]; then + echo "Teste Verbindung zu ${MONGOHOST}:${MONGOPORT}..." + timeout 5 bash -c "cat < /dev/null > /dev/tcp/${MONGOHOST}/${MONGOPORT}" 2>/dev/null && \ + echo "✓ MongoDB Port ist erreichbar" || \ + echo "✗ Fehler: MongoDB Port ${MONGOHOST}:${MONGOPORT} ist NICHT erreichbar!" +else + echo "✗ MONGOHOST oder MONGOPORT nicht gesetzt" +fi +echo "" + +# 6. Image Info +echo ">>> Image Info:" +docker inspect ${CONTAINER_NAME} 2>/dev/null | jq -r '.[0].Config.Image' || echo "Container nicht gefunden" +echo "" + +# 7. Restart Count +echo ">>> Restart Count:" +docker inspect ${CONTAINER_NAME} 2>/dev/null | jq -r '.[0].RestartCount' || echo "Container nicht gefunden" +echo "" + +echo "==========================================" +echo "Debug-Informationen gesammelt!" +echo "==========================================" +echo "" +echo "Vollständige Logs gespeichert in: /tmp/geiger-debug.log" +echo "" +echo "Nächste Schritte:" +echo "" +echo "1. Container OHNE Auto-Restart starten (um Logs zu sehen):" +echo " docker run --rm -it \\" +echo " -p 3005:3005 \\" +echo " -e MONGOHOST=${MONGOHOST} \\" +echo " -e MONGOPORT=${MONGOPORT} \\" +echo " -e MONGOBASE=sensor_data \\" +echo " -e MONGOAUTH=true \\" +echo " -e MONGOUSRP=user:password \\" +echo " -e TZ=Europe/Berlin \\" +echo " docker.citysensor.de/geiger_web_26:latest" +echo "" +echo "2. Original Container wieder starten:" +echo " docker start ${CONTAINER_NAME}" +echo "" diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 0000000..4121ed3 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +# Deploy Script für laufschrift +# Baut das Docker Image und lädt es zu docker.citysensor.de hoch + +set -e + + +# Konfiguration +REGISTRY="docker.citysensor.de" +IMAGE_NAME="geiger_web_26" +TAG="${TAG:-$(date +%Y%m%d%H%M)}" # default Datum +FULL_IMAGE="${REGISTRY}/${IMAGE_NAME}:${TAG}" + +# Build-Datum +BUILD_DATE=$(date +%d.%m.%Y) + +echo "==========================================" +echo " Deploy Script" +echo "==========================================" +echo "Registry: ${REGISTRY}" +echo "Image: ${IMAGE_NAME}" +echo "Tag: ${TAG}" +echo "Build-Datum: ${BUILD_DATE}" +echo "==========================================" +echo "" + +# 1. Login zur Registry (falls noch nicht eingeloggt) +echo ">>> Login zu ${REGISTRY}..." +docker login "${REGISTRY}" +echo "" + +# 2. Multiplatform Builder einrichten (docker-container driver erforderlich) +echo ">>> Richte Multiplatform Builder ein..." +if ! docker buildx inspect multiplatform-builder &>/dev/null; then + docker buildx create --name multiplatform-builder --driver docker-container --bootstrap +fi +docker buildx use multiplatform-builder +echo "" + +# 3. Docker Image bauen und pushen (Multiplatform) +echo ">>> Baue Multiplatform Docker Image und pushe zu Registry..." +docker buildx build \ + --platform linux/amd64,linux/arm64 \ + --build-arg BUILD_DATE="${BUILD_DATE}" \ + -t "${FULL_IMAGE}" \ + --push \ + . + +# 4. Keep :latest in sync for simple rollbacks and manual usage. +echo ">>> Tagge das image zusätzlich als :latest ..." +docker buildx imagetools create \ + -t "${REGISTRY}/${IMAGE_NAME}:latest" \ + "${FULL_IMAGE}" + + +echo ">>> Build und Push erfolgreich!" + +echo "" +echo "==========================================" +echo "✓ Deploy erfolgreich abgeschlossen!" +echo "==========================================" +echo "" +echo "Auf dem Server ausführen:" +echo " docker pull ${FULL_IMAGE}" +echo " docker-compose -f docker-compose.prod.yml up -d" +echo "" diff --git a/docker-compose.local.yml b/docker-compose.local.yml new file mode 100644 index 0000000..25b438e --- /dev/null +++ b/docker-compose.local.yml @@ -0,0 +1,29 @@ +# Docker Compose für lokale Entwicklung +# Verwendet externen MongoDB Server (wie Produktion) +# Verwendung: docker compose -f docker-compose.local.yml up +# +# HINWEIS: Passe die MongoDB-Verbindungsdaten unten an oder erstelle eine .env.local Datei + +services: + # Geiger Web Application + geiger-web: + build: + context: . + dockerfile: Dockerfile + container_name: geiger_web_local + restart: unless-stopped + env_file: + - .env.local + environment: + # Timezone (kann überschrieben werden) + - TZ=${TZ:-Europe/Berlin} + ports: + - "3005:3005" + volumes: + - ${PWD}/log:/var/log + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:3005/fs/"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 40s diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml new file mode 100644 index 0000000..82df445 --- /dev/null +++ b/docker-compose.prod.yml @@ -0,0 +1,64 @@ +# Docker Compose für Server/Produktion +# Verwendet externen MongoDB Server +# Verwendung: docker compose -f docker-compose.prod.yml up -d +# +# ACHTUNG: Erstelle zuerst eine .env Datei mit den korrekten Werten! +# Beispiel: cp .env.example .env und dann anpassen + +services: + geiger-web: + image: docker.citysensor.de/geiger_web_26:latest + container_name: geiger_web_prod + restart: always + environment: + # Server Configuration + - SERVERPORT=${SERVERPORT:-3005} + - DEBUG=${DEBUG:-false} + + # MongoDB Configuration (externer Server) + - MONGOHOST=${MONGOHOST} + - MONGOPORT=${MONGOPORT:-27017} + - MONGOBASE=${MONGOBASE} + - MONGOAUTH=${MONGOAUTH:-true} + - MONGOUSRP=${MONGOUSRP} + + # Timezone + - TZ=Europe/Berlin + + # Node Environment + - NODE_ENV=production + ports: + - "${EXTERNAL_PORT:-3005}:3005" + volumes: + # Logs persistent speichern + - geiger_logs_prod:/var/log + networks: + - geiger_network + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:3005/fs/"] + interval: 60s + timeout: 15s + retries: 5 + start_period: 60s + logging: + driver: "json-file" + options: + max-size: "10m" + max-file: "3" + # Resource Limits (bei Bedarf anpassen) + deploy: + resources: + limits: + cpus: '2.0' + memory: 1G + reservations: + cpus: '0.5' + memory: 512M + +networks: + geiger_network: + driver: bridge + +volumes: + geiger_logs_prod: + driver: local diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index a1cd17f..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,43 +0,0 @@ -version: '3' -services: - - fst-mongo: - image: mongo - volumes: - - /private/var/lib/mongodb:/data/db - - /private/var/log/feinstaub:/var/log - ports: - - '27017:27017' - container_name: fst-mongo -# command: '--auth' - restart: always - - fst-data: - image: fst-data - volumes: - - /private/var/log/feinstaub:/var/log - environment: - - TTS_KEY=YU4D8C6L39L53B8Q - - MONGOHOST=fst-mongo -# - MONGOAUTH=true -# - "MONGOUSRP=rxf:5C5dB|m" - container_name: fst-data - restart: always - -# fst-web: -# image: fst-web -# volumes: -# - /private/var/log/feinstaub:/var/log -## - "/etc/timezone:/etc/timezone:ro" -## - "/etc/localtime:/etc/localtime:ro" -# environment: -## - VIRTUAL_HOST=feinstaub.rexfue.de -# - MONGOHOST=fst-mongo -## - MONGOAUTH=true -## - "MONGOUSRP=rxf:5C5dB|m" -# - TZ=Europe/Berlin -# ports: -# - '3005:3005' -# container_name: fst-web -# restart: always - diff --git a/log/geiger-web.log b/log/geiger-web.log new file mode 100644 index 0000000..b30eab6 --- /dev/null +++ b/log/geiger-web.log @@ -0,0 +1,627 @@ +92921c305856 +MongoURL = "mongodb://217.72.203.152:27037" and Database = sensor_data +2026-03-27 20:55 App listens on port 3005, Mongo at 217.72.203.152 +/opt/app/node_modules/mongodb/lib/cmap/connection.js:462 + callback(new error_1.MongoServerError(document)); + ^ + +MongoServerError: Command find requires authentication + at MessageStream.messageHandler (/opt/app/node_modules/mongodb/lib/cmap/connection.js:462:30) + at MessageStream.emit (node:events:508:28) + at processIncomingData (/opt/app/node_modules/mongodb/lib/cmap/message_stream.js:108:16) + at MessageStream._write (/opt/app/node_modules/mongodb/lib/cmap/message_stream.js:28:9) + at writeOrBuffer (node:internal/streams/writable:570:12) + at _write (node:internal/streams/writable:499:10) + at Writable.write (node:internal/streams/writable:508:10) + at Socket.ondata (node:internal/streams/readable:1008:24) + at Socket.emit (node:events:508:28) + at addChunk (node:internal/streams/readable:559:12) { + ok: 0, + code: 13, + codeName: 'Unauthorized' +} + +Node.js v25.2.1 +92921c305856 +MongoURL = "mongodb://217.72.203.152:27037" and Database = sensor_data +2026-03-27 20:55 App listens on port 3005, Mongo at 217.72.203.152 +/opt/app/node_modules/mongodb/lib/cmap/connection.js:462 + callback(new error_1.MongoServerError(document)); + ^ + +MongoServerError: Command find requires authentication + at MessageStream.messageHandler (/opt/app/node_modules/mongodb/lib/cmap/connection.js:462:30) + at MessageStream.emit (node:events:508:28) + at processIncomingData (/opt/app/node_modules/mongodb/lib/cmap/message_stream.js:108:16) + at MessageStream._write (/opt/app/node_modules/mongodb/lib/cmap/message_stream.js:28:9) + at writeOrBuffer (node:internal/streams/writable:570:12) + at _write (node:internal/streams/writable:499:10) + at Writable.write (node:internal/streams/writable:508:10) + at Socket.ondata (node:internal/streams/readable:1008:24) + at Socket.emit (node:events:508:28) + at addChunk (node:internal/streams/readable:559:12) { + ok: 0, + code: 13, + codeName: 'Unauthorized' +} + +Node.js v25.2.1 +92921c305856 +MongoURL = "mongodb://217.72.203.152:27037" and Database = sensor_data +2026-03-27 20:55 App listens on port 3005, Mongo at 217.72.203.152 +/opt/app/node_modules/mongodb/lib/cmap/connection.js:462 + callback(new error_1.MongoServerError(document)); + ^ + +MongoServerError: Command find requires authentication + at MessageStream.messageHandler (/opt/app/node_modules/mongodb/lib/cmap/connection.js:462:30) + at MessageStream.emit (node:events:508:28) + at processIncomingData (/opt/app/node_modules/mongodb/lib/cmap/message_stream.js:108:16) + at MessageStream._write (/opt/app/node_modules/mongodb/lib/cmap/message_stream.js:28:9) + at writeOrBuffer (node:internal/streams/writable:570:12) + at _write (node:internal/streams/writable:499:10) + at Writable.write (node:internal/streams/writable:508:10) + at Socket.ondata (node:internal/streams/readable:1008:24) + at Socket.emit (node:events:508:28) + at addChunk (node:internal/streams/readable:559:12) { + ok: 0, + code: 13, + codeName: 'Unauthorized' +} + +Node.js v25.2.1 +92921c305856 +MongoURL = "mongodb://217.72.203.152:27037" and Database = sensor_data +2026-03-27 20:55 App listens on port 3005, Mongo at 217.72.203.152 +/opt/app/node_modules/mongodb/lib/cmap/connection.js:462 + callback(new error_1.MongoServerError(document)); + ^ + +MongoServerError: Command find requires authentication + at MessageStream.messageHandler (/opt/app/node_modules/mongodb/lib/cmap/connection.js:462:30) + at MessageStream.emit (node:events:508:28) + at processIncomingData (/opt/app/node_modules/mongodb/lib/cmap/message_stream.js:108:16) + at MessageStream._write (/opt/app/node_modules/mongodb/lib/cmap/message_stream.js:28:9) + at writeOrBuffer (node:internal/streams/writable:570:12) + at _write (node:internal/streams/writable:499:10) + at Writable.write (node:internal/streams/writable:508:10) + at Socket.ondata (node:internal/streams/readable:1008:24) + at Socket.emit (node:events:508:28) + at addChunk (node:internal/streams/readable:559:12) { + ok: 0, + code: 13, + codeName: 'Unauthorized' +} + +Node.js v25.2.1 +92921c305856 +MongoURL = "mongodb://217.72.203.152:27037" and Database = sensor_data +2026-03-27 20:55 App listens on port 3005, Mongo at 217.72.203.152 +/opt/app/node_modules/mongodb/lib/cmap/connection.js:462 + callback(new error_1.MongoServerError(document)); + ^ + +MongoServerError: Command find requires authentication + at MessageStream.messageHandler (/opt/app/node_modules/mongodb/lib/cmap/connection.js:462:30) + at MessageStream.emit (node:events:508:28) + at processIncomingData (/opt/app/node_modules/mongodb/lib/cmap/message_stream.js:108:16) + at MessageStream._write (/opt/app/node_modules/mongodb/lib/cmap/message_stream.js:28:9) + at writeOrBuffer (node:internal/streams/writable:570:12) + at _write (node:internal/streams/writable:499:10) + at Writable.write (node:internal/streams/writable:508:10) + at Socket.ondata (node:internal/streams/readable:1008:24) + at Socket.emit (node:events:508:28) + at addChunk (node:internal/streams/readable:559:12) { + ok: 0, + code: 13, + codeName: 'Unauthorized' +} + +Node.js v25.2.1 +92921c305856 +MongoURL = "mongodb://217.72.203.152:27037" and Database = sensor_data +2026-03-27 20:55 App listens on port 3005, Mongo at 217.72.203.152 +/opt/app/node_modules/mongodb/lib/cmap/connection.js:462 + callback(new error_1.MongoServerError(document)); + ^ + +MongoServerError: Command find requires authentication + at MessageStream.messageHandler (/opt/app/node_modules/mongodb/lib/cmap/connection.js:462:30) + at MessageStream.emit (node:events:508:28) + at processIncomingData (/opt/app/node_modules/mongodb/lib/cmap/message_stream.js:108:16) + at MessageStream._write (/opt/app/node_modules/mongodb/lib/cmap/message_stream.js:28:9) + at writeOrBuffer (node:internal/streams/writable:570:12) + at _write (node:internal/streams/writable:499:10) + at Writable.write (node:internal/streams/writable:508:10) + at Socket.ondata (node:internal/streams/readable:1008:24) + at Socket.emit (node:events:508:28) + at addChunk (node:internal/streams/readable:559:12) { + ok: 0, + code: 13, + codeName: 'Unauthorized' +} + +Node.js v25.2.1 +92921c305856 +MongoURL = "mongodb://217.72.203.152:27037" and Database = sensor_data +2026-03-27 20:56 App listens on port 3005, Mongo at 217.72.203.152 +/opt/app/node_modules/mongodb/lib/cmap/connection.js:462 + callback(new error_1.MongoServerError(document)); + ^ + +MongoServerError: Command find requires authentication + at MessageStream.messageHandler (/opt/app/node_modules/mongodb/lib/cmap/connection.js:462:30) + at MessageStream.emit (node:events:508:28) + at processIncomingData (/opt/app/node_modules/mongodb/lib/cmap/message_stream.js:108:16) + at MessageStream._write (/opt/app/node_modules/mongodb/lib/cmap/message_stream.js:28:9) + at writeOrBuffer (node:internal/streams/writable:570:12) + at _write (node:internal/streams/writable:499:10) + at Writable.write (node:internal/streams/writable:508:10) + at Socket.ondata (node:internal/streams/readable:1008:24) + at Socket.emit (node:events:508:28) + at addChunk (node:internal/streams/readable:559:12) { + ok: 0, + code: 13, + codeName: 'Unauthorized' +} + +Node.js v25.2.1 +92921c305856 +MongoURL = "mongodb://217.72.203.152:27037" and Database = sensor_data +2026-03-27 20:56 App listens on port 3005, Mongo at 217.72.203.152 +/opt/app/node_modules/mongodb/lib/cmap/connection.js:462 + callback(new error_1.MongoServerError(document)); + ^ + +MongoServerError: Command find requires authentication + at MessageStream.messageHandler (/opt/app/node_modules/mongodb/lib/cmap/connection.js:462:30) + at MessageStream.emit (node:events:508:28) + at processIncomingData (/opt/app/node_modules/mongodb/lib/cmap/message_stream.js:108:16) + at MessageStream._write (/opt/app/node_modules/mongodb/lib/cmap/message_stream.js:28:9) + at writeOrBuffer (node:internal/streams/writable:570:12) + at _write (node:internal/streams/writable:499:10) + at Writable.write (node:internal/streams/writable:508:10) + at Socket.ondata (node:internal/streams/readable:1008:24) + at Socket.emit (node:events:508:28) + at addChunk (node:internal/streams/readable:559:12) { + ok: 0, + code: 13, + codeName: 'Unauthorized' +} + +Node.js v25.2.1 +92921c305856 +MongoURL = "mongodb://217.72.203.152:27037" and Database = sensor_data +2026-03-27 20:56 App listens on port 3005, Mongo at 217.72.203.152 +/opt/app/node_modules/mongodb/lib/cmap/connection.js:462 + callback(new error_1.MongoServerError(document)); + ^ + +MongoServerError: Command find requires authentication + at MessageStream.messageHandler (/opt/app/node_modules/mongodb/lib/cmap/connection.js:462:30) + at MessageStream.emit (node:events:508:28) + at processIncomingData (/opt/app/node_modules/mongodb/lib/cmap/message_stream.js:108:16) + at MessageStream._write (/opt/app/node_modules/mongodb/lib/cmap/message_stream.js:28:9) + at writeOrBuffer (node:internal/streams/writable:570:12) + at _write (node:internal/streams/writable:499:10) + at Writable.write (node:internal/streams/writable:508:10) + at Socket.ondata (node:internal/streams/readable:1008:24) + at Socket.emit (node:events:508:28) + at addChunk (node:internal/streams/readable:559:12) { + ok: 0, + code: 13, + codeName: 'Unauthorized' +} + +Node.js v25.2.1 +92921c305856 +MongoURL = "mongodb://217.72.203.152:27037" and Database = sensor_data +2026-03-27 20:57 App listens on port 3005, Mongo at 217.72.203.152 +/opt/app/node_modules/mongodb/lib/cmap/connection.js:462 + callback(new error_1.MongoServerError(document)); + ^ + +MongoServerError: Command find requires authentication + at MessageStream.messageHandler (/opt/app/node_modules/mongodb/lib/cmap/connection.js:462:30) + at MessageStream.emit (node:events:508:28) + at processIncomingData (/opt/app/node_modules/mongodb/lib/cmap/message_stream.js:108:16) + at MessageStream._write (/opt/app/node_modules/mongodb/lib/cmap/message_stream.js:28:9) + at writeOrBuffer (node:internal/streams/writable:570:12) + at _write (node:internal/streams/writable:499:10) + at Writable.write (node:internal/streams/writable:508:10) + at Socket.ondata (node:internal/streams/readable:1008:24) + at Socket.emit (node:events:508:28) + at addChunk (node:internal/streams/readable:559:12) { + ok: 0, + code: 13, + codeName: 'Unauthorized' +} + +Node.js v25.2.1 +50b81c5b3ae2 +MongoURL = "mongodb://admin:mongo4noise@217.72.203.152:27037/?authSource=admin" and Database = sensor_data +2026-03-27 20:57 App listens on port 3005, Mongo at 217.72.203.152 +e2ca2e9d0190 +MongoURL = "mongodb://admin:mongo4noise@217.72.203.152:27037/?authSource=admin" and Database = sensor_data +2026-03-27 21:00 App listens on port 3005, Mongo at 217.72.203.152 +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 108 +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 108 +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 108 +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 108 +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 108 +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 108 +2026-03-27T21:04:36+01:00 /api/getaddress?sensorid=69441 unKnown +(node:19) Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED environment variable to '0' makes TLS connections and HTTPS requests insecure by disabling certificate verification. +(Use `node --trace-warnings ...` to show where the warning was created) +Get properties for 69441 from DB +got properties - time: 25 +Operating System = Macintosh +Get properties for 69441 from DB +got properties - time: 25 +Operating System = Macintosh +Get properties for 69441 from DB +got properties - time: 20 +e2ca2e9d0190 +MongoURL = "mongodb://admin:mongo4noise@217.72.203.152:27037/?authSource=admin" and Database = sensor_data +2026-03-27 21:57 App listens on port 3005, Mongo at 217.72.203.152 +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 108 +2026-03-27T21:57:51+01:00 /api/getaddress?sensorid=38695 unKnown +(node:19) Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED environment variable to '0' makes TLS connections and HTTPS requests insecure by disabling certificate verification. +(Use `node --trace-warnings ...` to show where the warning was created) +Get properties for 38695 from DB +got properties - time: 22 +Operating System = Macintosh +Get properties for 38695 from DB +got properties - time: 19 +Operating System = Macintosh +Get properties for 38695 from DB +got properties - time: 19 +668cd3a93a18 +MongoURL = "mongodb://admin:mongo4noise@217.72.203.152:27037/?authSource=admin" and Database = sensor_data +2026-03-27 22:14 App listens on port 3005, Mongo at 217.72.203.152 +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 108 +9a20d796aeb0 +MongoURL = "mongodb://admin:mongo4noise@217.72.203.152:27037/?authSource=admin" and Database = sensor_data +2026-03-27 22:15 App listens on port 3005, Mongo at 217.72.203.152 +a250e82c9c85 +MongoURL = "mongodb://admin:mongo4noise@217.72.203.152:27037/?authSource=admin" and Database = sensor_data +2026-03-27 22:16 App listens on port 3005, Mongo at 217.72.203.152 +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 108 +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 108 +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 108 +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 108 +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 108 +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 108 +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 108 +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 108 +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 108 +1619bdaeee6c +2026-03-28 12:21 App listens on port 3005, Mongo at 217.72.203.152 +1619bdaeee6c +2026-03-28 12:22 App listens on port 3005, Mongo at 217.72.203.152 +97af434d0a4c +2026-03-28 12:24 App listens on port 3005, Mongo at 217.72.203.152 +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 0 +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 0 +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 0 +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 0 +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 0 +97af434d0a4c +2026-03-28 12:31 App listens on port 3005, Mongo at 217.72.203.152 +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 0 +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 0 +e68353ece841 +MongoURL = "mongodb://localhost:27017" and Database = allsensors +MongoServerSelectionError + at Timeout._onTimeout (/opt/app/node_modules/mongodb/lib/sdam/topology.js:312:38) + at listOnTimeout (node:internal/timers:605:17) + at process.processTimers (node:internal/timers:541:7) { + reason: TopologyDescription { + type: 'Unknown', + servers: Map(1) { 'localhost:27017' => [ServerDescription] }, + stale: false, + compatible: true, + heartbeatFrequencyMS: 10000, + localThresholdMS: 15, + logicalSessionTimeoutMinutes: undefined + }, + code: undefined +} +e68353ece841 +MongoURL = "mongodb://localhost:27017" and Database = allsensors +90461f515b56 +MongoURL = "mongodb://localhost:27017" and Database = allsensors +MongoServerSelectionError + at Timeout._onTimeout (/opt/app/node_modules/mongodb/lib/sdam/topology.js:312:38) + at listOnTimeout (node:internal/timers:605:17) + at process.processTimers (node:internal/timers:541:7) { + reason: TopologyDescription { + type: 'Unknown', + servers: Map(1) { 'localhost:27017' => [ServerDescription] }, + stale: false, + compatible: true, + heartbeatFrequencyMS: 10000, + localThresholdMS: 15, + logicalSessionTimeoutMinutes: undefined + }, + code: undefined +} +90461f515b56 +MongoURL = "mongodb://localhost:27017" and Database = allsensors +90461f515b56 +MongoURL = "mongodb://localhost:27017" and Database = allsensors +0dd3d30525d9 +MongoURL = "mongodb://@217.72.203.152:27037/?authSource=admin" and Database = sensor_data +MongoParseError: URI contained empty userinfo section + at new ConnectionString (/opt/app/node_modules/mongodb-connection-string-url/lib/index.js:111:27) + at parseOptions (/opt/app/node_modules/mongodb/lib/connection_string.js:213:17) + at new MongoClient (/opt/app/node_modules/mongodb/lib/mongo_client.js:62:63) + at MongoClient.connect (/opt/app/node_modules/mongodb/lib/mongo_client.js:184:33) + at Object. (/opt/app/app.js:163:29) + at Module._compile (node:internal/modules/cjs/loader:1760:14) + at Object..js (node:internal/modules/cjs/loader:1892:10) + at Module.load (node:internal/modules/cjs/loader:1480:32) + at Module._load (node:internal/modules/cjs/loader:1299:12) + at TracingChannel.traceSync (node:diagnostics_channel:328:14) +0dd3d30525d9 +MongoURL = "mongodb://@217.72.203.152:27037/?authSource=admin" and Database = sensor_data +MongoParseError: URI contained empty userinfo section + at new ConnectionString (/opt/app/node_modules/mongodb-connection-string-url/lib/index.js:111:27) + at parseOptions (/opt/app/node_modules/mongodb/lib/connection_string.js:213:17) + at new MongoClient (/opt/app/node_modules/mongodb/lib/mongo_client.js:62:63) + at MongoClient.connect (/opt/app/node_modules/mongodb/lib/mongo_client.js:184:33) + at Object. (/opt/app/app.js:163:29) + at Module._compile (node:internal/modules/cjs/loader:1760:14) + at Object..js (node:internal/modules/cjs/loader:1892:10) + at Module.load (node:internal/modules/cjs/loader:1480:32) + at Module._load (node:internal/modules/cjs/loader:1299:12) + at TracingChannel.traceSync (node:diagnostics_channel:328:14) +0dd3d30525d9 +MongoURL = "mongodb://@217.72.203.152:27037/?authSource=admin" and Database = sensor_data +MongoParseError: URI contained empty userinfo section + at new ConnectionString (/opt/app/node_modules/mongodb-connection-string-url/lib/index.js:111:27) + at parseOptions (/opt/app/node_modules/mongodb/lib/connection_string.js:213:17) + at new MongoClient (/opt/app/node_modules/mongodb/lib/mongo_client.js:62:63) + at MongoClient.connect (/opt/app/node_modules/mongodb/lib/mongo_client.js:184:33) + at Object. (/opt/app/app.js:163:29) + at Module._compile (node:internal/modules/cjs/loader:1760:14) + at Object..js (node:internal/modules/cjs/loader:1892:10) + at Module.load (node:internal/modules/cjs/loader:1480:32) + at Module._load (node:internal/modules/cjs/loader:1299:12) + at TracingChannel.traceSync (node:diagnostics_channel:328:14) +0dd3d30525d9 +MongoURL = "mongodb://@217.72.203.152:27037/?authSource=admin" and Database = sensor_data +MongoParseError: URI contained empty userinfo section + at new ConnectionString (/opt/app/node_modules/mongodb-connection-string-url/lib/index.js:111:27) + at parseOptions (/opt/app/node_modules/mongodb/lib/connection_string.js:213:17) + at new MongoClient (/opt/app/node_modules/mongodb/lib/mongo_client.js:62:63) + at MongoClient.connect (/opt/app/node_modules/mongodb/lib/mongo_client.js:184:33) + at Object. (/opt/app/app.js:163:29) + at Module._compile (node:internal/modules/cjs/loader:1760:14) + at Object..js (node:internal/modules/cjs/loader:1892:10) + at Module.load (node:internal/modules/cjs/loader:1480:32) + at Module._load (node:internal/modules/cjs/loader:1299:12) + at TracingChannel.traceSync (node:diagnostics_channel:328:14) +0dd3d30525d9 +MongoURL = "mongodb://@217.72.203.152:27037/?authSource=admin" and Database = sensor_data +MongoParseError: URI contained empty userinfo section + at new ConnectionString (/opt/app/node_modules/mongodb-connection-string-url/lib/index.js:111:27) + at parseOptions (/opt/app/node_modules/mongodb/lib/connection_string.js:213:17) + at new MongoClient (/opt/app/node_modules/mongodb/lib/mongo_client.js:62:63) + at MongoClient.connect (/opt/app/node_modules/mongodb/lib/mongo_client.js:184:33) + at Object. (/opt/app/app.js:163:29) + at Module._compile (node:internal/modules/cjs/loader:1760:14) + at Object..js (node:internal/modules/cjs/loader:1892:10) + at Module.load (node:internal/modules/cjs/loader:1480:32) + at Module._load (node:internal/modules/cjs/loader:1299:12) + at TracingChannel.traceSync (node:diagnostics_channel:328:14) +0dd3d30525d9 +MongoURL = "mongodb://@217.72.203.152:27037/?authSource=admin" and Database = sensor_data +MongoParseError: URI contained empty userinfo section + at new ConnectionString (/opt/app/node_modules/mongodb-connection-string-url/lib/index.js:111:27) + at parseOptions (/opt/app/node_modules/mongodb/lib/connection_string.js:213:17) + at new MongoClient (/opt/app/node_modules/mongodb/lib/mongo_client.js:62:63) + at MongoClient.connect (/opt/app/node_modules/mongodb/lib/mongo_client.js:184:33) + at Object. (/opt/app/app.js:163:29) + at Module._compile (node:internal/modules/cjs/loader:1760:14) + at Object..js (node:internal/modules/cjs/loader:1892:10) + at Module.load (node:internal/modules/cjs/loader:1480:32) + at Module._load (node:internal/modules/cjs/loader:1299:12) + at TracingChannel.traceSync (node:diagnostics_channel:328:14) +0dd3d30525d9 +MongoURL = "mongodb://@217.72.203.152:27037/?authSource=admin" and Database = sensor_data +MongoParseError: URI contained empty userinfo section + at new ConnectionString (/opt/app/node_modules/mongodb-connection-string-url/lib/index.js:111:27) + at parseOptions (/opt/app/node_modules/mongodb/lib/connection_string.js:213:17) + at new MongoClient (/opt/app/node_modules/mongodb/lib/mongo_client.js:62:63) + at MongoClient.connect (/opt/app/node_modules/mongodb/lib/mongo_client.js:184:33) + at Object. (/opt/app/app.js:163:29) + at Module._compile (node:internal/modules/cjs/loader:1760:14) + at Object..js (node:internal/modules/cjs/loader:1892:10) + at Module.load (node:internal/modules/cjs/loader:1480:32) + at Module._load (node:internal/modules/cjs/loader:1299:12) + at TracingChannel.traceSync (node:diagnostics_channel:328:14) +0dd3d30525d9 +MongoURL = "mongodb://@217.72.203.152:27037/?authSource=admin" and Database = sensor_data +MongoParseError: URI contained empty userinfo section + at new ConnectionString (/opt/app/node_modules/mongodb-connection-string-url/lib/index.js:111:27) + at parseOptions (/opt/app/node_modules/mongodb/lib/connection_string.js:213:17) + at new MongoClient (/opt/app/node_modules/mongodb/lib/mongo_client.js:62:63) + at MongoClient.connect (/opt/app/node_modules/mongodb/lib/mongo_client.js:184:33) + at Object. (/opt/app/app.js:163:29) + at Module._compile (node:internal/modules/cjs/loader:1760:14) + at Object..js (node:internal/modules/cjs/loader:1892:10) + at Module.load (node:internal/modules/cjs/loader:1480:32) + at Module._load (node:internal/modules/cjs/loader:1299:12) + at TracingChannel.traceSync (node:diagnostics_channel:328:14) +0dd3d30525d9 +MongoURL = "mongodb://@217.72.203.152:27037/?authSource=admin" and Database = sensor_data +MongoParseError: URI contained empty userinfo section + at new ConnectionString (/opt/app/node_modules/mongodb-connection-string-url/lib/index.js:111:27) + at parseOptions (/opt/app/node_modules/mongodb/lib/connection_string.js:213:17) + at new MongoClient (/opt/app/node_modules/mongodb/lib/mongo_client.js:62:63) + at MongoClient.connect (/opt/app/node_modules/mongodb/lib/mongo_client.js:184:33) + at Object. (/opt/app/app.js:163:29) + at Module._compile (node:internal/modules/cjs/loader:1760:14) + at Object..js (node:internal/modules/cjs/loader:1892:10) + at Module.load (node:internal/modules/cjs/loader:1480:32) + at Module._load (node:internal/modules/cjs/loader:1299:12) + at TracingChannel.traceSync (node:diagnostics_channel:328:14) +0b395a1691cc +MongoURL = "mongodb://admin:mongo4noise@217.72.203.152:27037/?authSource=admin" and Database = sensor_data +2026-03-28 12:35 App listens on port 3005, Mongo at 217.72.203.152 +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 108 +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 108 +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 108 +2026-03-28T12:36:29+01:00 /api/getaddress?sensorid=31122 unKnown +(node:18) Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED environment variable to '0' makes TLS connections and HTTPS requests insecure by disabling certificate verification. +(Use `node --trace-warnings ...` to show where the warning was created) +2026-03-28T12:36:43+01:00 /api/getaddress?sensorid=68890 unKnown +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 108 +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 108 +getaktdata: now fetching data from DB +getaktdata: data fetched, length= 108 +2026-03-28T13:50:05+01:00 /api/getaddress?sensorid=57613 unKnown +2026-03-28T13:53:00+01:00 /api/getaddress?sensorid=68627 unKnown +0b4257f37974 +MongoParseError: URI contained empty userinfo section + at new ConnectionString (/opt/app/node_modules/mongodb-connection-string-url/lib/index.js:111:27) + at parseOptions (/opt/app/node_modules/mongodb/lib/connection_string.js:213:17) + at new MongoClient (/opt/app/node_modules/mongodb/lib/mongo_client.js:62:63) + at MongoClient.connect (/opt/app/node_modules/mongodb/lib/mongo_client.js:184:33) + at Object. (/opt/app/app.js:160:29) + at Module._compile (node:internal/modules/cjs/loader:1829:14) + at Object..js (node:internal/modules/cjs/loader:1969:10) + at Module.load (node:internal/modules/cjs/loader:1552:32) + at Module._load (node:internal/modules/cjs/loader:1354:12) + at wrapModuleLoad (node:internal/modules/cjs/loader:255:19) +0b4257f37974 +MongoParseError: URI contained empty userinfo section + at new ConnectionString (/opt/app/node_modules/mongodb-connection-string-url/lib/index.js:111:27) + at parseOptions (/opt/app/node_modules/mongodb/lib/connection_string.js:213:17) + at new MongoClient (/opt/app/node_modules/mongodb/lib/mongo_client.js:62:63) + at MongoClient.connect (/opt/app/node_modules/mongodb/lib/mongo_client.js:184:33) + at Object. (/opt/app/app.js:160:29) + at Module._compile (node:internal/modules/cjs/loader:1829:14) + at Object..js (node:internal/modules/cjs/loader:1969:10) + at Module.load (node:internal/modules/cjs/loader:1552:32) + at Module._load (node:internal/modules/cjs/loader:1354:12) + at wrapModuleLoad (node:internal/modules/cjs/loader:255:19) +0b4257f37974 +MongoParseError: URI contained empty userinfo section + at new ConnectionString (/opt/app/node_modules/mongodb-connection-string-url/lib/index.js:111:27) + at parseOptions (/opt/app/node_modules/mongodb/lib/connection_string.js:213:17) + at new MongoClient (/opt/app/node_modules/mongodb/lib/mongo_client.js:62:63) + at MongoClient.connect (/opt/app/node_modules/mongodb/lib/mongo_client.js:184:33) + at Object. (/opt/app/app.js:160:29) + at Module._compile (node:internal/modules/cjs/loader:1829:14) + at Object..js (node:internal/modules/cjs/loader:1969:10) + at Module.load (node:internal/modules/cjs/loader:1552:32) + at Module._load (node:internal/modules/cjs/loader:1354:12) + at wrapModuleLoad (node:internal/modules/cjs/loader:255:19) +0b4257f37974 +MongoParseError: URI contained empty userinfo section + at new ConnectionString (/opt/app/node_modules/mongodb-connection-string-url/lib/index.js:111:27) + at parseOptions (/opt/app/node_modules/mongodb/lib/connection_string.js:213:17) + at new MongoClient (/opt/app/node_modules/mongodb/lib/mongo_client.js:62:63) + at MongoClient.connect (/opt/app/node_modules/mongodb/lib/mongo_client.js:184:33) + at Object. (/opt/app/app.js:160:29) + at Module._compile (node:internal/modules/cjs/loader:1829:14) + at Object..js (node:internal/modules/cjs/loader:1969:10) + at Module.load (node:internal/modules/cjs/loader:1552:32) + at Module._load (node:internal/modules/cjs/loader:1354:12) + at wrapModuleLoad (node:internal/modules/cjs/loader:255:19) +0b4257f37974 +MongoParseError: URI contained empty userinfo section + at new ConnectionString (/opt/app/node_modules/mongodb-connection-string-url/lib/index.js:111:27) + at parseOptions (/opt/app/node_modules/mongodb/lib/connection_string.js:213:17) + at new MongoClient (/opt/app/node_modules/mongodb/lib/mongo_client.js:62:63) + at MongoClient.connect (/opt/app/node_modules/mongodb/lib/mongo_client.js:184:33) + at Object. (/opt/app/app.js:160:29) + at Module._compile (node:internal/modules/cjs/loader:1829:14) + at Object..js (node:internal/modules/cjs/loader:1969:10) + at Module.load (node:internal/modules/cjs/loader:1552:32) + at Module._load (node:internal/modules/cjs/loader:1354:12) + at wrapModuleLoad (node:internal/modules/cjs/loader:255:19) +0b4257f37974 +MongoParseError: URI contained empty userinfo section + at new ConnectionString (/opt/app/node_modules/mongodb-connection-string-url/lib/index.js:111:27) + at parseOptions (/opt/app/node_modules/mongodb/lib/connection_string.js:213:17) + at new MongoClient (/opt/app/node_modules/mongodb/lib/mongo_client.js:62:63) + at MongoClient.connect (/opt/app/node_modules/mongodb/lib/mongo_client.js:184:33) + at Object. (/opt/app/app.js:160:29) + at Module._compile (node:internal/modules/cjs/loader:1829:14) + at Object..js (node:internal/modules/cjs/loader:1969:10) + at Module.load (node:internal/modules/cjs/loader:1552:32) + at Module._load (node:internal/modules/cjs/loader:1354:12) + at wrapModuleLoad (node:internal/modules/cjs/loader:255:19) +ea91455ac28a +MongoURL = "mongodb://admin:mongo4noise@217.72.203.152:27037/?authSource=admin" and Database = allsensors +2026-03-28 14:06 App listens on port 3005, Mongo at 217.72.203.152 +getaktdata: now fetching data from DB +getaktdata: Query filter: {"type":"radioactivity"} +getaktdata: data fetched, length= 0 +4f19ae493507 +MongoURL = "mongodb://admin:mongo4noise@217.72.203.152:27037/?authSource=admin" and Database = sensor_data +2026-03-28 14:09 App listens on port 3005, Mongo at 217.72.203.152 +getaktdata: now fetching data from DB +getaktdata: Query filter: {"type":"radioactivity"} +getaktdata: data fetched, length= 108 +97d37d72054f +MongoURL = "mongodb://admin:mongo4noise@217.72.203.152:27037/?authSource=admin" and Database = sensor_data +2026-03-28 14:12 App listens on port 3005, Mongo at 217.72.203.152 +getaktdata: now fetching data from DB +getaktdata: Query filter: {"type":"radioactivity"} +getaktdata: data fetched, length= 108 +2026-03-28T14:12:22+01:00 /api/getaddress?sensorid=38695 unKnown +(node:19) Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED environment variable to '0' makes TLS connections and HTTPS requests insecure by disabling certificate verification. +(Use `node --trace-warnings ...` to show where the warning was created) +Get properties for 38695 from DB +got properties - time: 20 +Operating System = Macintosh +Get properties for 38695 from DB +got properties - time: 21 +Operating System = Macintosh +Get properties for 38695 from DB +got properties - time: 21 +getaktdata: now fetching data from DB +getaktdata: Query filter: {"type":"radioactivity"} +getaktdata: data fetched, length= 108 +2026-03-28T14:20:35+01:00 /api/getaddress?sensorid=39280 unKnown +Get properties for 39280 from DB +got properties - time: 22 +Operating System = Macintosh +Get properties for 39280 from DB +got properties - time: 21 +Operating System = Macintosh +Get properties for 39280 from DB +got properties - time: 16 diff --git a/package.json b/package.json index eb17600..456dbc3 100755 --- a/package.json +++ b/package.json @@ -1,12 +1,12 @@ { - "name": "multigeiger", - "version": "2.9.6", + "name": "geiger2", + "version": "3.0.0", "date": "2022-03-16", "description": "Graphics for multigeiger sensors", - "main": "geiger-app.js", + "main": "app.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", - "start": "node geiger-app.js >>/var/log/geiger-web.log 2>&1" + "start": "node app.js" }, "author": "rxf@gmail.com", "license": "ISC", diff --git a/public/js/global.js b/public/js/global.js index 352c6df..69b293a 100755 --- a/public/js/global.js +++ b/public/js/global.js @@ -383,7 +383,7 @@ $(document).ready(function() { console.log(`New zoom: ${map.getZoom()}`); }); - await buildAKWs(); +// await buildAKWs(); await buildMarkers(bounds); diff --git a/routes/mapdata.js b/routes/mapdata.js index 71a2133..98ccd0c 100755 --- a/routes/mapdata.js +++ b/routes/mapdata.js @@ -69,6 +69,7 @@ router.get('/getaktdata/', async function (req, res) { } try { + console.log("getaktdata: Query filter:", JSON.stringify(loc)); let docs = await collection.find(loc).toArray(); if (docs == null) { diff --git a/test-server.sh b/test-server.sh new file mode 100755 index 0000000..eb65315 --- /dev/null +++ b/test-server.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +# Test Script - Startet Container OHNE Auto-Restart +# So können wir die Fehlermeldungen direkt sehen + +echo "==========================================" +echo " Test-Start (ohne Auto-Restart)" +echo "==========================================" +echo "" +echo "Der Container wird im Vordergrund gestartet." +echo "Fehler werden direkt angezeigt." +echo "Zum Beenden: Ctrl+C" +echo "" +echo "Starte in 3 Sekunden..." +sleep 3 + +docker run --rm -it \ + -p 3005:3005 \ + -e MONGOHOST=207.180.224.98 \ + -e MONGOPORT=20019 \ + -e MONGOBASE=sensor_data \ + -e MONGOAUTH=true \ + -e MONGOUSRP=rexfueAdmin:D6grTasE56 \ + -e TZ=Europe/Berlin \ + -e DEBUG=true \ + docker.citysensor.de/geiger_web_26:latest