Skip to main content
While using Docker is not necessary for this project, it simplifies deployment for a variety of environments. The pre-built Docker images are available on the GitHub Container Registry.

Tags

Docker TagsDescription
ghcr.io/medama-io/medama:latestLatest stable release.
ghcr.io/medama-io/medama:edgeLatest development build.
ghcr.io/medama-io/medama:<version>Specific version.
ghcr.io/medama-io/medama:sha-<commit-sha>Specific commit (short format).

Setup

1

Run Container

Create a Docker volume to store the database files:
docker volume create medama-data
Then run the container with the following command:
docker run -d -p 8080:8080 -v medama-data:/app/data ghcr.io/medama-io/medama:latest
All database data is stored in the /app/data directory within the containers. You can create a volume or use bind mounts to redirect where data is stored on your local system. Learn more about Docker volumes here.
If you prefer using Docker Compose, create a docker-compose.yml file with the following content:
version: '3'

services:
    medama:
        image: ghcr.io/medama-io/medama:latest
        ports:
            - "8080:8080"
        volumes:
            - medama-data:/app/data

volumes:
    medama-data:
Then start the container with the following command:
docker-compose up -d
Docker Compose is a great solution for setting up reverse proxies, such as Nginx or Caddy, which can automatically provision SSL certificates and handle traffic routing.
If you want to build from source using Docker, clone the medama-io/medama repository and build the image from there:
git clone https://github.com/medama-io/medama

docker build -t medama .
2

Configure Deployment

Before you can start collecting data, you may want to configure your analytics instance to suit your needs. It is recommended to refer to the Environment Variables configuration page.These variables can be set using the -e flag in docker run or the environment property in Docker Compose.Afterwards, ensure your analytics instance is configured to be accessible from the internet. You must also set up SSL certificates for your deployment.
3

Add Your First Website

Success! You can now add your first website to the analytics instance by visiting the web interface at http://localhost:8080 or the publicly accessible hostname for your deployment.The default login credentials are:
  • Username: admin
  • Password: CHANGE_ME_ON_FIRST_LOGIN
To successfully login, you must either use localhost or a HTTPS connection. Logging in via an unencrypted HTTP connection will not work.

If your hosting provider does not automatically provision SSL certificates to your machine, you may want to use the automatic SSL setup feature.
It is recommended to change the username and password immediately after logging in for the first time. This can be changed in the settings menu.
4

Embed Tracking Snippet

Then, embed the following HTML tracking snippet in the <head> element of your website to start collecting data:
<script defer src="https://[your-public-api-hostname].com/script.js"></script>
Learn more about configuring your tracking snippet here.
I