2.21. Reverse Proxy Setup

A reverse proxy allows you to “pass” requests through your web server to another site or program. The reverse proxy will make it look like Syncthing’s GUI is a page within your existing site.

This is especially useful if:

  • You need to access the GUI on port 80 or 443 but you already host a website on the same device.
  • You want to share SSL certificates with an existing site.
  • You want to share authentication with an existing setup.

2.21.1. Server Configuration

If you have access to your web server’s configuration use the following examples to pass the location /syncthing on your web server to Syncthing’s GUI hosted on localhost:8384.


ProxyPass /syncthing/ http://localhost:8384/
<Location /syncthing/>
    ProxyPassReverse http://localhost:8384/
    Require all granted


location /syncthing/ {
  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_pass              http://localhost:8384/;

  proxy_read_timeout      600s;
  proxy_send_timeout      600s;


proxy /syncthing localhost:8384 {

timeouts {
    read none
    write none
    header none

2.21.2. Folder Configuration

If you don’t have access to your web server configuration files you might try the following technique.


Add the configuration below to a .htaccess file in the folder of your webroot which should redirect to the WebUI, /syncthing to produce the same behaviour as above

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{ENV:HTTPS} !=on
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
RewriteRule ^(.*) http://localhost:8384/$1 [P]

This method also redirects to HTTPS to prevent opening the GUI unencrypted.