SELF HOSTING

PostHog: Hướng dẫn cài đặt self-hosted với Docker trên Ubuntu

PostHog là nền tảng phân tích sản phẩm mã nguồn mở toàn diện, được thiết kế đặc biệt cho các kỹ sư sản phẩm và nhóm phát triển. Nền tảng này tích hợp nhiều công cụ quan trọng trong một hệ sinh thái duy nhất, giúp đơn giản hóa quy trình phát triển sản phẩm và đưa ra quyết định dựa trên dữ liệu.

Tính năng chính của PostHog

  • Product Analytics: Theo dõi và phân tích hành vi người dùng với các biểu đồ trực quan, funnel analysis và cohort tracking.
  • Session Replay: Ghi lại và phát lại toàn bộ phiên làm việc của người dùng để hiểu rõ cách họ tương tác với sản phẩm.
  • Feature Flags: Quản lý việc triển khai tính năng mới một cách an toàn và linh hoạt.1
  • A/B Testing/Experiments: Thử nghiệm các phiên bản khác nhau của sản phẩm để tối ưu hóa chuyển đổi.
  • Error Tracking: Theo dõi và quản lý lỗi trong ứng dụng.
  • Surveys: Thu thập phản hồi từ người dùng thông qua các khảo sát tùy chỉnh.
  • Data Warehouse & Pipelines: Tích hợp với hơn 120 nguồn dữ liệu khác nhau.

Use Cases Thực tế

1. Theo dõi Performance Marketing Campaigns

PostHog có thể theo dõi hiệu quả của các chiến dịch marketing thông qua UTM parameters và phân tích toàn bộ customer journey từ ads đến conversion. Công ty Pry đã sử dụng PostHog để so sánh giá trị của khách hàng từ quảng cáo trả phí với khách hàng organic, từ đó tối ưu hóa chiến lược quảng cáo.

2. Phân tích Retrospective Data

Không giống như các công cụ analytics truyền thống, PostHog cho phép phân tích dữ liệu ngược lại nhờ tính năng autocapture. MentionMe đã sử dụng tính năng này để định nghĩa events mới và xem dữ liệu lịch sử ngay lập tức thay vì phải chờ hàng tháng.

3. A/B Testing cho Optimization

Các công ty như Y Combinator và ResearchGate sử dụng PostHog để chạy experiments nhằm cải thiện conversion rates và user experience. Với feature flags tích hợp, họ có thể test các variant khác nhau một cách an toàn.

4. Session Replay cho User Experience

Phantom sử dụng session replay để theo dõi failure rates trong payment process, giúp ưu tiên cập nhật infrastructure. Việc kết hợp session replay với funnel analysis giúp hiểu rõ lý do người dùng drop-off.

5. Feature Development và Rollout

PostHog sử dụng chính nền tảng của mình để phát triển tính năng mới. Họ áp dụng quy trình 4 bước: MVP testing với feature flags → Beta testing → Wider launch → Usage monitoring, đảm bảo mỗi tính năng đều được validate kỹ lưỡng trước khi release.

Yêu cầu Hệ thống

Trước khi cài đặt PostHog self-hosted, bạn cần đảm bảo đáp ứng các yêu cầu sau:

Phần cứng tối thiểu

  • CPU: 4 vCPU
  • RAM: 16GB (tối thiểu 4GB nhưng khuyến nghị 16GB)
  • Storage: Tối thiểu 30GB (khuyến nghị 100GB cho dữ liệu observability)
  • Network: Kết nối internet ổn định

Phần mềm

  • OS: Ubuntu 20.04 LTS hoặc 22.04 LTS
  • Domain: Một domain name với A record trỏ về IP của server
  • SSL: PostHog sẽ tự động tạo SSL certificate thông qua LetsEncrypt

Hướng dẫn cài đặt chi tiết

Phương pháp 1: Sử dụng Script Tự động (Khuyến nghị)

Bước 1: Chuẩn bị Server

Kết nối vào Ubuntu server của bạn thông qua SSH:

ssh username@your-server-ip

Bước 2: Chạy Script Cài đặt Tự động

PostHog cung cấp một script tự động hóa toàn bộ quá trình cài đặt:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/posthog/posthog/HEAD/bin/deploy-hobby)"

Script sẽ hỏi các thông tin sau:

  • Version tag: Nhấn Enter để sử dụng ‘latest’ hoặc nhập version cụ thể
  • Domain: Nhập domain name (ví dụ: analytics.yourdomain.com)
  • Sudo password: Nhập password sudo để script có quyền cài đặt

Bước 3: Theo dõi Quá trình Cài đặt

Script sẽ tự động thực hiện:

  • Cài đặt Docker và Docker Compose
  • Clone PostHog repository
  • Tạo các file cấu hình cần thiết
  • Download GeoIP database
  • Khởi động tất cả containers
  • Tạo SSL certificates

Quá trình này mất khoảng 5-10 phút. Khi hoàn tất, bạn sẽ thấy thông báo:

🎉🎉🎉  Done! 🎉🎉🎉
PostHog will be up at the location you provided!
https://your-domain.com

Phương pháp 2: Cài đặt Manual với Docker Compose

Bước 1: Cài đặt Docker

