Read the statement by Michael Teeuw here.
MMM-Caldav not listening on port 8080
-
@peterpan894 the local calendar should be
http://localhost:8080/CALDAV/calname.ics
you have
https://localhost:8080/CALDAV/calname.ics
note the httpS
-
@peterpan894
You can test whether iCAL is serving or not by yourself.- Execute MM
- In the same client ,
open the browser then navigate to this.
http://localhost:8080/CALDAV/calname.ics
-
@sdetweil
He seems to sethttp
scheme properly in the config he posted.symbol: "calendar-check", url: "http://localhost:8080/DAVCAL/calname.ics",
Maybe a
ipWhitelist
setup could be the issue. -
@MMRIZE but the error says
Could not fetch calendar: https://localhost:8080/CALDAV/calname.ics
so at least that config used https
-
the https was a typo. The ipWhitelist looks like
ipWhitelist: []
that should be fine. I do not have a desktop on the rpi so checking on the same client is not possible.
Must there not be a listener on port 8080? In my case there is none. I have also no idea how to debug, even with all logs on, there is no aditional information except for:
[13.11.2023 22:19.31.680] [ERROR] Calendar Error. Could not fetch calendar: http://localhost:8080/CALDAV/wielens.ics TypeError: fetch failed at Object.fetch (node:internal/deps/undici/undici:11372:11) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) { cause: Error: connect ECONNREFUSED 127.0.0.1:8080 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1555:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 8080 } }
I tried with Curl:
curl -v http://localhost:8080/CALDAV/calname.ics Trying 127.0.0.1:8080... connect to 127.0.0.1 port 8080 failed: Connection refused Failed to connect to localhost port 8080: Connection refused Closing connection 0 curl: (7) Failed to connect to localhost port 8080: Connection refused
The only thing which can be the cause is that i run
npm run server
can someone check on a working system if there is a listener on port 8080? I can only excecute the server as i have a headless system
Thanks
-
@peterpan894
Could you post this to issue board or discussion of GitHub repository? I should look inside with focus. And maybe needs to talk more closely. -
@peterpan894 said in MMM-Caldav not listening on port 8080:
The only thing which can be the cause is that i run
npm run server
can someone check on a working system if there is a listener on port 8080? I can only excecute the server as i have a headless system
Ah, you may run the server and client on different devices.
“localhost” points a device-self, so “localhost” in client will be different from that of server.
Use IP address of server instead of “localhost” -
I tried 127.0.0.1, 192.168.x.x, same result. The curl was excecuted on the same machine the MM server was running
-
@MMRIZE if the node_helper depends on info sent down from the modulename.js, then it will not happem as that runs in a browser…
so @peterpan894 one thing to try is to open the MM server in a browser
then see if the port is open -
if the node_helper depends on info sent down from the modulename.js, then it will not happem as that runs in a browser…
The part serving iCal is a pure express logic without any configuration value. It just serve URL from static files on start of node_helper. So ideally, it should be served regardless of the front client.
This image shows that I tried serveronly mode, then try to accessCompany.ics
which is not even fetched in this execution before any client is launched. (The iCal file was fetched in the previous execution)
And showing it hit the access but failed due to no auth. (So that’s why the browser show auth dialog box)With
curl
(anyway,-v
option is not enough to access this served ical. You should use-u
option.) It should have 401 error withou auth info.~ % curl -v http://localhost:8080/CALDAV/Company.ics * Trying 127.0.0.1:8080... * connect to 127.0.0.1 port 8080 failed: Connection refused * Trying [::1]:8080... * Connected to localhost (::1) port 8080 (#0) > GET /CALDAV/Company.ics HTTP/1.1 > Host: localhost:8080 > User-Agent: curl/8.1.2 > Accept: */* > < HTTP/1.1 401 Unauthorized < Access-Control-Allow-Origin: * < Referrer-Policy: no-referrer < Strict-Transport-Security: max-age=15552000; includeSubDomains < X-Content-Type-Options: nosniff < X-DNS-Prefetch-Control: off < X-Download-Options: noopen < X-Frame-Options: SAMEORIGIN < X-Permitted-Cross-Domain-Policies: none < X-XSS-Protection: 0 < WWW-Authenticate: Basic realm="MMM-CalDAV Service" < Date: Mon, 13 Nov 2023 23:07:36 GMT < Connection: keep-alive < Keep-Alive: timeout=5 < Content-Length: 0 < * Connection #0 to host localhost left intact
So with
-u
options;~ % curl -u "username1:password1" http://localhost:8080/CALDAV/Company.ics BEGIN:VCALENDAR BEGIN:VEVENT DTSTART;TZID=Europe/Berlin:20230919T100000 DTEND;TZID=Europe/Berlin:20230919T110000 DTSTAMP:20230830T065013Z UID:-@google.com CREATED:20230830T065013Z DESCRIPTION: LAST-MODIFIED:20230830T065013Z LOCATION: SEQUENCE:0 STATUS:CONFIRMED SUMMARY:- TRANSP:OPAQUE END:VEVENT BEGIN:VEVENT ...
So it works for me.
Ok. Let’s check from the beginning. Is Your MM server served on port 8080? Can you open MM frontend on browser with
http://localhost:8080
?
Your symptom is very weird because;
If MM is served normally, this module SHOULD work. It usesexpress
delivered from MM itself, not individually installed. So if this module’s express has a problem, MM should have the same problem. (I found unusedrequire
in the source :D. Anyway due to that, I can confirm I’m using MM’s express not individual one.)