PWA, Sync Mode, Apache or Nginx reverse proxy

Some time ago, sync mode stopped working on my (Android) mobile (Firefox, Vivaldi). It syncs but the content is not available offline.

In many case when something is not working as it should, I learned, it is a good idea to have a look at the reverse proxy. And often I run into trouble because I am one of the few who are still using Apache.

So my question: Is thsi basic reverse proxy ok? What should be changed? Or could you provide a Nginx reverse proxy? I could move Silverbullet to another server where Nginx is running. I have no experience with Caddy (the SB manual mentions Caddy only).

I suppose this is too basic? Thanks a lot?

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName silverbullet.myserver.com
    AllowEncodedSlashes On
    ProxyPreserveHost On
    ProxyPass "/"  "http://localhost:8300/"


SSLCertificateFile /etc/letsencrypt/live/silverbullet.myserver.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/silverbullet.myserver.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

This is my Nginx Proxy Manager setup for SilverBullet, however, please keep in mind that I also use Authelia for authentication.

Also please note the places that need to be edited
AUTHELIAURL:PORT
SBURL:PORT
auth.MYDOMAIN.com

location /authelia {
    internal;
    set $upstream_authelia http://AUTHELIAURL:PORT/api/verify; #ADD YOUR IP AND PORT OF AUTHELIA
    proxy_pass_request_body off;
    proxy_pass $upstream_authelia;
    proxy_set_header Content-Length "";

    # Timeout if the real server is dead
    proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
    client_body_buffer_size 128k;
    proxy_set_header Host $host;
    proxy_set_header X-Original-URL $scheme://$http_host$request_uri;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr; 
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Host $http_host;
    proxy_set_header X-Forwarded-Uri $request_uri;
    proxy_set_header X-Forwarded-Ssl on;
    proxy_redirect  http://  $scheme://;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    proxy_cache_bypass $cookie_session;
    proxy_no_cache $cookie_session;
    proxy_buffers 4 32k;

    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Methods *;
    add_header Access-Control-Allow-Headers x-sync-mode;

    send_timeout 5m;
    proxy_read_timeout 240;
    proxy_send_timeout 240;
    proxy_connect_timeout 240;
}

    location / {
        set $upstream_silverbullet http://SBURL:PORT;  #ADD IP AND PORT OF SERVICE
        proxy_pass $upstream_silverbullet;  #change name of the service

        auth_request /authelia;
        auth_request_set $target_url $scheme://$http_host$request_uri;
        auth_request_set $user $upstream_http_remote_user;
        auth_request_set $groups $upstream_http_remote_groups;
        proxy_set_header Remote-User $user;
        proxy_set_header Remote-Groups $groups;
        error_page 401 =302 https://auth.MYDOMAIN.com/?rd=$target_url;

        client_body_buffer_size 128k;

        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;

        send_timeout 5m;
        proxy_read_timeout 360;
        proxy_send_timeout 360;
        proxy_connect_timeout 360;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header X-Forwarded-Uri $request_uri;
        proxy_set_header X-Forwarded-Ssl on;
        proxy_redirect  http://  $scheme://;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_cache_bypass $cookie_session;
        proxy_no_cache $cookie_session;
        proxy_buffers 64 256k;

        # add your ip range here, and remove this comment!
        set_real_ip_from 192.168.0.0/16;
        real_ip_header X-Forwarded-For;
        real_ip_recursive on;
    }
1 Like

Thanks a lot @paletochen for your help! It did not make a difference, so it might not be related to the proxy.

Do you know if there is something else to do before the content is available offline. I can continue browsing SB when Airplane mode is turned on, but when I close the browser and restart it, then I only see a blank page when I start the PWA (just the top menu visible)

I guess you’ll have to change your setup to Synced mode

I am using sync mode. Weird, but not the biggest problem either!