HandySync freigegebener Kalender funktioniert nicht

Hallo ihr Lieben,
ich habe folgendes Problem: wenn ich mit meinem Handy einen Termin erstelle, wird dieser grundsätzlich über OpenSync auch synchronisiert. Sie werden mir also in meinem Kalender angezeigt. Leider tauchen diese Termine NUR in meinem Kalender auf und werden nicht in den Kalendern der Personen angezeigt, die Freigaben für diese Kalender haben. In diesen Konten wird der freigegebene Kalender grundsätzlich angezeigt, nur fehlen eben diese Termine …

Als Fehlermeldungen werden mir nur die zwei angezeigt, die ich nach dem Update auf Nextcloud 21.0.3 nicht wegbekommen habe:

  • Dein Web-Server ist nicht richtig eingerichtet um “/.well-known/webfinger” aufzulösen. Weitere Informationen findest Du in der Dokumentation.
  • Dein Web-Server ist nicht richtig eingerichtet um “/.well-known/nodeinfo” aufzulösen. Weitere Informationen findest Du in der Dokumentation.

System:
Ubuntu 18.04.5 LTS
Apache 2.4.29
PHP 8.0.8
Nextcloud 21.0.3

Hallo @CPs

OpenSync scheint ein Fork von DAVx5 zu sein und wurde seit 2017! nicht mehr aktualisiert. Warum nicht das Original nehmen?

https://play.google.com/store/apps/details?id=at.bitfire.davdroid

Um die beiden Fehlermeldungen wegzukriegen, müsstest du schauen, dass .htaccess aktiv ist in deiner Apache config…

https://help.nextcloud.com/t/securty-and-setup-warns/120317/4?u=bb77

Vielen Dank für die Infos
der Eintrag AllowOverride All ist sowohl in der apache-config als auch in vhost gesetzt … daher weiß ich bei den Fehlern nicht mehr, was ich noch machen soll …

Und auch mit der Synchronisation über DAVx5 besteht das Problem leider weiter … ich wüsste auch nicht, wo ich dazu nähere Infos bekommen sollte, da ich nicht genau weiß, wie die Freigabe von Kalendern funktioniert …

Dann bin ich ehrlich gesagt auch etwas überfragt. Allenfalls kannst du ja mal deinen vhost und den Inhalt der .htaccess Datei hier posten…

Zum Kalender Problem… (könnte mit dem ersten Problem zusammenhängen, bin ich aber nicht 100% sicher)

Werden sie auch nicht. Deine freigegebenen Kalender inkl. der darin enthaltenen Termine sollten der Person angezeigt werden. Ich neheme aber an, dass du das so gemeint hast, wenn ich deinen nächsten Satz lese…

Möglich Erklärung siehe weiter unten…

Grundsätzlich funktioniert es so, dass wenn du einen Kalender mit jemandem teilst, ihn diese Person in der Seitenleiste im WebUI der Nextcloud Kalender App sehen müsste. Die Person mit der, dieser Kalender geteilt ist, kann aber deine Termine auch ausblenden, und zwar in dem sie auf deinen Namen bzw. auf den Kalendernamen in der Seitenleiste klickt. Das gilt dann aber nur für den jeweiligen Client, sprich in diesem Fall die Nextcloud Kalender App.

Möchte diese Person deinen Kalender auch auf dem Handy sehen, muss sie ebenfalls DAVx5 oder OpenSync installiert haben und deinen Kalender dort anwählen, damit er synchronisiert wird. Und jenachdem was für eine Kalender App diese Person auf dem Handy verwendet, kann auch dort wiederum der Kalender ein- bzw ausgeblendet werden.

Ok, ich hoffe wir finden noch eine Lösung für das Kalenderproblem … dazu weiter hier einmal ein paar Bilder:
So sieht es bei mir, der ich den Kalender freigebe aus:
sharer

und so in dem Account, dem der Kalender freigegeben wird:
shared

Hier wird der Termin leider nicht angezeigt, wenn ich einen Termin aber manuell auf der webUI erstelle, wird er eben angezeigt …

ich bin völlig ratlos und leider führen eben solche Fehler dazu dass ich dann eben doch am Produkt zweifle - denn gerade so etwas wichtiges wie Kalender-Funktionen sollten doch funktionieren… kann da jemand helfen? …

Ansonsten hier einmal die htaccess-Datei:

# Generated by Nextcloud on 2021-07-12 22:45:20
# Section for Apache 2.4 to 2.6
<IfModule mod_authz_core.c>
  Require all denied
</IfModule>
<IfModule mod_access_compat.c>
  Order Allow,Deny
  Deny from all
  Satisfy All
</IfModule>

