Running on Koyeb

Koyeb is a developer-friendly serverless platform to deploy apps globally. The platform lets you seamlessly run Docker containers, web apps, and APIs with git-based deployment, native autoscaling, free SSL, a global edge network, and built-in service mesh and discovery.

Setup

In this guide, you need to have a PostgreSQL database server running and accepting remote connections. If you do not already have a database, you can check out the Managed database section under Hosting.

You will need to set up the database tables by following the Create database tables section of the Install docs.

To deploy Umami, we use the Koyeb CLI, you can also perform the setup using the Koyeb control panel.

Create Koyeb Secrets

Create one Koyeb secrets to securely store your DATABASE_URL. In the terminal execute the following command:

$ koyeb secret create umami-database-url
Enter your secret: postgres://<user>:<password>@<host>:<port>/<db-name>?sslmode=require
 
$ openssl rand -hex 32 | koyeb secret create umami-hash-salt --value-from-stdin

Deploy Umami

Once you’ve created the secrets, you can deploy Umami. In your terminal run the following command to create a new Koyeb App and deploy the Umami service:

koyeb app init umami --docker ghcr.io/umami-software/umami:postgresql-latest --ports 3000:http --routes /:3000 --env DATABASE_URL=@umami-database-url

Your Umami service is being deployed. To retrieve the Umami URL run:

$ koyeb app get umami
ID                                  	NAME     	DOMAINS                         	UPDATED AT
30de8301-05b1-4131-a842-28e608900000	umami   	umami-<YOUR_KOYEB_ORG>.koyeb.app	2021-07-06 11:58:01.143967 +0000 UTC

Open the URL to access Umami and follow the Getting started guide starting from the Login step.