Jetzt läufts erst mal auf citysensor.de (strato) mit der MongoDB auf IONOS
This commit is contained in:
rxf
2026-03-28 15:20:51 +01:00
parent b7736413d4
commit cb5062c0de
19 changed files with 1213 additions and 112 deletions

30
.env.example Normal file
View File

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

18
.env.local Normal file
View File

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

3
.gitignore vendored
View File

@@ -2,3 +2,6 @@
Feinstaub_ToDos.pdf
this_is_MacBig
.idea
.env
.env.local.custom
.DS_Store

2
.vscode/launch.json vendored
View File

@@ -26,7 +26,7 @@
"MONGOUSRP": "admin:mongo4noise",
"MONGOBASE": "sensor_data"
},
"program": "${workspaceFolder}/geiger-app.js"
"program": "${workspaceFolder}/app.js"
}
]
}

235
DOCKER.md Normal file
View File

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

View File

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

View File

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

13
compose.yml Normal file
View File

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

93
debug-server.sh Executable file
View File

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

67
deploy.sh Executable file
View File

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

29
docker-compose.local.yml Normal file
View File

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

64
docker-compose.prod.yml Normal file
View File

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

View File

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

627
log/geiger-web.log Normal file
View File

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

View File

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

View File

@@ -383,7 +383,7 @@ $(document).ready(function() {
console.log(`New zoom: ${map.getZoom()}`);
});
await buildAKWs();
// await buildAKWs();
await buildMarkers(bounds);

View File

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

26
test-server.sh Executable file
View File

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