intri-in / manage-my-damn-life-nextjs

Manage My Damn Life (MMDL) is a self-hosted front end for managing your CalDAV tasks and calendars.
https://intri.in/manage-my-damn-life/
GNU General Public License v3.0
192 stars 8 forks source link

Calendar entries from Baikal dont show up when using Reverse Proxy #173

Open simonl169 opened 6 months ago

simonl169 commented 6 months ago

Hi!

I am using MMDL together with Baikal as CalDav. I encountered a strange issue where the entries form Baikal dont show up in the Calendar when I acces MMDL via Nginx Proxy Managaer Reverse Proxy. If I access the container directly via IP and Port, it works flawlessly. However, I can still create new entries which then show up on my second client (iPhone Standard Calendar App). Maybe this is more of a problem with the Reverse Proxy, but dunno

Here some more Infos: Baikal on Docker, via Reverse Proxy MMDL on Docker, via Reverse Proxy Nginx Proxy Manager as Reverse Proxy .well-knonw Redirects etc are set for Baikal on NPM, works fine with iPhone and Android Using MariaDB as Database since I couldnt get mysql running

intri-in commented 6 months ago

This sounds like an issue with the reverse proxy configuration.

It's weird that you can make write requests, but not read requests.

When accessing through the Nginx proxy, can MMDL find your calendars?

Maybe the fetch request is being blocked at the proxy end? Can you check the logs of NPM and see if MMDL makes a request and what status code you find?

Also, when you add your Baikal account to MMDL, instead of using "http://yourdomain.example.com/" in Caldav server Url field, try using "http://yourdomain.example.com/dav.php" as the URL, and see if the issue resolves.

simonl169 commented 6 months ago

When accessing through the Nginx proxy, can MMDL find your calendars?

Yes, I can find the calendars and even set it up as a new account

Maybe the fetch request is being blocked at the proxy end? Can you check the logs of NPM and see if MMDL makes a request and what status code you find?

Working on that

Also, when you add your Baikal account to MMDL, instead of using "http://yourdomain.example.com/" in Caldav server Url field, try using "http://yourdomain.example.com/dav.php" as the URL, and see if the issue resolves.

Yes, I am already using this, the other option would not work

simonl169 commented 6 months ago

[06/May/2024:21:12:23 +0200] - 207 207 - PROPFIND https yourdomain.com "/dav.php/principals/User1/" [Client 192.168.176.1] [Length 464] [Gzip -] [Sent-to 192.168.42.107] "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" "-" [06/May/2024:21:12:23 +0200] - 207 207 - PROPFIND https yourdomain.com "/dav.php/calendars/User1/" [Client 192.168.176.1] [Length 3149] [Gzip -] [Sent-to 192.168.42.107] "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" "-" [06/May/2024:21:12:23 +0200] - 207 207 - PROPFIND https yourdomain.com "/dav.php/calendars/User1/default/" [Client 192.168.176.1] [Length 1118] [Gzip -] [Sent-to 192.168.42.107] "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" "-" [06/May/2024:21:12:23 +0200] - 207 207 - PROPFIND https yourdomain.com "/dav.php/calendars/User1/NewCalendar/" [Client 192.168.176.1] [Length 1117] [Gzip -] [Sent-to 192.168.42.107] "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" "-"

This is the log after I click "Sync" in the menu, does seem okay

intri-in commented 6 months ago

Interesting. The PROPFIND requests are there, but there are no REPORT requests for the actual objects (events/tasks).

I will investigate this, meanwhile perhaps you can try MMDL with the IP address directly.

simonl169 commented 6 months ago

Just for completeness, here is my docker-compose.yml

volumes:
  data:
networks:
  app-tier:
services:
  app:
    image: intriin/mmdl:latest
    ports:
      - 9300:3000
    depends_on:
      - db 
    restart: always
    networks:
      - app-tier  
    environment:
      DB_HOST: db
      DB_USER: user
      DB_PASS: password
      DB_PORT: 3306
      DB_NAME: sample_install_mmdm
      DB_CHARSET: "utf8mb4"
      DB_COLLATE: "utf8mb4_0900_ai_ci"
      AES_PASSWORD: PASSWORD

  db:
    image: mariadb
    networks:
      - app-tier  
    volumes:
      - data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: sample_install_mmdm
      MYSQL_USER: user
      MYSQL_PASSWORD: password
    ports:
      - "3306:3306"