Swagger UI Fehler, HTML statt JSON

Moin, ich hab da mal ein keines Problem.
Ich versuche testweise für die DLRG Dresden den Server auf einem pi4 per Docker und nginx aufzusetzen.
Das hat soweit auch alles geklappt und ich komme auf den Server drauf.
Nur die Anbindung der ALARMiator App funktioniert nicht da die swagger UI die Antwort für den API Zugriffspunkt nicht als JSON sonder als HTML zurück gibt.

Der revers Proxi ist nach Anleitung eingerichtet und in der FRITZ!Box sind alle nötigen Ports offen.
Ich hab das Problem jetzt schon bei mehreren hier gelesen, nur eine Lösung wurde bei allen anderen threads nicht gegeben. Zumindest hat nichts davon funktioniert. ;D

Angeblich ist das relativ einfach zu lösen.
Wenn jemand weiß wie, wäre ich sehr dankbar wenn mir jemand helfen könnte.

VG Johann

Moin Johann,

lade doch mal deine NGINX-Konfiguration hier hoch, damit man sich ein Bild machen kann. Ist das REST-API Plugin im Server aktiviert? Auch hier wäre ein Screenshot von der Konfiguration hilfreich.

Viele Grüße

Ich glaub es gibt hier den fehler wie bei mir ebenfalls. ich würde dir einfach mal meine Screenshots der Konfig schicken.







hier auch nochmal mein Post:
https://community.alarmiator.de/t/syntax-error-unexpected-token-in-json-at-position-1/666/2

Die Swagger-UI.css sieht genauso aus wie bei Tobias.

ansonsten:

Bisher bin ich zwar auch nur Anwender, aber beruflich bin ich immerhin im Bereich Softwareentwicklung tätig, also mal ein paar Punkte zum prüfen:

Das sieht bei meiner Konfiguration eigentlich identisch aus.
Einzige Ausnahme: HSTS Subdomains sollte aktiviert sein. Ich kann mir aber nicht vorstellen, dass es daran hängt - ein versuch ist es aber alle mal wert.

