SELF HOSTING

Umami Analytics – Công cụ phân tích web mã nguồn mở

Umami là một công cụ phân tích web mã nguồn mở (open-source web analytics) được phát triển trên nền tảng Node.js. Nó cung cấp các insight chi tiết về lưu lượng truy cập website, hành vi người dùng, và hiệu suất trang mà hoàn toàn không sử dụng cookie bên thứ bakhông thu thập dữ liệu cá nhân.

Umami là thay thế hoàn hảo cho Google Analytics – đặc biệt dành cho những lập trình viên, chủ website muốn:

  • Kiểm soát dữ liệu hoàn toàn bằng cách tự host trên server riêng
  • Tuân thủ GDPR, PECR mà không cần cookie banner
  • Nhẹ nhàng, nhanh chóng so với Google Analytics
  • Miễn phí và có thể tùy chỉnh theo nhu cầu cụ thể

Dự án được duy trì tích cực trên GitHub với cộng đồng đông đảo.

Ưu điểm của Umami so với Google Analytics

Tiêu chíUmamiGoogle Analytics
Quyền riêng tưKhông cookie, GDPR-compliantCần cookie banner, yêu cầu consent
Giá thànhMiễn phí (tự host)Miễn phí (nhưng collect dữ liệu quảng cáo)
Kiểm soát dữ liệuDữ liệu ở server riêng của bạnDữ liệu ở Google
Tốc độNhẹ nhàng, nhanhNặng, ảnh hưởng tốc độ trang
Dễ thiết lậpĐơn giản, tự động trackingPhức tạp, cần cấu hình nhiều
Real-time analytics
Custom events
ReportsCơ bản nhưng đầy đủRất chi tiết

Umami thắngquyền riêng tư, tốc độ, và sự đơn giản. Nếu website của bạn cần theo dõi lưu lượng và hành vi người dùng mà không sợ vấn đề pháp lý GDPR, thì Umami là lựa chọn tuyệt vời.

Yêu cầu hệ thống

Trước khi cài đặt Umami, bạn cần chuẩn bị:

Yêu cầu bắt buộc:

  1. Node.js: Phiên bản 18.18 trở lên (khuyến nghị v20+)
  2. Database:
    • PostgreSQL (phiên bản 12.14+) – khuyến nghị
    • MySQL (phiên bản 8.0+) – hỗ trợ nhưng ít ổn định hơn
  3. Docker (tùy chọn): Để triển khai nhanh bằng Docker Compose
  4. Server: Linux server (Ubuntu 20.04+, Debian 11+) hoặc MacOS

Yêu cầu tùy chọn:

  • Nginx/Apache: Để làm reverse proxy
  • SSL/TLS: Để HTTPS (sử dụng Let’s Encrypt)
  • PM2: Để quản lý process (khuyến nghị)

Hướng dẫn cài đặt Umami

Phương pháp 1: Cài đặt bằng Docker Compose (Khuyến nghị)

Docker Compose là cách nhanh nhất và dễ nhất để cài đặt Umami, vì nó đi kèm với PostgreSQL đã được cấu hình sẵn.

Bước 1: Clone repository Umami

cd /opt
git clone https://github.com/umami-software/umami.git
cd umami

Bước 2: Cấu hình Docker Compose

Mở file docker-compose.yml và chỉnh sửa cấu hình:

services:
  umami:
    image: ghcr.io/umami-software/umami:postgresql-latest
    ports:
      - "3000:3000"
    environment:
      DATABASE_URL: postgresql://umami:umami@db:5432/umami
      DATABASE_TYPE: postgresql
      HASH_SALT: random_hash_salt_here
    depends_on:
      - db
    restart: always

  db:
    image: postgres:15
    environment:
      POSTGRES_DB: umami
      POSTGRES_USER: umami
      POSTGRES_PASSWORD: umami
    volumes:
      - umami_db:/var/lib/postgresql/data
    restart: always

volumes:
  umami_db:
LƯU Ý:
Thay HASH_SALT bằng một chuỗi ngẫu nhiên dài (ví dụ: openssl rand -hex 32).

Bước 3: Khởi động các container

docker-compose up -d

Kiểm tra trạng thái:

docker-compose ps

Umami sẽ chạy tại http://localhost:3000.

Phương pháp 2: Cài đặt từ Source Code

Nếu bạn muốn có kiểm soát tối đa, hãy cài đặt từ source code.

Bước 1: Cài đặt Node.js (nếu chưa có)

# Ubuntu/Debian
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs

# Kiểm tra phiên bản
node --version
npm --version

Bước 2: Cài đặt PostgreSQL (nếu chưa có)

# Ubuntu/Debian
sudo apt-get install postgresql postgresql-contrib

# Khởi động PostgreSQL
sudo systemctl start postgresql
sudo systemctl enable postgresql

# Tạo database và user
sudo sudo -u postgres psql

Trong PostgreSQL shell:

CREATE DATABASE umami;
CREATE USER umami_user WITH PASSWORD 'your_secure_password';
GRANT ALL PRIVILEGES ON DATABASE umami TO umami_user;
\q

Bước 3: Clone Umami repository

git clone https://github.com/umami-software/umami.git
cd umami

Bước 4: Cài đặt pnpm (package manager của Umami)

npm install -g pnpm

Bước 5: Cài đặt dependencies

pnpm install

