A nearly working apache config for Meet



  • Hi,

    i want to post here my apache config for meet, for all that want to use apache instead of kwebd or nginx. It should be complete.

      # Kopano API
      ProxyPass /api/gc/ http://localhost:8039/api/gc/ retry=0
    
      RewriteCond %{HTTP:Connection} Upgrade [NC]
      RewriteCond %{HTTP:Upgrade} websocket [NC]
      RewriteRule /api/pubs/(.*) ws://localhost:8039/api/pubs/$1 [P,L]
      ProxyPass /api/pubs/ http://localhost:8039/api/pubs/ retry=0
    
      # Kopano Konnect
      ProxyPass /.well-known/openid-configuration http://localhost:8777/.well-known/openid-configuration retry=0
      ProxyPass /konnect/v1/jwks.json http://localhost:8777/konnect/v1/jwks.json retry=0
      ProxyPass /konnect/v1/token http://localhost:8777/konnect/v1/token retry=0
      ProxyPass /konnect/v1/userinfo http://localhost:8777/konnect/v1/userinfo retry=0
      ProxyPass /konnect/v1/static http://localhost:8777/konnect/v1/static retry=0
      ProxyPass /konnect/v1/session http://localhost:8777//konnect/v1/session retry=0
    
      # Kopano Konnect login area
      ProxyPass /signin/ http://localhost:8777/signin/ retry=0
    
      # Kopano Meet
      <Directory /usr/share/kopano-meet>
        Options Indexes FollowSymLinks MultiViews
        Order allow,deny
        Allow from all
        Require all granted
    
        <IfModule mod_expires.c>
          <FilesMatch "service-worker.js$">
            ExpiresActive Off
            Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform"
            Header set Pragma "no-cache"
          </FilesMatch>
        </IfModule>
      </Directory>
    
      RewriteRule ^/meet/r/(.*)$ /meet [NC]
      Alias /meet /usr/share/kopano-meet/meet-webapp
      Alias /api/config/v1/kopano/meet/config.json /usr/share/kopano-meet/config/kopano/meet.json
    
      RewriteCond %{HTTP:Connection} Upgrade [NC]
      RewriteCond %{HTTP:Upgrade} websocket [NC]
      RewriteRule /api/v1/websocket/(.*) ws://localhost:8778/api/v1/websocket/$1 [P,L]
      ProxyPass /api/v1/websocket/ http://localhost:8778/api/v1/websocket/ retry=0
    
      Proxypass /api/v1/rtm.connect http://localhost:8778/api/v1/rtm.connect retry=0
      Proxypass /api/v1/rtm.turn http://localhost:8778/api/v1/rtm.turn retry=0
    
      RewriteCond %{HTTP:Connection} Upgrade [NC]
      RewriteCond %{HTTP:Upgrade} websocket [NC]
      RewriteRule /api/kwm/v2/(.*) ws://localhost:8778/api/kwm/v2/$1 [P,L]
      ProxyPass /api/kwm/v2/ http://localhost:8778/api/kwm/v2/ retry=0
    
      RewriteCond %{HTTP:Connection} Upgrade [NC]
      RewriteCond %{HTTP:Upgrade} websocket [NC]
      RewriteRule /api/kvs/v1/(.*) ws://localhost:8039/api/kvs/v1/$1 [P,L]
      ProxyPass /api/kvs/v1/ http://localhost:8039/api/kvs/v1/ retry=0
    

    With this config there is 1 issue left: the contact list is not updated. I got no errors in the
    apache log-file. Could that be an caching problem ?

    many greetings to the kopano team for their excellent work
    Michael


  • Kopano

    This config seems a bit strange.

    1. You are mixing ProxyPass and RewriteRule - i would suggest to only use RewriteRule to simplify things
    2. All rules from your config starting with /api/v1/ are obsolete and not used by any reasonably recent Meet version
    3. /api/pubs is not used by Meet
    4. Lots of ProxyPass rules for Kopano Konnect, could be replaced by a single RewriteRule.
    5. Conditional around mandatory caching headers for service-worker.js, remove the condition

    Contacts not updating is not a caching problem. Check all your logs. Contacts might also be empty or only appear on search based on the backend and the number of people in the global addressbook.



  • ok, i delete all Proxy-Pass rules where i have an Rewriterule, but i need to have
    ProxyPass /api/kwm/v2/ http://localhost:8778/api/kwm/v2/ retry=0

    Without that rule it does not work.

    if found /api/v1 and /api/pubs in the sources of kwebd, so i thougth we need them.

    so, here is the simplified version:

      # Kopano API
      ProxyPass /api/gc/ http://localhost:8039/api/gc/ retry=0
    
      # Kopano Konnect
      ProxyPass /.well-known/openid-configuration http://localhost:8777/.well-known/openid-configuration retry=0
      RewriteRule /konnect/v1/(.*) http://localhost:8777/konnect/v1/$1 [P,L]
    
      # Kopano Konnect login area
      ProxyPass /signin/ http://localhost:8777/signin/ retry=0
    
      # Kopano Meet
      <Directory /usr/share/kopano-meet>
        Options Indexes FollowSymLinks MultiViews
        Order allow,deny
        Allow from all
        Require all granted
    
        <IfModule mod_expires.c>
          <FilesMatch "service-worker.js$">
            ExpiresActive Off
          </FilesMatch>
        </IfModule>
      </Directory>
    
      RewriteRule ^/meet/r/(.*)$ /meet [NC]
      Alias /meet /usr/share/kopano-meet/meet-webapp
      Alias /api/config/v1/kopano/meet/config.json /usr/share/kopano-meet/config/kopano/meet.json
    
      RewriteCond %{HTTP:Connection} Upgrade [NC]
      RewriteCond %{HTTP:Upgrade} websocket [NC]
      RewriteRule /api/kwm/v2/(.*) ws://localhost:8778/api/kwm/v2/$1 [P,L]
      ProxyPass /api/kwm/v2/ http://localhost:8778/api/kwm/v2/ retry=0
    
      RewriteCond %{HTTP:Connection} Upgrade [NC]
      RewriteCond %{HTTP:Upgrade} websocket [NC]
      RewriteRule /api/kvs/v1/(.*) ws://localhost:8039/api/kvs/v1/$1 [P,L]
    

    About my GAB-Problem, it seem’s that it have nothing to do with the webserver, with kwebd i
    also does not see new users in contacts. The same if i delete an user. He is still seen in the contacts.



  • @longsleep

    I still have problem’s with the contacts under apache. There are no error’s in the logs.
    It work’s with kwebd.

    I can now test it in the following way with Firefox under LInux:

    • first, clean up the .mozilla directory
    • then logon in to meet with an account --> all GAB entries are shown correctly
    • logout from meet
    • delete or add an account in the GAB
    • login again into meet --> the new created or deleted account is not shown in contact (with apache)

    if i do the same with kwebd it work’s.

    I found 1 difference in the kwebd-request log against the access.log from apache.
    With kwebd the Urls

    /api/gc/v1/users?$top=1&$skip=100&$select=id HTTP/2.0"
    /api/gc/v1/users?$top=100&$skip=0
    

    are called after every login. If i use acpache these URL’s are only called after the first login.

    Do you have an idea, why that happens ?

    best regards
    Michael


  • Kopano

    @mniehren said in A nearly working apache config for Meet:

    Mhm i have no idea whats wrong with your Apache. Look at the requests in detail (in the browsers web console). At the start of meet, two requests to the users endpoints are made. First one with top=1&skip=100 and then based on the result the next one to fetch the first 100 users with top=100&skip=0.


Log in to reply