Ein paar weitere Gedanken zum probieren:

  • blockt die Firewall die Verbindung zum Container?
  • was sagen die logs (docker logs [container-name])
  • sind die mime-types korrekt eingebunden (/etc/nginx/nginx.conf (suche nach include mime.types)
  • sind die letsencrypt-Zertifikate gültig?

Kleine Hilfe zu Docker:
Container auflisten: docker ps -a
Bash im Container öffnen: docker exec -it [container-name] /bin/bash

Hallo Johann,

Bitte nimm in deinen Plugin Einstellungen am Alarmiator https raus.

Das https übernimmt bei dir der nginx proxy manager und zwischen nginx proxy manager und alarmiator läuft die Verbindung im virtuellen Docker Netzwerk lokal auf deinem Host via http.

Es ist also aus Sicht des ALARMiator http. Auch wenn für alle Anwender die über den Reverse Proxy zugreifen, https benutzt wird.

Zusätzlich ist bei dir im nginx proxy manager bei dem Subpath /api/ kein Slash hinter alarmiator_service dieser ist bei der api nötig. Steht im Handbuch aber kann man leicht übersehen. Also alarmiator_service/ aber nur bei der Api.

Lass mich wissen, ob die Änderung + Neustart hilft.

Viele Grüße

Hallo Tobias,

bei dir ebenfalls (siehe meinen Beitrag) mal https deaktivieren und auch die Weiterleitung im Router entfernen.

Das ist nicht nötig mit dem nginx proxy manager und ist noch vorhanden, da ältere Versionen des Servers selbst https hatten ohne reverse proxy. Also für neuere Instanzen nicht mehr relevant.

Das werden wir besser markieren im Handbuch und im Server.

Hallo Dazza,

Ich hab das Problem noch nicht behoben bekommen, probiere aber das mal aus was hier & in meinem Post steht. Melde mich dann mit dem Ergebnis :+1:t2:

Viele dank schonmal im Vorraus!!

hier auch die Logs nach dem Server neustart:

> 14:08:13.668 [info] CRYPTO [CRYPTOMANAGER] 	Start ----------------------------
> 14:08:13.713 [info] PLGMANAGER [PLGMANAGER] 	Plugin start of plugin [ALARMiator Mobile | alarmiatormobile] is allowed
> 14:08:13.714 [info] PLGMANAGER [PLGMANAGER] 	Initializing plugin /alarmiatorserver/plugins/outbound/alarmiator
> 14:08:13.733 [info] PLGMANAGER [PLGMANAGER] 	Plugin start of plugin [Http Generic  | httpgeneric] is allowed
> 14:08:13.735 [info] PLGMANAGER [PLGMANAGER] 	Initializing plugin /alarmiatorserver/plugins/outbound/httpgeneric
> 14:08:13.756 [info] PLGMANAGER [PLGMANAGER] 	Plugin start of plugin [REST API | restapi] is allowed
> 14:08:13.757 [info] PLGMANAGER [PLGMANAGER] 	Initializing plugin /alarmiatorserver/plugins/inbound/api
> 
> 14:08:14.022 [info] PLGMANAGER [ALARMIATORMOBILE] 	-------- PLUGIN ALARMiator Mobile-----------
> 14:08:14.027 [info] PLGMANAGER [ALARMIATORMOBILE] 	Registering events
> 14:08:14.039 [info] PLGMANAGER [PLGMANAGER] 	Plugin with namespace alarmiatormobile instantiated
> 14:08:14.041 [info] PLGMANAGER [PLGMANAGER] 	initialising /alarmiatorserver/plugins/outbound/httpgeneric/base.js for namespace httpgeneric
> 14:08:14.049 [info] PLGMANAGER [HTTP_GENERIC] 	-------- PLUGIN Http Generic -----------
> 14:08:14.051 [info] PLGMANAGER [PLGMANAGER] 	Plugin with namespace httpgeneric instantiated
> 14:08:14.052 [info] PLGMANAGER [PLGMANAGER] 	initialising /alarmiatorserver/plugins/inbound/api/base.js for namespace restapi
> 14:08:14.061 [info] PLGMANAGER [RESTAPI] 	-------- PLUGIN REST API-----------
> 14:08:14.070 [info] PLGMANAGER [PLGMANAGER] 	Plugin with namespace restapi instantiated
> 14:08:14.071 [info] PLGMANAGER [PLGMANAGER] 	Finished initialization of plugins.
> 14:08:14.079 [info] SERVERCORE [SERVERCORE] 	CRYPTO | Keypair loaded successfully
> 14:08:14.104 [info] PLGMANAGER [RELEASE-RADAR] 	Starting Service
> 14:08:14.155 [info] PLGMANAGER [RELEASE-RADAR] 	Service started with pid 35
> 14:08:14.166 [info] PLGMANAGER [RELEASE-RADAR] 	Configuration loaded from core database
> 14:08:14.172 [info] PLGMANAGER [ALARMIATORMOBILE] 	Configuration loaded from core database
> 14:08:14.178 [info] PLGMANAGER [RESTAPI] 	Properly inititlized settings
> 14:08:14.180 [info] PLGMANAGER [RESTAPI] 	Starting Service
> 14:08:14.236 [info] PLGMANAGER [RESTAPI] 	Service started with pid 41
> 14:08:14.242 [info] PLGMANAGER [RESTAPI] 	Configuration loaded from core database
> 14:08:14.250 [warn] SERVERCORE [SERVERCORE] 	ALARMiator Server could not be started with SSL as certificates seem not to exist!
> 14:08:14.251 [warn] SERVERCORE [SERVERCORE] 	CORE | --> /alarmiatorserver/certificates/privkey.pem
> 14:08:14.252 [warn] SERVERCORE [SERVERCORE] 	CORE | --> /alarmiatorserver/certificates/cert.pem
> 14:08:14.260 [info] SERVERCORE [SERVERCORE] 	ALARMiator HTTP-Server is running on port: 5000
> 14:08:14.267 [info] PLGMANAGER [HTTP_GENERIC] 	Properly initialized settings
> 14:08:14.270 [info] PLGMANAGER [HTTP_GENERIC] 	Starting Service
> 14:08:14.336 [info] PLGMANAGER [HTTP_GENERIC] 	Service started with pid 48
> 14:08:14.349 [info] PLGMANAGER [HTTP_GENERIC] 	Configuration loaded from core database
> 14:08:14.371 [info] PLGMANAGER [ALARMIATORMOBILE] 	Configuration loaded from core database
> 14:08:15.437 [info] PLGMANAGER [RELEASE-RADAR] 	Loaded service configuration
> 14:08:15.439 [info] PLGMANAGER [RELEASE-RADAR] 	Starting Release-Radar Service
> PLUGIN | HTTP_GENERIC | service.js | register events from plugin.js
> 14:08:15.799 [info] PLGMANAGER [HTTP_GENERIC] 	SERVICE | Register IPC events from base.js
> 14:08:15.826 [info] PLGMANAGER [HTTP_GENERIC] 	SERVICE | Plugin configured
> 14:08:15.828 [info] PLGMANAGER [HTTP_GENERIC] 	SERVICE | Received Configuration from CORE
> 14:08:15.829 [info] PLGMANAGER [HTTP_GENERIC] 	SERVICE | Start Plugin via IPC message received
> 14:08:15.831 [info] PLGMANAGER [HTTP_GENERIC] 	SERVICE | Plugin is configured, invoke startPlugin
> 14:08:15.833 [info] PLGMANAGER [HTTP_GENERIC] 	SERVICE | Plugin Started with PID: 48
> 14:08:18.094 [info] RESTAPI    [APPJS  ] 	Started API
> 14:08:18.106 [info] RESTAPI    [APPJS  ] 	database started
> 14:08:18.112 [info] PLGMANAGER [RESTAPI] 	"Recieved Configuration from CORE"
> 14:08:18.114 [info] PLGMANAGER [RESTAPI] 	UNSOLICITED MESSAGE: "Recieved Configuration from CORE"
> 14:08:18.115 [info] PLGMANAGER [RESTAPI] 	"Starting API now"
> 14:08:18.116 [info] PLGMANAGER [RESTAPI] 	UNSOLICITED MESSAGE: "Starting API now"
> 14:08:20.469 [info] PLGMANAGER [RESTAPI] 	"CORE | Rest API running on Port 5010"
> 14:08:20.470 [info] PLGMANAGER [RESTAPI] 	UNSOLICITED MESSAGE: "CORE | Rest API running on Port 5010"
> 14:08:20.471 [info] PLGMANAGER [RESTAPI] 	"CORE | HTTPS Rest API not started -> Disabled in plugin config"
> 14:08:20.472 [info] PLGMANAGER [RESTAPI] 	UNSOLICITED MESSAGE: "CORE | HTTPS Rest API not started -> Disabled in plugin config"

Für mich sieht das im Docker Container gut aus…

Leider keinen Erfolg nach der Umstellung auf HTTP & Bearbeitung Router…

Hallo Dazza,

das https habe ich im Plugin entfernt.

Beim Subpath api hatte ich den / nur mal testweise entfernt, aber beim Bild noch nicht wieder hinzugefügt. Jetzt ist wieder alles wie es muss. Hilft aber trotzdem nicht.

Hat jemand noch andere Ideen? Das Problem ist immer noch nicht behoben.

Hallo schau mal hier, ob mein letzter Lösungsvorschlag geht.

Viele Grüße