# Section for Apache 2.2
<IfModule !mod_authz_core.c>
  <IfModule !mod_access_compat.c>
    <IfModule mod_authz_host.c>
      Order Allow,Deny
      Deny from all
    </IfModule>
    Satisfy All
  </IfModule>
</IfModule>

# Section for Apache 2.2 to 2.6
<IfModule mod_autoindex.c>
  IndexIgnore *
</IfModule>

und die VHost-Konfig:

<VirtualHost _default_:443>
<Directory /var/www/NC/>
  Options +FollowSymlinks
  AllowOverride All

 <IfModule mod_dav.c>
  Dav on
 </IfModule>

 SetEnv HOME /var/www/NC
 SetEnv HTTP_HOME /var/www/NC

</Directory>
 <IfModule mod_headers.c>
     Header always set Strict-Transport-Security "max-age=15768000; preload"
     Header always set Referrer-Policy no-referrer
     Redirect 301 /.well-known/carddav /NC/remote.php/dav
     Redirect 301 /.well-known/caldav /NC/remote.php/dav
     Redirect 301 /.well-known/webfinger /nextcloud/index.php/.well-known/webfinger
     Redirect 301 /.well-known/nodeinfo /nextcloud/index.php/.well-known/nodeinfo
</IfModule>

     SSLEngine on

     ServerName SN.de
     SSLCertificateFile /etc/letsencrypt/live/SN.de/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/SN.de/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>

#<VirtualHost *:80>
#   RewriteEngine On
#   RewriteCond %{HTTPS} off
#   RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
#</VirtualHost>

<VirtualHost _default_:80>
ServerName SN.de

ServerSignature Off

RewriteEngine On
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

ErrorLog /var/log/apache2/redirect.error.log
LogLevel warn
</VirtualHost>

…nur in der WebUI oder dann auch auf dem Handy?

Wird denn der Kalender in der App DAVx5 auf dem Handy aufgelistest. Und ist der Haken gesetzt, sprich der Kalender für die Synchronisierung aktiviert. Wie sehen die anderen Optionen in der App aus? Speziell die Synchronisierungsoptionen. z.B. “nur über WLAN synchen” und die “Häufigkeit der Kalendersynchronisierung”.

Ist wenn du einen neuen Termin auf dem Handy erstellst auch wirklich der “gemeinsame Kalender” auf der Nextcloud ausgewählt oder wird der Termin evtl. in einen lokalen Kalender auf dem Handy gespeichert?

Dann wird der Termin sowohl auf dem Handy als auch auf der WebUI des Benutzers angezeigt…

Ja, der Kalender ist angehackt, wird angezeigt, ich nutze auch wirklich den Kalender zum erstellen des Termins und die Synchronisierung sroße ich bei meinen versuchen immer manuell an, auch wenn die Auto-Synch-Funktion nicht auf W-LAN Verbindungen beschränkt sind und Termine stündlich synchronisiert werden … in den wesentlichen Zügen funktioniert das ja auch, ICH sehe den Termin ja in MEINEM Kalender nur eben meine Partnerin, der ich den Kalender freigegeben habe eben leider nicht …

Leider weiss ich auch nicht mehr weiter…Ich kann dir nur raten nochmal systematisch alles von A-Z durchzutesten, um dann herauszufinden wo genau es hakt. Grundsätzlich sind folgende Komponenten involviert:

  • CalDAV Server

  • Freigegebener Kalender von Benutzerin 1

  • Webclient Benutzerin 1

  • Webclient Benutzerin 2

  • DAVx5 Benutzerin 1

  • DAVx5 Benutzerin 2

  • Kalender App auf Handy Benutzerin 1

  • Kalender App auf Handy von Benutzerin 2

Ich tippe darauf, dass es irgendwo auf der Seite von Benutzerin 2 hakt. Ich nehme dabei einfach mal an, dass du Benutzerin 2 volle Berechtigungen erteilt hast auf diesen Kalender.

Zu deiner Apache vhost Config kann ich nur sagen, dass ich folgende Zeilen bei mir nicht drinn habe…

Redirect 301 /.well-known/carddav /NC/remote.php/dav
Redirect 301 /.well-known/caldav /NC/remote.php/dav
Redirect 301 /.well-known/webfinger /nextcloud/index.php/.well-known/webfinger
Redirect 301 /.well-known/nodeinfo /nextcloud/index.php/.well-known/nodeinfo

Die .htaccess sieht bei mir folgendermasen aus:

