# Setting Up Matomo Analytics with a Dedicated MariaDB Instance

### Overview

This article details the process of deploying Matomo Analytics using a dedicated, isolated MariaDB database. This method ensures that your analytics data remains separate from other services (like Nextcloud), preventing database conflicts and simplifying maintenance.

### Prerequisites

- **Host System:** Ubuntu Server with CasaOS or Docker installed.
- **Storage Path:** /DATA/AppData/matomo
- **Port Availability:** Port 8484

### 1. Docker Compose Configuration

Use the following configuration for a Custom Install in CasaOS:

```
services:
  matomo_db:
    image: mariadb:10.11
    container_name: matomo_db
    command: --max-allowed-packet=64MB
    environment:
      - MARIADB_ROOT_PASSWORD=matomo_root_password
      - MARIADB_DATABASE=matomo
      - MARIADB_USER=matomo
      - MARIADB_PASSWORD=matomo_secure
    volumes:
      - /DATA/AppData/matomo/db:/var/lib/mysql
    restart: unless-stopped

  matomo_app:
    image: matomo:latest
    container_name: matomo_app
    restart: unless-stopped
    ports:
      - "8484:80"
    environment:
      - MATOMO_DATABASE_HOST=matomo_db
      - MATOMO_DATABASE_DBNAME=matomo
      - MATOMO_DATABASE_USERNAME=matomo
      - MATOMO_DATABASE_PASSWORD=matomo_secure
    volumes:
      - /DATA/AppData/matomo/html:/var/www/html
    depends_on:
      - matomo_db
```

### 2. Database Connection Credentials

During the Matomo web-based setup wizard, use these internal credentials:

<table id="bkmrk-setting-value-databa" style="border-collapse: collapse; width: 100%; border: 1px solid #ddd;"><thead><tr style="background-color: #f2f2f2;"><th style="padding: 10px; border: 1px solid #ddd; text-align: left;">Setting</th><th style="padding: 10px; border: 1px solid #ddd; text-align: left;">Value</th></tr></thead><tbody><tr><td style="padding: 10px; border: 1px solid #ddd;">Database Server</td><td style="padding: 10px; border: 1px solid #ddd;">matomo\_db</td></tr><tr><td style="padding: 10px; border: 1px solid #ddd;">Login</td><td style="padding: 10px; border: 1px solid #ddd;">matomo</td></tr><tr><td style="padding: 10px; border: 1px solid #ddd;">Password</td><td style="padding: 10px; border: 1px solid #ddd;">matomo\_secure</td></tr><tr><td style="padding: 10px; border: 1px solid #ddd;">Database Name</td><td style="padding: 10px; border: 1px solid #ddd;">matomo</td></tr></tbody></table>

### 3. Implementation on BookStack

1. Log in to Matomo and navigate to **Administration &gt; Websites &gt; Manage**.
2. Copy the **JavaScript Tracking Code**.
3. In BookStack, navigate to **Settings &gt; Customization**.
4. Paste the script into the **Custom HTML Head Content** area and save.