This guide provides instructions on how to deploy Metabase, an open-source business intelligence tool, on a Dokku server using a custom Dockerfile.
Before proceeding, ensure you have the following:
- A working Dokku host.
- The PostgreSQL plugin installed on Dokku.
- (Optional) The Let's Encrypt plugin for SSL certificates.
Log into your Dokku host and create the metabase app:
dokku apps:create metabase-
Install the PostgreSQL plugin:
dokku plugin:install https://github.com/dokku/dokku-postgres.git postgres
-
Create a PostgreSQL service:
dokku postgres:create metabase
-
Link the PostgreSQL service to the app:
dokku postgres:link metabase metabase
Set the domain for your app to enable routing:
dokku domains:set metabase metabase.example.comMap the internal port 3000 to the external port 80:
dokku proxy:ports-set metabase http:80:3000You can deploy the app to your Dokku server using one of the following methods:
If your repository is hosted on a remote Git server with an HTTPS URL, you can deploy the app directly to your Dokku server using dokku git:sync. This method also triggers a build process automatically. Run the following command:
dokku git:sync --build metabase https://github.com/d1ceward-on-dokku/metabase_on_dokku.gitIf you prefer to work with the repository locally, you can clone it to your machine and push it to your Dokku server manually:
-
Clone the repository:
# Via SSH git clone git@github.com:d1ceward-on-dokku/metabase_on_dokku.git # Via HTTPS git clone https://github.com/d1ceward-on-dokku/metabase_on_dokku.git
-
Add your Dokku server as a Git remote:
git remote add dokku dokku@example.com:metabase
-
Push the app to your Dokku server:
git push dokku master
Choose the method that best suits your workflow.
Secure your app with an SSL certificate from Let's Encrypt:
-
Add the HTTPS port:
dokku ports:add metabase https:443:9000
-
Install the Let's Encrypt plugin:
dokku plugin:install https://github.com/dokku/dokku-letsencrypt.git
-
Set the contact email for Let's Encrypt:
dokku letsencrypt:set metabase email you@example.com
-
Enable Let's Encrypt for the app:
dokku letsencrypt:enable metabase
Congratulations! Your Metabase instance is now up and running. You can access it at https://metabase.example.com.
Happy data exploring!