<IfModule mod_headers.c>
  <IfModule mod_setenvif.c>
    <IfModule mod_fcgid.c>
       SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
       RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
    </IfModule>
    <IfModule mod_proxy_fcgi.c>
       SetEnvIfNoCase Authorization "(.+)" HTTP_AUTHORIZATION=$1
    </IfModule>
  </IfModule>

  <IfModule mod_env.c>
    # Add security and privacy related headers

    # Avoid doubled headers by unsetting headers in "onsuccess" table,
    # then add headers to "always" table: https://github.com/nextcloud/server/pull/19002
    Header onsuccess unset Referrer-Policy
    Header always set Referrer-Policy "no-referrer"

    Header onsuccess unset X-Content-Type-Options
    Header always set X-Content-Type-Options "nosniff"

    Header onsuccess unset X-Download-Options
    Header always set X-Download-Options "noopen"

    Header onsuccess unset X-Frame-Options
    Header always set X-Frame-Options "SAMEORIGIN"

    Header onsuccess unset X-Permitted-Cross-Domain-Policies
    Header always set X-Permitted-Cross-Domain-Policies "none"

    Header onsuccess unset X-Robots-Tag
    Header always set X-Robots-Tag "none"

    Header onsuccess unset X-XSS-Protection
    Header always set X-XSS-Protection "1; mode=block"

    SetEnv modHeadersAvailable true
  </IfModule>

# Add cache control for static resources
  <FilesMatch "\.(css|js|svg|gif)$">
    Header set Cache-Control "max-age=15778463"
  </FilesMatch>

  # Let browsers cache WOFF files for a week
  <FilesMatch "\.woff2?$">
    Header set Cache-Control "max-age=604800"
  </FilesMatch>
</IfModule>
<IfModule mod_php7.c>
  php_value mbstring.func_overload 0
  php_value default_charset 'UTF-8'
  php_value output_buffering 0
  <IfModule mod_env.c>
    SetEnv htaccessWorking true
  </IfModule>
</IfModule>
<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{HTTP_USER_AGENT} DavClnt
  RewriteRule ^$ /remote.php/webdav/ [L,R=302]
  RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
  RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L]
  RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L]
  RewriteRule ^remote/(.*) remote.php [QSA,L]
  RewriteRule ^(?:build|tests|config|lib|3rdparty|templates)/.* - [R=404,L]
  RewriteRule ^\.well-known/(?!acme-challenge|pki-validation) /index.php [QSA,L]
  RewriteRule ^(?:\.(?!well-known)|autotest|occ|issue|indie|db_|console).* - [R=404,L]
</IfModule>
<IfModule mod_mime.c>
  AddType image/svg+xml svg svgz
  AddEncoding gzip svgz
</IfModule>
<IfModule mod_dir.c>
  DirectoryIndex index.php index.html
</IfModule>
AddDefaultCharset utf-8
Options -Indexes
<IfModule pagespeed_module>
  ModPagespeed Off
</IfModule>
#### DO NOT CHANGE ANYTHING ABOVE THIS LINE ####

ErrorDocument 403 //
ErrorDocument 404 //
<IfModule mod_rewrite.c>
  Options -MultiViews
  RewriteRule ^core/js/oc.js$ index.php [PT,E=PATH_INFO:$1]
  RewriteRule ^core/preview.png$ index.php [PT,E=PATH_INFO:$1]
  RewriteCond %{REQUEST_FILENAME} !\.(css|js|svg|gif|png|html|ttf|woff2?|ico|jpg|jpeg|map|webm|mp4|mp3|ogg|wav)$
  RewriteCond %{REQUEST_FILENAME} !core/img/favicon.ico$
  RewriteCond %{REQUEST_FILENAME} !core/img/manifest.json$
  RewriteCond %{REQUEST_FILENAME} !/remote.php
  RewriteCond %{REQUEST_FILENAME} !/public.php
  RewriteCond %{REQUEST_FILENAME} !/cron.php
  RewriteCond %{REQUEST_FILENAME} !/core/ajax/update.php
  RewriteCond %{REQUEST_FILENAME} !/status.php
  RewriteCond %{REQUEST_FILENAME} !/ocs/v1.php
  RewriteCond %{REQUEST_FILENAME} !/ocs/v2.php
  RewriteCond %{REQUEST_FILENAME} !/robots.txt
  RewriteCond %{REQUEST_FILENAME} !/updater/
  RewriteCond %{REQUEST_FILENAME} !/ocs-provider/
  RewriteCond %{REQUEST_FILENAME} !/ocm-provider/
  RewriteCond %{REQUEST_URI} !^/\.well-known/(acme-challenge|pki-validation)/.*
  RewriteCond %{REQUEST_FILENAME} !/richdocumentscode(_arm64)?/proxy.php$
  RewriteRule . index.php [PT,E=PATH_INFO:$1]
  RewriteBase /
  <IfModule mod_env.c>
    SetEnv front_controller_active true
    <IfModule mod_dir.c>
      DirectorySlash off
    </IfModule>
  </IfModule>
</IfModule>