diff --git a/app.json b/app.json index 08c7f8ab8..3303b6c21 100644 --- a/app.json +++ b/app.json @@ -6,14 +6,14 @@ "logo": "https://baserow.io/img/favicon_192.png", "success_url": "/", "addons": [ - "heroku-postgresql:hobby-dev", - "heroku-redis:hobby-dev", + "heroku-postgresql:mini", + "heroku-redis:mini", "mailgun:starter" ], "formation": { "web": { "quantity": 1, - "size": "free" + "size": "basic" } }, "stack": "container", diff --git a/backend/src/baserow/config/settings/heroku.py b/backend/src/baserow/config/settings/heroku.py index 36e50d183..91d7243c6 100644 --- a/backend/src/baserow/config/settings/heroku.py +++ b/backend/src/baserow/config/settings/heroku.py @@ -5,7 +5,7 @@ from .base import * # noqa: F403, F401 if REDIS_PROTOCOL == "rediss" or "rediss" in REDIS_URL: # noqa: F405 # We need to set the certificate check to None, otherwise it is not compatible with - # the `heroku-redis:hobby-dev` addon. The URL generated by that addon is over a + # the `heroku-redis:mini` addon. The URL generated by that addon is over a # secured connection with a self signed certificate. The redis broker could fail # if the certificate can't be verified. CELERY_REDBEAT_REDIS_USE_SSL = {"ssl_cert_reqs": ssl.CERT_NONE} @@ -21,7 +21,7 @@ if REDIS_PROTOCOL == "rediss" or "rediss" in REDIS_URL: # noqa: F405 # Set the limit of the connection pool based on the amount of workers that must be # started with a limit of 10, which is the default value. This is needed because the -# `heroku-redis:hobby-dev` doesn't accept more than 20 connections. +# `heroku-redis:mini` doesn't accept more than 20 connections. CELERY_BROKER_POOL_LIMIT = min(4 * int(os.getenv("BASEROW_AMOUNT_OF_WORKERS", "1")), 10) CELERY_REDIS_MAX_CONNECTIONS = min( 4 * int(os.getenv("BASEROW_AMOUNT_OF_WORKERS", "1")), 10 diff --git a/changelog.md b/changelog.md index ba953999f..795aca947 100644 --- a/changelog.md +++ b/changelog.md @@ -19,6 +19,7 @@ For example: * New items automatically get a new name in the modal. [1166](https://gitlab.com/bramw/baserow/-/issues/1166) ### Bug Fixes +* Fixed the Heroku deployment template. [#1420](https://gitlab.com/bramw/baserow/-/issues/1420) * Fixed bug where only one condition per field was working in form's views. [#1400](https://gitlab.com/bramw/baserow/-/issues/1400) * Fix "ERR_REDIRECT" for authenticated users redirected to the dashboard from the signup page. [1125](https://gitlab.com/bramw/baserow/-/issues/1125) * Fixed a problem of some specific error messages not being recognized by the web front-end. diff --git a/deploy/heroku/README.md b/deploy/heroku/README.md index b3b83e079..dd0ddc9c5 100644 --- a/deploy/heroku/README.md +++ b/deploy/heroku/README.md @@ -17,8 +17,8 @@ $ heroku apps:create baserow-test-app $ heroku stack:set -a baserow-test-app container # We need to add all the addons listed in the app.json file. -$ heroku addons:create -a baserow-test-app heroku-postgresql:hobby-dev -$ heroku addons:create -a baserow-test-app heroku-redis:hobby-dev +$ heroku addons:create -a baserow-test-app heroku-postgresql:mini +$ heroku addons:create -a baserow-test-app heroku-redis:mini $ heroku addons:create -a baserow-test-app mailgun:starter # We need to add all the labs listed in the app.json file. diff --git a/docs/installation/install-on-heroku.md b/docs/installation/install-on-heroku.md index 496117c10..73d05a580 100644 --- a/docs/installation/install-on-heroku.md +++ b/docs/installation/install-on-heroku.md @@ -8,8 +8,8 @@ Heroku is a platform as a service that enables developer to build, run and operate applications entirely in the cloud. We have created a template that allows you to -easily install Baserow on the free plan of Heroku. You can also scale up by tweaking -some settings +easily install Baserow on [the basic dyno of Heroku](https://devcenter.heroku.com/articles/dyno-types). +You can also scale up by tweaking some settings. ## The template @@ -19,13 +19,25 @@ some settings The button above can be used to install Baserow on Heroku with one click. Click on it and follow the steps on heroku.com to proceed. After the installation, you can reach Baserow on the URL provided by Heroku. Everything installed via the template runs on -the free plan of Heroku by default. +[the basic dyno of Heroku](https://devcenter.heroku.com/articles/dyno-types) by default. + +## Budgeting + +On November Nov 28 2022 the `hobby-dev` (free) Heroku plans were retired. + +This means that to deploy Baserow to Heroku, it will require a small cost. We have chosen the cheapest and most secure dynos and addons to deploy with. +You can always upgrade your dynos should your installation require more resources (see Scaling below). + +- `web` ($7/mo): the web formation creates a Basic always-on dyno. +- `heroku-redis:mini` ($3/mo): the Redis addon. +- `heroku-postgresql:mini` ($5/mo): the Postgresql addon. + ## Built-in Baserow templates disabled by default -By default, we are using the `heroku-postgresql:hobby-dev` addon because that supports -10k rows for free. The Baserow templates require more than 10k rows, so we do not -load them by default. If you upgrade your heroku database to support more data and +By default, we are using the [`heroku-postgresql:mini` addon](https://elements.heroku.com/addons/heroku-postgresql) +because it's the cheapest ($5/mo, up-to 10k rows) Postgres addon. The Baserow templates require more than 10k rows, +so we do not load them by default. If you upgrade your heroku database to support more data and want to load the templates run the following: 1. Login to Heroku and open your Baserow app @@ -76,10 +88,10 @@ you will find example settings if you want to connect to Digital Ocean Spaces. ## Scaling -Even though the template runs on the free plan of Heroku by default, it can easily be +Even though the template runs on the basic dyno of Heroku by default, it can easily be scaled up to fit your needs. We recommend scaling up if you are going to use Baserow with more than one user simultaneously. You can scale up by changing the dyno type -and increase the amount of dyno's. +and increase the amount of dynos. ### Workers per dyno @@ -94,13 +106,13 @@ worker, a standard x2 can have 2 workers and a performance M can have 4. ### Postgres -By default, we are using the `heroku-postgresql:hobby-dev` addon because that supports -10k rows for free. If you need more rows, you need to upgrade that addon. +By default, we are using the [`heroku-postgresql:mini` addon](https://elements.heroku.com/addons/heroku-postgresql) +because that supports 10k rows for $5/mo. If you need more rows, you need to upgrade that addon. ### Redis -By default, we are using the `heroku-redis:hobby` addon because that addon supports -20 connections for free. If you are scaling up, you need more connections which means +By default, we are using the [`heroku-redis:mini` addon](https://elements.heroku.com/addons/heroku-redis) +because that addon supports 20 connections for $3/mo. If you are scaling up, you need more connections which means you need to upgrade that addon. In order to roughly estimate how many connections you would need, you can do DYNO COUNT * BASEROW_AMOUNT_OF_WORKERS * 15.