Having a Devil of a Time Getting Baserow Running Behind NGINX Proxy Manager

Hello Baserow Community! I’m really excited about self hosting Baserow, but boy, am I having a hard time getting it up and running on my server behind NGINX Proxy Manager.

I have an instance of Baserow running in docker on a vps. That instance is not running behind NGINX proxy manager, and I got that up and running using the quick start run command so I could test Baserow and see if it would meet my needs (it does!!)

However, trying to get Baserow up and running on my production server is proving incredibly difficult for me. I’m pretty sure my problem is entirely proxy/networking related. I can get Baserow up and running using the provided documentation, and I can get the web frontend to load when doing so, but when I create an account and log in to Baserow, I immediately get “can’t connect to server” error message.

That message sits and spins for awhile before timing out, and then when I refresh the page I get a 502 error.

I found this topic, which I thought would be my answer, but I was unable to implement that solution and have it work for me.

I currently have no configuration. I’ve tried a whole bunch of setups and I keep taking them down and starting over. So at this point, I don’t have anything actually up and running, but I would love some guidance on getting it running.

Thank you for making Baserow, it’s awesome, and thank you in advance for the help!

1 Like

Hey buddy,

I spotted that you asked this during the AMA and thought I would sign up here, If you have any questions on the reply I sent on Reddit let me know :+1:

2 Likes

Hey!

Firstly, thank you again for helping me. I really appreciate it.

Second, the next thing I want to get up and running is n8n! It’s a really exciting thing you’re working on!!!

So, I tried to get it running, and ran into the same “reconnecting to server” issue. Here’s how I spun it up.

The following is the contents of my Docker compose:

version: “3.4”
services:
baserow:
container_name: baserow
image: baserow/baserow:1.11.0
environment:
BASEROW_PUBLIC_URL: ‘https://baserow.mydomain.com
WEB_FRONTEND_PORT: 8097
ports:
- “8097:80”
volumes:
- baserow_data:/home/machine/server/baserow/data
volumes:
baserow_data:

My docker network is 172.17.0.x

That’s the bridge network, and is the ip I have used successfully in my other NGINX Proxy Manager proxy host configs.

My NGINX Proxy Manager network is 172.18.0.x

I think I interpreted your setup correctly and set up the NGINX Proxy Host config as follows:

Domain Name: baserow.mydomain.com

Scheme: http

Forward Hostname: 172.17.0.1

Forward Port: 8097

Block Common Exploits and Websockets enabled.

SSL: Force SSL enabled with a Let’s Encrypt cert

Doing this, I am able to load up Baserow at my domain, and create an account. But then I immediately get the “reconnecting to server” message which eventually fails.

If I reload the page, I get the same thing, and if I try accessing the domain from any other device, when I try to log in, I get the “cannot connect to api server” error.

Hey @weslc13a1adf6sdfb,

I have it working with what you are using although I have made some changes to your compose file.

version: "3.4"
services:
  baserow:
    container_name: baserow
    image: baserow/baserow:1.11.0
    environment:
      BASEROW_PUBLIC_URL: 'https://baserow.tools.mydomain.com'
      WEB_FRONTEND_PORT: 443
    ports:
      - "8097:80"
    volumes:
      - baserow_data:/baserow/data
volumes:
  baserow_data:

The changes here are I have moved the volume to use /baserow/data in the container, This is important as this is where Baserow will look for the data it probably won’t be aware of what /home/machine/server/baserow/data is. At a guess I would say that is your local path outside of the container but that is a topic for another day :smiley:

So the other change is I have added the WEB_FRONTEND_PORT environment variable which shouldn’t be needed but it won’t hurt to set it anyway.

Once this is running it is then a case of checking the IP for the container, I like to use the Gateway IP so we can get this in a few ways. The quickest is to just run docker inspect baserow | grep Gateway this will return something the below.

docker@vps:~/baserow-test$ docker inspect baserow-test | grep Gateway
            "Gateway": "",
            "IPv6Gateway": "",
                    "Gateway": "192.168.16.1",
                    "IPv6Gateway": "",

You can also get fancy and run docker inspect -f '{{range.NetworkSettings.Networks}}{{.Gateway}}{{end}}' baserow-test which will just output the Gateway IP.

docker@vps:~/baserow-test$ docker inspect -f '{{range.NetworkSettings.Networks}}{{.Gateway}}{{end}}' baserow-test
192.168.16.1

So now we have that address lets get NGINX Proxy Manager setup, For the Forward Hostname we use the gateway address from earlier and the port we set in the compose file (8097), I like to start simple so we only allow websockets support.

Under SSL you can use an existing certificate if you have a wildcard one or make a new one…

Once saved grab yourself a coffee (or tea) and you should be able to enjoy using Baserow in all its glory.

3 Likes

This is weird/interesting. It seems to sort of be working, but also not working.

I configured everything as you laid out, and when I access my Baserow instance using my iPad Pro in Safari, works perfectly.

But this morning, I logged in on my mac desktop, and I’m getting the “reconnecting with server” message.

Prompted by that, I went to my server machine (ubuntu 20.04), and logged in, and I get the same “reconnecting to server” message.

@weslc13a1adf6sdfb very odd it should work the same, if you press F12 in the browser and check the console and network tabs does it show any errors?

If you want to pop over the url in a DM I can check next time I jump on my Mac (maybe later today or in the morning).

1 Like

I figured it out! I use Firefox and have it locked down pretty tight for privacy, and in doing so, seem to have been preventing it from being able to communicate with the server. When I log in using safari on my mac, no “connecting to server” issues at all.

1 Like

Sweet, glad to hear it. I wonder what setting is blocking it. Do you have a list of the settings you use?

I do! Here’s how I’ve got Firefox configured

Standard privacy and security settings:

  • Strict
  • Delete cookies and site data when closed: Enabled
  • Saving Logins, Passwords, and all other autofill items: Disabled
  • Clear history when Firefox is closed: Enabled
  • Query OCSP responder servers to confirm vailidity of cerficiates: Enabled
  • HTTPS only mode in all windows: Enabled

And then I’ve also set the following options for further privacy/security:

  • geo.enabled: FALSE
  • browser.safebrowsing.malware.enabled: FALSE
  • dom.battery.enabled: FALSE
  • extensions.pocket.enabled: FALSE
  • browser.newtabpage.activity-stream.section.highlights.includePocket:FALSE
  • browser.newtabpage.activity-stream.feeds.telemetry: FALSE
  • browser.ping-centre.telemetry: FALSE
  • toolkit.telemetry.server: Deleted URL to disable telemtry
  • toolkit.telemetry.unified: FALSE
  • media.autoplay.default: 5
  • dom.webnotifications.enabled: FALSE
  • privacy.resistFingerprinting: TRUE
  • webgl.disabled: TRUE
  • network.http.sendRefererHeader: O
  • identity.fxaccounts.enabled: FALSE
  • media.peerconnection.enabled: FALSE
  • media.peerconnection.turn.disable: TRUE
  • media.peerconnection.use_document_iceservers: FALSE
  • media.peerconnection.video.enabled: FALSE
  • media.navigator.enabled: FALSE

Extensions Used

  • Firefox Multi Account Containers (Though I wasn’t running Baserow in a container
  • uBlock Origin

My gut feel is one of the 3 below but I can give it a test and see what happens.

Strict
network.http.sendRefererHeader
UBlock Origin

Man, I feel so dumb. I know along the way when I was testing a million different configurations trying to get it to work that I tried disabling uBlock, but I clearly did not try that with this new configuration.

I just tried it now with the current config. Problem solved. I can now access my baserow instance in my preferred browser.

Thank you again for your help @joffcom. I appreciate you.

That is good news @weslc13a1adf6sdfb :raised_hands: