Any questions, problems or suggestions with this guide? Ask a question in our community or contribute the change yourself at https://gitlab.com/baserow/baserow/-/tree/develop/docs .
Docker version 19.03 is the minimum required to build Baserow. It is strongly advised however that you install the latest version of Docker available. Please check that your docker is up to date by running
docker -v
.
Baserow consists of a number of services, two of which are built and provided as separate standalone images by us:
baserow/backend:1.29.2
which by default starts the Gunicorn Django backend server
for Baserow but is also used to start the celery workers and celery beat services.baserow/web-frontend:1.29.2
which is a Nuxt server providing Server Side rendering
for the website.If you want to use your own container orchestration software like Kubernetes then these images let you run and scale these different parts of Baserow independently.
For an example of how to use these images see the
docker-compose.yml
in the root of our repository.
These are all the services you need to set up to run a Baserow using the standalone images:
baserow/backend:1.29.2
(default command is gunicorn
)baserow/backend:1.29.2
with command celery-worker
baserow/backend:1.29.2
with command celery-export-worker
baserow/web-frontend:1.29.2
(default command is nuxt-local
)BASEROW_PUBLIC_URL
(usually only when behind your a reverse proxy, see
below for details) or PUBLIC_BACKEND_URL
and PUBLIC_WEB_FRONTEND_URL
PRIVATE_BACKEND_URL
so the web-frontend server can make direct
HTTP requests to the backend. The web-frontend might not have access to the
PUBLIC_BACKEND_URL
or BASEROW_PUBLIC_URL
, or there could be a more direct internal
route it could use. (e.g. from container to container instead of via the internet).BASEROW_CADDY_ADDRESSES
environment variable used in other installation methods
has no affect.SECRET_KEY
environment variable for the backend gunicorn server.Caddyfile
for an example on how to setup a reverse proxy correctly with Baserow. In summary you
need to:
/api/
and /ws/
requests to the backend gunicorn service without
dropping these prefixes./baserow/media
folder in the backend gunicorn service
(share with your proxy using a volume) at the /media
endpoint. Ensure
that requests with a dl
query parameter have a Content-disposition
header added
with the value of attachment; filename=THE_DL_QUERY_PARAM_VALUE
celery-worker
service is the one
actually connecting via SMTP to send emails.