How to use multiple servers to build a Baserow cluster?

Deploy Baserow on multiple servers and run with Supervisor(horizontal scale), and then use the same redis and database?

Hi @Chase, that should work if configured properly.

  • One PostgreSQL database.
  • One Redis database.
  • N amount of servers with supervisor running:
    • gunicorn worker running on port 8000 (connecting to the same PostgreSQL and Redis DB)
    • celery worker (connecting to the same PostgreSQL and Redis DB)
    • celery export worker (connecting to the same PostgreSQL and Redis DB)
    • nuxt server running on port 3000
      • PUBLIC_WEB_FRONTEND_URL: public web-frontend nginx url
      • PUBLIC_BACKEND_URL: public backend nginx url
      • PRIVATE_BACKEND_URL: private backend nginx url
  • One NGINX load balancer server that
    • distributes public backend requests over the servers running supervisor over port 8000.
    • distributes private backend requests over the servers running supervisor over port 8000.
    • distributes public web-frontend requests over the servers running supervisor over port 3000.

The above scenario should allow you to vertically scale the database servers when needed and horizontally scale the application server.

1 Like

Thanks for your patient reply! I will try according to your guidance, I use supervisor to run Baserow, I don’t know the meaning of PUBLIC_BACKEND_URL and PRIVATE_BACKEND_URL when used, I read: Configuring Baserow, but when actually used I still have some doubts. :sweat_smile:

The network between my multiple servers is interoperable and can be accessed directly, so I currently set the values ​​of these two parameters to: http://backend:8000, works fine when using only one server. I don’t know if this is still possible when building a cluster with multiple servers, if you can share your thoughts, it would be very grateful