# Update package index
sudo apt update

# Install dependencies
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

# Add Docker GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# Add Docker repository
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

# Install Docker
sudo apt update
sudo apt install -y docker-ce

# Add user to docker group
sudo usermod -aG docker $USER
newgrp docker

Bước 2: Cài đặt Docker Compose

sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Bước 3: Clone PostHog Repository

git clone https://github.com/PostHog/posthog.git
cd posthog

Bước 4: Tạo File Cấu hình

Tạo file .env:

cat > .env <<EOF
POSTHOG_SECRET=$(head -c 28 /dev/urandom | sha224sum -b | head -c 56)
ENCRYPTION_SALT_KEYS=$(openssl rand -hex 16)
DOMAIN=your-domain.com
POSTHOG_APP_TAG=latest
SESSION_RECORDING_V2_METADATA_SWITCHOVER=$(date -Iseconds)
EOF

Bước 5: Download GeoIP Database

mkdir -p ./share
curl -L 'https://mmdbcdn.posthog.net/' --http1.1 | brotli --decompress --output=./share/GeoLite2-City.mmdb
echo '{"date": "'$(date +%Y-%m-%d)'"}' > ./share/GeoLite2-City.json
chmod 644 ./share/GeoLite2-City.*

Bước 6: Khởi động PostHog

# Copy docker compose files
cp docker-compose.base.yml docker-compose.base.yml
cp docker-compose.hobby.yml docker-compose.yml

# Start the stack
docker-compose up -d

Cấu hình và tùy chỉnh

Cấu hình Environment Variables

PostHog hỗ trợ nhiều biến môi trường để tùy chỉnh. Một số quan trọng:

# Security
POSTHOG_SECRET=your-secret-key
ENCRYPTION_SALT_KEYS=your-encryption-keys

# Database
DATABASE_URL=postgres://posthog:posthog@db:5432/posthog

# Redis
REDIS_URL=redis://redis:6379/

# Email (tùy chọn)
EMAIL_HOST=smtp.yourdomain.com
EMAIL_PORT=587
[email protected]
EMAIL_HOST_PASSWORD=your-password

# Storage (tùy chọn)
OBJECT_STORAGE_ENABLED=true
OBJECT_STORAGE_ENDPOINT=https://s3.amazonaws.com
OBJECT_STORAGE_ACCESS_KEY_ID=your-access-key
OBJECT_STORAGE_SECRET_ACCESS_KEY=your-secret-key

Cấu hình Reverse Proxy (Tùy chọn)

Nếu chạy PostHog sau reverse proxy, cần cấu hình:

# Trong file .env
IS_BEHIND_PROXY=True
TRUSTED_PROXIES=192.168.1.1,10.0.0.1
ALLOWED_HOSTS=your-domain.com,proxy-domain.com

Kiểm tra và Troubleshooting

Kiểm tra Trạng thái Containers

docker ps

Bạn sẽ thấy các containers sau đang chạy:

  • posthog-web
  • posthog-worker
  • posthog-plugins
  • posthog-db (PostgreSQL)
  • posthog-redis
  • posthog-clickhouse
  • posthog-kafka
  • posthog-zookeeper

Xem Logs

# Xem logs tất cả containers
docker-compose logs

# Xem logs container cụ thể
docker-compose logs web
docker-compose logs worker

Kiểm tra Health

Truy cập https://your-domain.com/_health để kiểm tra trạng thái hệ thống.

Backup và Bảo trì

Backup Dữ liệu

# Backup PostgreSQL
docker-compose exec db pg_dump -U posthog posthog > posthog_backup.sql

# Backup ClickHouse
docker-compose exec clickhouse clickhouse-client --query "BACKUP DATABASE posthog TO Disk('backups', 'posthog_backup')"

Cập nhật PostHog

# Sử dụng script update
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/posthog/posthog/HEAD/bin/upgrade-hobby)"

Monitoring Resources

# Kiểm tra usage
docker stats

# Kiểm tra disk space
df -h

# Kiểm tra memory
free -h

Bảo mật

SSL/TLS

PostHog tự động tạo và gia hạn SSL certificates thông qua LetsEncrypt.

Firewall

Chỉ mở các port cần thiết:

  • 443: HTTPS
  • 22: SSH (tùy chọn)
  • 80: HTTP (redirect to HTTPS)
sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable

Database Security

  • Thay đổi default passwords
  • Sử dụng strong POSTHOG_SECRET và ENCRYPTION_SALT_KEYS
  • Backup thường xuyên

PostHog self-hosted trên Docker cung cấp một giải pháp analytics mạnh mẽ và linh hoạt cho các team muốn kiểm soát hoàn toàn dữ liệu của mình. Với hướng dẫn chi tiết trên, bạn có thể triển khai thành công PostHog và bắt đầu thu thập insights có giá trị về hành vi người dùng.

Việc self-host PostHog đặc biệt phù hợp với các tổ chức có yêu cầu về data privacy, cần tùy chỉnh sâu hoặc muốn tiết kiệm chi phí khi scale lớn. Tuy nhiên, cần cân nhắc về effort vận hành và bảo trì so với việc sử dụng PostHog Cloud.

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