Successfull Metabase deploying on Scalingo


#1

Hi guys, my first post here, but I have been reviewing Metabase for a while already. Just today I have managed to install it correctly on a server and would like to share with you my experience.

Firstly I have followed the recommended AWS installation and have succeeded, but there were 2 issues - I could not easily use *.pem certificate to connect to database (main bummer) and had to make seemed complicated extra steps to enable https. After hours of frustration of dealing with EC2 machine, trying not only adding the certificate to “keytool” (which I actually succeeded), eventually it did not work and I thought about other options…

The second working option was to use Scalingo (https://scalingo.com) and after some frustration of trying to deploy jar file, I have wrote to Scalingo support and have quickly received a detailed explanation of deploying process even with specially prepared repo (big thanks to Jonathan!). I am copying the content of the email here (with permission of the authort):


You’ll need to install the JVM and use the metabase buildpack.

I made a first PoC using our Java buildpack, their buildpack: https://github.com/metabase/metabase-buildpack and their deployer: https://github.com/metabase/metabase-deploy/

You can find it here:

To deploy it follow these steps:

  1. Create your app

scalingo create NAME_OF_YOUR_APP

  1. Use our multi buildpack

scalingo env-set -a NAME_OF_YOUR_APP BUILDPACK_URL=https://github.com/Scalingo/multi-buildpack.git

This will let us use multiple buildpack (in our case the JVM and metabase).
You can find more information in our documentation: https://doc.scalingo.com/platform/deployment/buildpacks/multi#top-of-page

  1. Deploy your app

scalingo deploy -a NAME_OF_YOUR_APP 'https://github.com/johnsudaar/metabase-scalingo/archive/master.tar.gz'

This will start the deployment of the code contained in this repository: https://github.com/johnsudaar/metabase-scalingo

Feel free to fork it and modify it if you need to :slight_smile:

That’s it, you should now have a working metabase server.

Don’t forget to add an pgsql addon and configure the server to use a psql storage backend or you’ll lose your data at every restart and deployment of your app. You can find more informations about your app filesystem here: https://doc.scalingo.com/platform/app/filesystem#top-of-page

…

My sample reference heroku because metabase already had a working heroku configuration, i just adapted it to Scalingo. We will work on a even simpler method where you’ll be able to deploy metabase with just one click. You can follow our advancement on this feature by following this issue: https://github.com/Scalingo/documentation/issues/463


Now few comments from me:

  • Before being able to deploy, you need to install Scalingo CLI - https://doc.scalingo.com/cli
  • By default it tries to install to M container (512MB of RAM) and allocates 300MB for JVM, which will make Metabase launch but it works not stable - might crash if you try to work with reasonable load
  • I have observed that XL container (2GB RAM) with free tier PostgreSQL (512MB) works so far ok. In order to increase default allocated JVM space add JAVA_OPTS=-Xmx1g into Environment Variables in the Scalingo’s app webadmin
  • Connecting PostgreSQL is just adding Environment Variables (the same as in example with Heroku) to app’s web admin and restart the app

And a summary:

Advantages:

  • quick setup
  • easy and understandable interface (in comparison to AWS EB)
  • great support

Disadvantages:

  • the Scalingo’s single datacenter is located in Paris (which might not be ok for some US users)
  • the prices for containers are higher than AWS EC2/RDS

Questions:

  • While looking into container load I am observing the used RAM is gradually increasing (even if I do not do anything), does this mean there are memory leaks?

If you have any questions, let me know.

P.S. I have no relation to Scalingo, just was happy that they have solved my problem very fast and believe this post might help some other people in the community. If you find this information helpful you could use my referral link before registering there: https://sclng.io/r/11756e75297a5fb4