Skip to content

9锔忊儯馃惓 Add all-in-one image used as a base by cloudron/heroku.

Nigel Gott requested to merge 758-all-in-one-docker into develop

Changes in this MR

  • Added all-in-one Baserow docker image and made the cloudron and heroku images build from it.
  • Added support for building images which don鈥檛 have a dev version to jobs.yml build-final-baserow-image
  • Added support for the BUILD_FROM_BACKEND_IMAGE and BUILD_FROM_WEBFRONTEND_IMAGE arguments to jobs.yml build-final-baserow-image which set the Dockerfile build args FROM_BACKEND_IMAGE and FROM_WEBFRONTEND_IMAGE respectively. Used to build the all-in-one image.
  • Added backup and restore commands to the backend docker-entrypoint script
  • Added a new BASEROW_PUBLIC_URLS variable used when Caddy is in use which overrides PUBLIC_BACKEND/WEBFRONTEND_URL to the first url in BASEROW_PUBLIC_URLS (its comma separated). We need multiple urls so we can tell Caddy to listen for multiple different addresses (by default we listen on localhost + any connection to port :80)
  • Added healthchecks to the docker-entrypoint and use them in docker-compose files + docker images
  • Fixed a bug where our redis python library was downgraded accidentally by including django-redis 5.1.0, added a small ci script to prevent this from happening again
  • Added the django healthcheck library which checks the backend is healthy in a number of ways. Exposed this on a private URL (its hidden by caddy, in the saas I鈥檝e updated the ingress config to hide it also)
  • We now fail automatically if you haven鈥檛 set your own SECRET_KEY in the compose files
  • In compose we also now require the user to set a REDIS_PASSWORD and POSTGRES_PASSWORD . Having all our users use the same hardcoded Baserow password for these services seems like a big security risk.
  • In the all-in-one images we auto generate and use a REDIS_PASSWORD and POSTGRES_PASSWORD
  • Updated README
  • Added a simple SECURITY.md
  • Added the local, all-in-one, cloudron and heroku flags to ./dev.sh for running it for these different environments. For example you can build the heroku image and run it locally by running ./dev.sh heroku restart 鈥揵uild (make sure you first run ./dev.sh local build_only and ./dev.sh all_in_one build_only to build fresh copies of those images used by the heroku one, same applies for all_in_one needs local built first and cloudron needs local and all_in_one)

Merge Request Checklist

  • changelog.md has been updated if required
  • New/updated Premium features are separated correctly in the premium folder
  • The latest Chrome and Firefox have been used to test any new frontend features
  • Documentation has been updated
  • Quality Standards are met
  • Performance: tables are still fast with 100k+ rows, 100+ field tables
  • The redoc API pages have been updated for any REST API changes
  • Our custom API docs are updated for changes to endpoints accessed via api tokens
  • The UI/UX has been updated following UI Style Guide

Closes #758 (closed)

Edited by Nigel Gott

Merge request reports