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ứ ba và khô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í | Umami | Google Analytics |
|---|---|---|
| Quyền riêng tư | Không cookie, GDPR-compliant | Cần cookie banner, yêu cầu consent |
| Giá thành | Miễn phí (tự host) | Miễn phí (nhưng collect dữ liệu quảng cáo) |
| Kiểm soát dữ liệu | Dữ liệu ở server riêng của bạn | Dữ liệu ở Google |
| Tốc độ | Nhẹ nhàng, nhanh | Nặng, ảnh hưởng tốc độ trang |
| Dễ thiết lập | Đơn giản, tự động tracking | Phức tạp, cần cấu hình nhiều |
| Real-time analytics | Có | Có |
| Custom events | Có | Có |
| Reports | Cơ bản nhưng đầy đủ | Rất chi tiết |
Umami thắng ở quyề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:
- Node.js: Phiên bản 18.18 trở lên (khuyến nghị v20+)
- 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
- Docker (tùy chọn): Để triển khai nhanh bằng Docker Compose
- 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 umamiBướ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 -dKiểm tra trạng thái:
docker-compose psUmami 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 --versionBướ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 psqlTrong PostgreSQL shell:
CREATE DATABASE umami;
CREATE USER umami_user WITH PASSWORD 'your_secure_password';
GRANT ALL PRIVILEGES ON DATABASE umami TO umami_user;
\qBước 3: Clone Umami repository
git clone https://github.com/umami-software/umami.git
cd umamiBước 4: Cài đặt pnpm (package manager của Umami)
npm install -g pnpmBước 5: Cài đặt dependencies
pnpm installBước 6: Cấu hình biến môi trường
Tạo file .env trong thư mục root:
cp .env.example .envChỉ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=productionBước 7: Build và chạy Umami
# Build ứng dụng
pnpm build
# Chạy Umami
pnpm startHoặc sử dụng PM2 để chạy ở background:
pm2 start pnpm --name "umami" -- start
pm2 save
pm2 startupCá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
- Vào Settings → Websites
- Nhấn + Add Website
- Điền thông tin:
- Name: Tên website (ví dụ: “My Blog”)
- Domain: Domain website (ví dụ:
example.com– không cầnhttps://)
- Nhấn Save
Bước 3: Lấy Tracking Code
- Vào Settings → Websites
- Nhấn Edit ở website vừa tạo
- 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ở!