Bước 6: Cấu hình biến môi trường

Tạo file .env trong thư mục root:

cp .env.example .env

Chỉnh sửa .env:

DATABASE_URL=postgresql://umami_user:your_secure_password@localhost:5432/umami
DATABASE_TYPE=postgresql
HASH_SALT=your_random_salt_here
NODE_ENV=production

Bước 7: Build và chạy Umami

# Build ứng dụng
pnpm build

# Chạy Umami
pnpm start

Hoặc sử dụng PM2 để chạy ở background:

pm2 start pnpm --name "umami" -- start
pm2 save
pm2 startup

Cách sử dụng Umami

Bước 1: Đăng nhập vào Umami Dashboard

Truy cập http://localhost:3000 hoặc domain của bạn.

Đăng nhập với tài khoản mặc định:

  • Username: admin
  • Password: umami

Bước đầu tiên: Hãy đổi mật khẩu ngay lập tức. Vào Settings → Team để chỉnh sửa.

Bước 2: Thêm Website vào Umami

  1. Vào SettingsWebsites
  2. Nhấn + Add Website
  3. Điền thông tin:
  • Name: Tên website (ví dụ: “My Blog”)
  • Domain: Domain website (ví dụ: example.comkhông cần https://)
  1. Nhấn Save

Bước 3: Lấy Tracking Code

  1. Vào SettingsWebsites
  2. Nhấn Edit ở website vừa tạo
  3. Copy Tracking Code:
<script async defer src="https://your-umami-domain.com/umami.js" 
  data-website-id="00000000-0000-0000-0000-000000000000"></script>

Bước 4: Thêm Tracking Code vào Website

Thêm code trên vào phần <head> hoặc cuối <body> của website:

Nếu dùng WordPress:

  • Plugins → Code Snippets → hoặc chỉnh sửa theme’s header.php

Nếu dùng Astro/React/Vue:

  • Thêm vào layout chính hoặc component head

Nếu dùng HTML thuần:

<!DOCTYPE html>
<html>
<head>
  <title>My Website</title>
  <script async defer src="https://your-umami-domain.com/umami.js" 
    data-website-id="00000000-0000-0000-0000-000000000000"></script>
</head>
<body>
  <!-- Content -->
</body>
</html>

Bước 5: Xem Analytics Dashboard

Quay lại trang chủ Umami Dashboard, bạn sẽ thấy:

  • Realtime: Số lượng visitor hiện tại
  • Pageviews: Lượt truy cập trang
  • Visitors: Số lượng khách duy nhất
  • Bounce rate: Tỷ lệ rời trang
  • Referrers: Nguồn truy cập
  • Top pages: Trang được xem nhiều nhất
  • Devices/Browsers: Thông tin thiết bị
  • Countries/Languages: Vị trí địa lý

Theo dõi Custom Events

Umami không chỉ theo dõi pageviews tự động, bạn còn có thể theo dõi custom events (ví dụ: click button, form submission).

Thêm Custom Event Tracking

<!-- Tracking button click -->
<button onclick="umami.track('button_click', { button_name: 'subscribe' })">
  Subscribe
</button>

<!-- Tracking form submission -->
<form onsubmit="umami.track('form_submit', { form_name: 'contact_form' })">
  <!-- Form fields -->
</form>

<!-- Tracking custom action -->
<script>
document.addEventListener('DOMContentLoaded', function() {
  // Track video play
  document.getElementById('video').addEventListener('play', function() {
    umami.track('video_play', { video_title: 'My Video' });
  });
});
</script>

Mẹo tối ưu hóa Umami

1. Bảo mật Umami Instance

  • Thay đổi mật khẩu admin mặc định
  • Sử dụng SSL/TLS (HTTPS)
  • Giới hạn quyền truy cập bằng Nginx authentication
  • Cập nhật Umami thường xuyên

2. Tối ưu hóa Performance

  • Sử dụng PostgreSQL thay vì MySQL (nhanh hơn)
  • Bật caching nếu có nhiều traffic
  • Đặt data retention policy để xóa dữ liệu cũ

3. Theo dõi Hiệu quả

  • Sử dụng Goals để theo dõi mục tiêu chuyển đổi
  • Tạo Custom Events cho các hành động quan trọng
  • Sử dụng Filters để phân tích segment khác nhau

4. Tích hợp với các công cụ khác

  • Umami có API để tích hợp với n8n, Zapier, v.v.
  • Xuất dữ liệu để phân tích thêm

Umami là công cụ phân tích web hoàn hảo cho lập trình viên và chủ website muốn:

  • Kiểm soát dữ liệu hoàn toàn
  • Tuân thủ GDPR tự động
  • Không lo cookie consent
  • Miễn phí và mã nguồn mở
  • Setup đơn giản, track tự động

Nếu bạn đang tìm thay thế Google Analytics nhẹ nhàng, nhanh, và bảo vệ quyền riêng tư, Umami chính là lựa chọn tuyệt vời. Hãy bắt đầu cài đặt ngay hôm nay và nhận ra sức mạnh của phân tích web mã nguồn mở!

Duy Nghiện
Hãy làm khán giả, đừng làm nhân vật chính :)

You may also like

Nhận thông báo qua email
Nhận thông báo cho
guest

0 Bình luận
Mới nhất
Cũ nhất Nhiều like nhất
Phản hồi nội tuyến
Xem tất cả bình luận