Deploy to Heroku isn't working

Hi!

When I click Deploy to Heroku on this page:

http://www.metabase.com/docs/v0.12.0/operations-guide/running-metabase-on-heroku.html

I get a message from Heroku saying:

"The given URL (GitHub - metabase/metabase-deploy: Metabase binary deployment) is not a valid GitHub repository."

Can't wait to try metabase out, thanks for creating it!

The link should be fixed now. It should point to https://dashboard.heroku.com/new?button-url=http%3A%2F%2Fdownloads.metabase.com%2Flaunch-heroku.html&template=https%3A%2F%2Fgithub.com%2Fmetabase%2Fmetabase-deploy

Also be aware that sometimes the application takes too long to start and Heroku times out. If that happens just try again. We’re working on making this more robust.

Hi Tom, when you say “try again”, do you mean try deploying again? I tried restarting the app several times to no avail. I’m also not sure how you increase the timeout for Java apps sans a gem :confused: Thanks in advance. I’m a long time Looker user - excited to give this a whirl.

I was able to deploy to heroku, but I keep getting an Application Error when I try to visit the app setup url.

2 Likes

We’ve had a couple folks mention that they are running into memory limitation issues when using 512m dynos. It’s possible that’s what you’re running into here.

We haven’t hardened the Metabase deployment on Heroku (yet), so we are still finding out about some of these issues. We love the simplicity of Heroku though, so we’ll definitely be working to get these problems resolved as soon as we can.

The memory issue is definitely what’s stopping it working on Heroku for me at the moment. Would your advice be to run it on a bigger instance for now?

Yeah, if you have the ability to provision some more resources for the instance that’s your best bet for now.

We try to keep things as lean as possible as we develop, but we haven’t spent focused time trying to optimize for small memory scenarios. We run quite a few Metabase deployments on AWS using t2.small instances (2gb total memory) and we’ve never had any issues, so that’s a good benchmark. 512mb is a pretty small amount of memory for running this type of application.

That seems a bit crazy, that “this type of application” needs so much memory. On Heroku (on which standard dynos with 512mb run thousands of production apps), getting to above 2gb would cost $250 a month. That’s quite a steep entry point

Just to be clear, I was not saying that Metabase requires 2GB of RAM, simply that we hadn’t spent time trying it in smaller memory situations because frankly it hadn’t come up.

We run Metabase on AWS quite a bit and estimate that if you want to use ElasticBeanstalk with t2.small instances plus an RDS database your total cost is roughly $50/mo, and that’s for what I consider a production deployment. You can certainly downgrade that to micro instances and be within Amazon’s free tier quite easily. Even in the AWS free tier you get at least 1GB of ram.

In any case, we are looking at the Heroku setup and there don’t seem to be any issues running the app within the 512mb limit on standard dynos, so we’ll have that fixed up soon … https://github.com/metabase/metabase-deploy/pull/5

Hello! I wasn’t able to launch on Heroku today. I want to be super-lazy, and don’t want to dig into the Heroku CLI to tail the log to figure it out.

It looks like the Heroku free/trial deployment has been problematic.

Is there a Demo instance that refreshes itself every X minutes? That might be better or everyone.

Yeah, Thanks for Metabase, looks superb!

Hey All... seems like this isn't working again. Any chance if I revive this someone might be able to tweak and get it working again? Or am I just better off using Docker?

Hi, I just tried to deploy to Heroku and worked flawlessly. Can you please open specify what's the error you're seeing? thanks

@johnnykarate Yes, Docker is recommend over Heroku.

Thanks @Luiggi! I was trying to setup the quick and dirty free version of Heroku for customer sales/demo purposes. (cause it's the most amazing setup which is fully web enabled)

The build appears to complete without any issue but the logs show "App Crashed" without any more real detail than this:

2021-12-08T16:54:47.802245+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/api/health" host=metabase-dev-mondo.herokuapp.com request_id=5a022b08-f857-44f8-89bd-a8751e7da2b6 fwd="73.71.75.207" dyno= connect= service= status=503 bytes= protocol=https

Try entering the app and see if it works. I did the setup with the same Heroku tier and worked :wink:


Interesting... did you tweak anything @Luiggi?? I'm just following all defaults.

I started the process from our deploy to heroku guide and I get to the setup without issues, no special configs at all.

Just in case, try this link (it's a personal fork I built for deploying MB Enterprise in Heroku, which is not recommended at all due to Heroku limitations) which has a few tweaks like running MB with Java 17, which might be faster and more memory efficient

Thanks so much Luiggi... I very much appreciate your help.
I'll probably go down the personal fork path to tweak the memory and such. I did manage to get it running locally on Docker without any issues. When I find the time I'll do a deep dive on on a fork. Thanks again and have a great day!!