
Trả lời nhanh: Immich là ứng dụng quản lý ảnh mã nguồn mở giống Google Photos đến từng cử chỉ: app iOS/Android tự sao lưu ảnh khi cắm sạc, timeline cuộn mượt, tìm theo khuôn mặt và nội dung (nhờ machine learning chạy ngay trên máy bạn), album chia sẻ cho người thân. Dựng bằng bộ Docker Compose chính chủ trên VPS 4GB RAM trở lên, ảnh nằm trên ổ của bạn, không giới hạn 15GB, không ai nén chất lượng.
Trong cả làng self-host, Immich là dự án tăng trưởng ấn tượng nhất, lượng tìm kiếm ở Việt Nam tăng 65 lần trong 4 năm, vì nó đánh trúng nỗi đau phổ quát nhất: 15GB Google free cạn nhanh hơn tốc độ đẻ ảnh của một chiếc điện thoại, và gói mở rộng là thuê bao trọn đời. Bài này dựng Immich hoàn chỉnh: compose, app điện thoại, nhập kho ảnh cũ từ Google Takeout, và phần quan trọng nhất với ảnh gia đình, backup.
- Trải nghiệm ngang Google Photos: auto-backup, timeline, tìm mặt người, bản đồ, album chia sẻ
- Stack compose chính chủ: server + machine learning + Postgres + Redis, 4GB RAM trở lên
- App điện thoại chính chủ trên cả hai chợ; nhiều người dùng, mỗi người kho riêng
- Nhập ảnh cũ từ Google Takeout bằng immich-go, giữ ngày chụp, album
- Ảnh gia đình là dữ liệu không đền được: backup offsite là phần bắt buộc của bài
Dựng Immich bằng compose chính chủ
mkdir immich && cd immich
wget https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
# sua .env: UPLOAD_LOCATION (noi chua anh), DB_PASSWORD
docker compose up -dStack gồm 4 dịch vụ: immich-server (API + web), immich-machine-learning (nhận diện mặt, tìm theo nội dung), Postgres và Redis. Mở http://IP:2283, tạo tài khoản admin đầu tiên, xong phần server trong 10 phút. Lưu ý phiên bản: Immich phát triển rất nhanh, đôi khi có thay đổi cấu trúc giữa các bản, đọc release notes trước khi update (thói quen đã dạy ở bài Supabase, áp nguyên).
App điện thoại: auto-backup như Google Photos
Cài app Immich (App Store/Google Play), đăng nhập bằng địa chỉ server + tài khoản vừa tạo. Bật Backup: chọn album cần sao lưu, bật chạy nền, từ đó ảnh chụp mới tự đẩy lên server (thiết lập chỉ sao lưu qua wifi/khi sạc tùy bạn). Truy cập từ ngoài nhà đi một trong hai đường quen của series: tailnet (an toàn nhất, server điền IP 100.x, chỉ nhà mình thấy) hoặc domain công khai qua reverse proxy khi muốn chia sẻ album cho người ngoài bằng link. Mỗi thành viên gia đình một tài khoản riêng, kho ai nấy giữ, album chia sẻ là nơi gặp nhau.
Chuyển kho ảnh cũ từ Google về
Kho 10 năm nằm bên Google? Xuất bằng Google Takeout (lấy cả metadata JSON), rồi nhập bằng công cụ cộng đồng immich-go: nó đọc cấu trúc Takeout, giữ ngày chụp, album, và bỏ qua trùng lặp:
immich-go -server=http://IP:2283 -key=API_KEY upload -google-photos /duong-dan/takeout-*.zipKho vài trăm GB nhập mất vài giờ đến một đêm, chạy trong tmux cho yên tâm. Sau nhập, machine learning tự quét dần: vài ngày sau mở tab People sẽ thấy các khuôn mặt tự gom cụm, gõ tìm kiếm nội dung như một buổi thử phép thuật.
Phần cứng: ảnh là bài toán I/O
Immich là app nặng nhất series này, và nặng đúng chỗ NVMe tỏa sáng: thumbnail, hàng chục nghìn ảnh sinh thumbnail khi nhập, ổ chậm là tiến trình bò cả ngày; timeline, cuộn mượt hay giật phụ thuộc tốc độ đọc loạt file nhỏ; machine learning, quét ảnh liên tục lúc nhập kho. RAM: 4GB cho riêng Immich là mức êm (tắt bớt ML lúc đầu nếu chật, bật lại sau). Dung lượng tính đơn giản: bằng kho ảnh hiện tại + đà tăng 2-3 năm, kho ảnh là dữ liệu chỉ có phình.
Backup: phần không được phép lười
Ảnh gia đình mất là mất vĩnh viễn, không tiền nào đền. Kỷ luật ba dòng: (1) UPLOAD_LOCATION + database là hai thứ phải backup (dump Postgres theo bài backup database, thư mục ảnh rsync/restic); (2) bản sao rời máy, sang VPS thứ hai/NAS nhà qua tailnet như mô hình đã dựng nhiều lần trong series Tailscale; (3) điện thoại giữ ảnh gốc thêm một thời gian sau khi backup (đừng bật xóa ảnh máy vội) cho đến khi bạn đã restore thử thành công một lần. Chi tiết tự động hóa cả cụm nằm ở bài vận hành chung.
Phần cứng: ảnh là bài toán ổ đĩa
| Kho ảnh của bạn | Dung lượng cần | Bộ nhớ | Ghi chú |
|---|---|---|---|
| Dưới 20.000 ảnh | Dung lượng ảnh nhân 1,3 | 4 GB | Phần dư dành cho ảnh thu nhỏ |
| 20.000 tới 100.000 ảnh | Dung lượng ảnh nhân 1,3 | 8 GB | Lần quét đầu tiên chạy nhiều giờ |
| Trên 100.000 ảnh, có video | Dung lượng nhân 1,4 | 16 GB | Nên tách ổ dữ liệu riêng |
Hệ số 1,3 là phần ảnh thu nhỏ và dữ liệu nhận diện sinh thêm. Người dựng hay tính đúng bằng dung lượng ảnh rồi hết chỗ sau lần quét đầu.
Kiểm sau khi dựng
# Cac thanh phan da chay chua docker compose ps # Qua trinh quet thu vien dang toi dau docker compose logs -f --tail=50 immich-server | grep -i "job\|thumbnail" # O dia va bo nho trong luc quet watch -n5 'df -h /; free -h' # Co so du lieu song chua docker compose exec database pg_isready
Sao lưu, phần không được phép lười
# 1. Co so du lieu, chua toan bo thong tin album, nhan dien, chia se docker compose exec -T database pg_dump -U postgres immich \ > /sao-luu/immich-db-$(date +%F).sql # 2. Anh goc. KHONG can sao luu thu muc anh thu nho, no sinh lai duoc rsync -a --delete ./library/upload/ /sao-luu/anh-goc/ # 3. Day ra o ngoai hoac may khac rsync -avz /sao-luu/ may-luu-tru:/kho/anh/
Điểm quan trọng: sao lưu ảnh gốc mà quên cơ sở dữ liệu thì khôi phục xong sẽ có ảnh nhưng mất sạch album, nhãn người và liên kết chia sẻ. Hai phần phải đi cùng nhau.
Ba việc trước khi tin tưởng giao kho ảnh gia đình
- Khôi phục thử một lần trên máy khác, đếm số ảnh, mở thử vài album.
- Giữ bản sao ở nơi khác máy chủ, tốt nhất là khác địa điểm. Kho ảnh gia đình mất là mất vĩnh viễn.
- Đừng xóa ảnh khỏi điện thoại ngay trong vài tháng đầu, cho tới khi bạn đã khôi phục thử thành công ít nhất một lần.
Câu hỏi thường gặp
Immich có thật sự ngang Google Photos không?
Về trải nghiệm hằng ngày (backup, timeline, tìm kiếm, chia sẻ): rất gần, và tiến bộ theo từng tháng. Kém hơn ở các tính năng AI chỉnh sửa ảnh và độ bóng bẩy tuyệt đối; hơn ở chỗ không giới hạn dung lượng, không nén, và ảnh là của bạn.
Tìm theo khuôn mặt có gửi ảnh đi đâu không?
Không, machine learning chạy ngay trong container trên VPS của bạn, model tải về máy. Đây là điểm khác biệt riêng tư lớn nhất so với dịch vụ cloud: ảnh không rời server.
VPS 4GB chạy Immich kèm app khác được không?
Chật, Immich lúc nhập kho + ML chiếm phần lớn 4GB. Chiến lược: 4GB chạy mình Immich giai đoạn nhập kho, xong xuôi ML nhàn hơn thì thêm app nhẹ; hoặc lên 8GB cho cả cụm 5 app thong thả.
Video có backup được không?
Được, Immich xử lý cả video, kèm transcode để phát mượt trên điện thoại. Video ăn dung lượng và CPU transcode đáng kể; kho nhiều video thì cộng thêm ổ và ưu tiên NVMe.
Bài viết liên quan
- Một VPS thay 5 dịch vụ thuê bao: tự host tiết kiệm gì?
- Truy cập NAS, Jellyfin, Home Assistant từ xa không mở port
- Backup database đúng cách: dump, WAL và PITR trên VPS
- Stable Diffusion + Flux trên GPU VPS với ComfyUI
- Anthropic API: đăng ký, giá token và ước tính chi phí
- WireGuard vs Tailscale cho vibe coder - chọn nào khi laptop làm việc với VPS đa khu vực
- Code-server VS Code trên VPS: workflow remote dev cho freelancer
- codex --dangerously-bypass-approvals-and-sandbox
- Claude Code là gì? AI viết code trong terminal thay bạn



