diff --git a/web/docs/deployment/deployment-methods/paas.md b/web/docs/deployment/deployment-methods/paas.md index a19e45cc2c..fe284d967a 100644 --- a/web/docs/deployment/deployment-methods/paas.md +++ b/web/docs/deployment/deployment-methods/paas.md @@ -417,19 +417,13 @@ When you make updates and need to redeploy: ## Heroku {#heroku} -We will show how to deploy the server and provision a database for it on Heroku. - -:::note -Heroku used to offer free apps under certain limits. However, as of November 28, 2022, they ended support for their free tier. https://blog.heroku.com/next-chapter - -As such, we recommend using an alternative provider like [Fly.io](#flyio) for your first apps. -::: +We will show how to deploy the server and provision a database for it on Heroku. You can check their [pricing page](https://www.heroku.com/pricing) for more information on their plans. You will need Heroku account, `heroku` [CLI](https://devcenter.heroku.com/articles/heroku-cli) and `docker` CLI installed to follow these instructions. Make sure you are logged in with `heroku` CLI. You can check if you are logged in with `heroku whoami`, and if you are not, you can log in with `heroku login`. -### Set Up a Heroku App +### Set up a Heroku app :::info You need to do this only once per Wasp app. @@ -444,11 +438,12 @@ heroku create Unless you have an external PostgreSQL database that you want to use, let's create a new database on Heroku and attach it to our app: ``` -heroku addons:create --app heroku-postgresql:mini +heroku addons:create --app heroku-postgresql:essential-0 ``` :::caution -Heroku does not offer a free plan anymore and `mini` is their cheapest database instance - it costs $5/mo. + +We are using the `essential-0` database instance. It's the cheapest database instance Heroku offers and it costs $5/mo. ::: Heroku will also set `DATABASE_URL` env var for us at this point. If you are using an external database, you will have to set it up yourself. @@ -467,7 +462,7 @@ heroku config:set --app WASP_SERVER_URL= web +heroku stack:set container --app ``` -App is still not deployed at this point. -This step might take some time, especially the very first time, since there are no cached docker layers. - -:::note Note for Apple Silicon Users -Apple Silicon users need to build a non-Arm image, so the above step will not work at this time. Instead of `heroku container:push`, users instead should: +Build the Docker image and push it to Heroku: ```shell -docker buildx build --platform linux/amd64 -t . -docker tag registry.heroku.com//web -docker push registry.heroku.com//web +heroku container:push --app web ``` -You are now ready to proceed to the next step. -::: +App is still not deployed at this point. +This step might take some time, especially the very first time, since there are no cached Docker layers. Deploy the pushed image and restart the app: