Skip to content

Debugging connection issues

On launching Saveroom if you encountered the "Backend URL mis-configuration detected" or you are having trouble connecting to your Saveroom server this tutorial will explain why this error can occur how to fix it.

Possible cause of the error

Saveroom needs to know the hostname where it hosted for a number of practical and security reasons. It cannot safely discover this hostname automatically and instead relies on you setting it correctly. In the docker and docker-compose installs it defaults to using http://localhost. If you then try to access Saveroom from a different machine your browser will still be configured to look for Saveroom at http://localhost, which does not exist on the different machine, which is the usual cause of this error.

Fixing a Docker Install

Ensure you have set the environment variable BASEROW_PUBLIC_URL to the URL you are using the access Saveroom on. The following three sections show how to do this depending on how you are accessing your Saveroom server.

Access via a domain name

If you are accessing your Saveroom server using a domain name then you should launch Saveroom like so:

docker run \
  -e BASEROW_PUBLIC_URL=https://YOUR_DOMAIN_HERE \
  # ... followed by the rest of your normal baserow docker arguments 

Access via a domain name with automatic HTTPS

If you are accessing your Saveroom server using a domain name and you want the Saveroom Caddy server to automatically handle HTTPS for you then launch Saveroom like so. If you still want to be able to access your Saveroom from http://localhost add ,http://localhost onto the BASEROW_CADDY_ADDRESSES.

docker run \
  -e BASEROW_PUBLIC_URL=https://YOUR_DOMAIN_HERE \
  -e BASEROW_CADDY_ADDRESSES=https://YOUR_DOMAIN_HERE \
  # ... followed by the rest of your normal baserow docker arguments 

Accessing via an IP address

If you are accessing your Saveroom server using an IP address then you should launch Saveroom like so:

docker run \
  -e BASEROW_PUBLIC_URL=http://YOUR_IP_ADDRESS_HERE \
  # ... followed by the rest of your normal baserow docker arguments 

Accessing using a non-standard port

If you have or want to access Saveroom using a different port other than 80 (-p 80:80) then you also need to set the environment variable WEB_FRONTEND_PORT. You also need to ensure you properly change the -p 80:80 argument to -p YOUR_CUSTOM_PORT:80 and also update the BASEROW_PUBLIC_URL to include the port at the end.

Please note that ports 3000, 5432, 1085 and 8000 are already bound to within the Docker container and so you should pick a different port for YOUR_CUSTOM_PORT. This is because the embedded Caddy reverse proxy listens for connections at $BASEROW_PUBLIC_URL, and so by adding a port onto this you will also make Caddy inside the container listen on that port.

docker run \
  -e BASEROW_PUBLIC_URL=https://YOUR_IP_OR_DOMAIN_HERE:YOUR_CUSTOM_PORT \
  -e WEB_FRONTEND_PORT=YOUR_CUSTOM_PORT \
  -p YOUR_CUSTOM_PORT:80 \
  # ... followed by the rest of your normal baserow docker arguments 

Fixing a Docker-Compose Install

Ensure you have set the environment variable BASEROW_PUBLIC_URL to the URL you are using the access Saveroom on. See the Install with docker compose guide to see the various ways you can set this variable using docker compose.

The following three sections show how to do this depending on how you are accessing your Saveroom server. Please remember to also include any additional environment variables and arguments that are explained in the guide above.

Access via a domain name

If you are accessing your Saveroom server using a domain name then you should launch Saveroom like so

BASEROW_PUBLIC_URL=https://YOUR_DOMAIN_HERE docker-compose up -d

Access via a domain name with automatic HTTPS

If you are accessing your Saveroom server using a domain name and you want the Saveroom Caddy server to automatically handle HTTPS for you then launch Saveroom like so. If you still want to be able to access your Saveroom from http://localhost add ,http://localhost onto the BASEROW_CADDY_ADDRESSES.

BASEROW_PUBLIC_URL=https://YOUR_DOMAIN_HERE \
BASEROW_CADDY_ADDRESSES=https://YOUR_DOMAIN_HERE \
docker-compose up -d

Accessing via an IP address

If you are accessing your Saveroom server using an IP address then you should launch Saveroom like so:

BASEROW_PUBLIC_URL=https://YOUR_IP_HERE docker-compose up -d

Accessing using a non-standard port

If you have or want to access Saveroom using a different port other than 80 and then you also need to set the environment variable WEB_FRONTEND_PORT.

BASEROW_PUBLIC_URL=https://YOUR_IP_OR_DOMAIN_HERE:YOUR_CUSTOM_PORT \
WEB_FRONTEND_PORT=YOUR_CUSTOM_PORT \
docker-compose up -d

Fixing an install using standalone Saveroom service images

Saveroom also provides the ghcr.io/carneirofc/baserow/backend and ghcr.io/carneirofc/baserow/web-frontend images for users who want to host and co-ordinate the various Saveroom services themselves. Using these images you instead need to set the following environment variables on all containers running these images. Please note that the BASEROW_PUBLIC_URL environment variable is not used by these standalone images.

  • PUBLIC_BACKEND_URL (default http://localhost:8000): The publicly accessible URL of the backend. Should include the port if non-standard.
  • PRIVATE_BACKEND_URL (default http://backend:8000): Not only the browser, but also the web-frontend server should be able to make HTTP requests to the backend. It might not have access to the PUBLIC_BACKEND_URL or there could be a more direct route, (e.g. from container to container instead of via the internet). In case of the development environment the backend container be accessed via the backend hostname and because the server is also running on port 8000 inside the container, the private backend URL should be http://backend:8000.
  • PUBLIC_WEB_FRONTEND_URL (default http://localhost:3000): The publicly accessible URL of the web-frontend. Should include the port if non-standard.

Further help

Please post on the issue tracker if you are having further troubles or are using another installation method.