Immich là gì – NAS Synology tự thay được Google Photos không?
Immich là phần mềm sao lưu ảnh/video mã nguồn mở, tự host ngay trên NAS của bạn thay vì đẩy hết lên cloud Google hay Apple. Nó giải quyết đúng hai nỗi đau quen thuộc: Google Photos bản free hết dung lượng lúc nào không hay, và cảm giác gai gai khi biết ảnh gia đình mình đang nằm trên server người khác, bị AI của họ quét đi quét lại.
Về tính năng, Immich làm được kha khá thứ:
- Tự backup ảnh/video từ app di động (Android/iOS) ngay khi chụp, kể cả lúc bạn không mở app — chạy nền như Google Photos thật sự.
- Nhận diện khuôn mặt, gom nhóm theo từng người, và tìm ảnh bằng ngôn ngữ tự nhiên kiểu "ảnh biển", "con chó" nhờ công nghệ CLIP smart search.
- Quản lý album, chia sẻ link công khai, xem ảnh theo bản đồ dựa trên GPS, timeline cuộn mượt giống hệt Google Photos.
- Hỗ trợ multi-user — cả nhà mỗi người một tài khoản, thư viện riêng hoặc gộp chung tuỳ ý.
Vài tình huống thực tế hay gặp: gia đình dùng hết 15GB free của Google, tháng nào cũng bị nhắc nâng cấp gói trả phí trong khi NAS ở nhà còn cả chục TB nằm không. Hoặc người dùng quan tâm privacy, không muốn ảnh riêng tư bị AI của Big Tech train qua train lại, quyết định chuyển hẳn thư viện ảnh về NAS tự quản. Dân chụp RAW dung lượng khủng cũng hay chọn Immich, vì Synology Photos — package có sẵn của DSM — làm face recognition và tìm kiếm khá yếu, không đáp ứng nổi nhu cầu lọc ảnh nhanh.
So với Synology Photos (ổn định, dễ cài nhưng AI/search yếu, tích hợp mobile chưa mượt) và Google Photos (tiện nhưng giới hạn dung lượng, dữ liệu nằm ở cloud bên thứ ba), Immich là lựa chọn gần trải nghiệm Google Photos nhất nếu bạn quyết tự host — đổi lại, phải tự tay cài đặt và bảo trì.
Vì sao chọn Container Manager thay vì Portainer hay Virtual Machine Manager
Từ DSM 7.2, Synology tích hợp sẵn tab "Project" trong Container Manager, cho phép import thẳng file docker-compose.yml mà không cần cài thêm gì. Nhiều bài hướng dẫn cũ (kiểu mariushosting) hay bảo cài thêm Portainer cho giao diện đẹp hơn — nhưng đó là lựa chọn thêm cho vui, không phải bước bắt buộc. DSM đời mới đã đủ dùng, khỏi rườm rà.
Chạy Immich trong Virtual Machine Manager (dựng máy ảo Ubuntu rồi cài Immich vào trong) cũng có người làm, nhưng tốn thêm RAM/CPU nuôi cả hệ điều hành khách, chỉ chạy được trên các dòng NAS hỗ trợ VMM (thường là Plus/XS đắt tiền), và backup/snapshot cũng rắc rối hơn vì không đồng bộ trực tiếp với storage NAS. Immich vốn đã đóng gói cực tốt dưới dạng container, không có lý do gì phải phức tạp hoá bằng VM.
| Tiêu chí | Container Manager | Portainer | Virtual Machine Manager |
|---|---|---|---|
| Cách cài | Có sẵn từ DSM 7.2 | Cài thêm ngoài | Phải dựng VM riêng |
| Tốn tài nguyên | Thấp | Thấp | Cao (nuôi cả OS khách) |
| Yêu cầu NAS | Mọi dòng hỗ trợ Docker | Mọi dòng hỗ trợ Docker | Chỉ dòng Plus/XS |
| Backup/snapshot | Đồng bộ trực tiếp NAS | Đồng bộ trực tiếp NAS | Rắc rối hơn |
| Độ phức tạp | Đơn giản | Thêm bước cài đặt | Phức tạp nhất |
Yêu cầu trước khi cài
- DSM 7.2 trở lên, đã cài app Container Manager từ Package Center.
- NAS chạy CPU x86 (Intel/AMD) — dòng ARM như DS223j không có Container Manager nên bỏ qua bài này luôn, không cách nào lách được.
- Dung lượng trống đủ chứa thư viện ảnh, cộng thêm khoảng 4GB cho lần tải image đầu tiên.
Các bước cài Immich trên Synology qua Container Manager
1. Tạo cấu trúc thư mục
Vào File Station, tạo thư mục theo cấu trúc chính thức:
/volume1/docker/immich-app/postgres
/volume1/docker/immich-app/librarypostgres chứa data database, library chứa ảnh gốc. Sau đó vào Control Panel → User & Group → chọn user bạn đang dùng để chạy Docker → Permissions → cấp quyền Read/Write cho thư mục docker. Bỏ qua bước này là nguyên nhân số 1 khiến container không chịu start — làm trước cho chắc, đỡ mất công dò lỗi sau.
2. Tải docker-compose.yml và .env
Tải hai file chính thức từ GitHub release mới nhất của Immich:
https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
https://github.com/immich-app/immich/releases/latest/download/example.envĐổi tên example.env thành .env, bỏ cả hai file vào /volume1/docker/immich-app/.
3. Chỉnh sửa file .env
Mở .env và sửa các biến quan trọng:
UPLOAD_LOCATION=/volume1/docker/immich-app/library
DB_DATA_LOCATION=/volume1/docker/immich-app/postgres
DB_PASSWORD=matkhaucuaban123
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
TZ=Asia/Ho_Chi_Minh
IMMICH_VERSION=releaseDB_PASSWORD chỉ nên dùng chữ và số, đừng chèn ký tự đặc biệt kiểu @#$% — Postgres kết nối lỗi vặt khó chịu lắm. Nếu NAS dùng ổ HDD (không phải SSD), thêm dòng DB_STORAGE_TYPE=HDD để Postgres tự tối ưu cho tốc độ đọc/ghi chậm hơn của ổ cứng cơ.
Lưu ý quan trọng: đổi DB_PASSWORD sau khi đã chạy container lần đầu không có tác dụng gì. Postgres chỉ đọc biến này lúc khởi tạo database lần đầu tiên. Muốn đổi sau đó, hoặc xoá volume DB làm lại từ đầu (mất sạch dữ liệu), hoặc đổi password trực tiếp trong Postgres bằng lệnh SQL. Vậy nên đặt mật khẩu cho tử tế ngay từ đầu — khỏi phải đau đầu về sau, cả nghĩa đen lẫn nghĩa bóng.
4. Tạo Project trong Container Manager
Mở Container Manager → tab Project → Create. Đặt tên project (ví dụ immich), trỏ đường dẫn tới thư mục /volume1/docker/immich-app/ chứa docker-compose.yml. DSM tự đọc file compose, hiện danh sách 4 service: immich-server, immich-machine-learning, redis, database. Bấm build & chạy.
Lần đầu chạy sẽ tải khoảng 4GB image, tuỳ tốc độ mạng có thể mất vài phút tới cả chục phút. Đừng sốt ruột tắt đi bật lại giữa chừng — cứ để nó chạy cho xong việc.
5. Cấu hình Firewall (nếu có bật)
Nếu bạn có bật Firewall trên DSM, thêm rule cho phép IP nội bộ của Docker network và port 2283. Mẹo nhỏ: đặt subnet cố định cho Docker network ngay từ đầu, vì IP nội bộ có thể đổi mỗi lần Container Manager rebuild container sau khi update — lúc đó rule firewall cũ hết khớp, lại phải sửa lại từ đầu.
6. Truy cập và tạo tài khoản admin
Mở trình duyệt, gõ http://<IP-NAS>:2283. Màn hình setup hiện ra, tạo tài khoản admin đầu tiên là xong phần server.
7. Cài app di động và bật auto-backup
Cài app Immich trên điện thoại (Android/iOS), trỏ URL server về địa chỉ NAS, đăng nhập bằng tài khoản vừa tạo, bật auto-backup. Từ giờ mỗi lần chụp ảnh, điện thoại tự đẩy về NAS kể cả khi không mở app — miễn điện thoại và NAS cùng mạng, hoặc bạn đã cấu hình truy cập từ xa.
Tinh chỉnh thêm sau khi cài xong
Vài thứ đáng làm sau khi Immich đã chạy ổn:
- Reverse proxy HTTPS: đừng mở thẳng port 2283 ra Internet để truy cập từ xa. Đặt Synology Reverse Proxy hoặc Nginx Proxy Manager phía trước, có SSL/TLS đàng hoàng.
- Tăng tốc phần cứng: nếu NAS có Intel iGPU, sửa compose để dùng
quicksync/vaapi, đồng thời đổi imageimmich-machine-learningsang tag có hậu tố-openvinođể tăng tốc AI xử lý ảnh. - Face recognition: vào Administration → Settings → Machine Learning Settings → Facial Recognition, chỉnh 3 tham số: Min Detection Score, Max Recognition Distance (để thấp thì khớp chặt, ít nhận nhầm người; để cao thì khớp lỏng hơn, dễ gộp nhầm hai người giống nhau), và Min Recognized Faces (số khuôn mặt tối thiểu để tạo một "Person" mới). Đổi xong nhớ chạy lại job "Facial Recognition - All", không thì cấu hình mới chẳng có tác dụng gì với ảnh cũ.
Lỗi thường gặp khi cài Immich trên Synology
- Container không start, báo lỗi permission: 99% là do user NAS thiếu quyền Read/Write trên thư mục
docker. Vào lại Control Panel → User & Group → Permissions cấp quyền cho đúng user đang chạy Docker. - Redis crash trên các dòng DS220+, DS920+, DS720+, DS423+: mấy model này từng dính bug với image
redisbản mới nhất. Docker-compose chính thức hiện đã chuyển sang dùngvalkey/valkey:9, nhưng nếu bạn dùng compose cũ hơn có ghiredis, kiểm tra và ghim vềredis:6hoặc cập nhật sang bản valkey mới. - immich-machine-learning ăn CPU 99%, NAS ì ạch: đặc biệt rõ trên các model 2 nhân yếu như dòng dùng Celeron hay Ryzen Embedded R1600 (ví dụ DS923+). Cân nhắc giảm concurrency của ML, chạy job nhận diện ngoài giờ, hoặc offload machine learning sang một máy khác qua cấu hình remote machine learning URL.
- Lỗi healthcheck không tương thích: nếu Container Manager đang chạy Docker Engine bản cũ hơn 25, phần
healthchecktrong docker-compose.yml có thể gây lỗi. Giải pháp tạm là comment phần healthcheck lại.
Bảo mật và bảo trì lâu dài
Immich chạy trên Synology hiện là giải pháp do cộng đồng hỗ trợ, không phải kênh chính thức của team Immich. Trước mỗi lần update, đọc kỹ release note, backup ảnh và volume Postgres trước khi nâng version — đừng bấm update rồi mới lo, lỡ có gì còn quay đầu kịp.
Đừng bao giờ để port 2283 lộ thẳng ra Internet. Luôn đặt sau reverse proxy HTTPS có xác thực. Và nhớ Immich lưu cả ảnh gốc lẫn database trên cùng một NAS, nên cần chiến lược backup riêng cho cả hai thư mục library và postgres bằng Hyper Backup hoặc snapshot. Mất một trong hai, khôi phục xong thư viện ảnh có khi vẫn thiếu trước hụt sau. Ổ cứng thì trước sau gì cũng hỏng — vấn đề chỉ là nó có chọn đúng lúc bạn lười backup hay không thôi.



No comments yet