Cài Immich trên Synology NAS: thay Google Photos, ảnh về nhà bạn

Cài Immich trên Synology NAS: thay Google Photos, ảnh về nhà bạn

Hướng dẫn cài Immich trên Synology NAS bằng Container Manager: dựng 4 container, tạo tài khoản, cài app điện thoại tự sao lưu ảnh, bật AI tìm ảnh & nhận diện khuôn mặt — kèm ảnh thật từng bước ở cả NAS lẫn app, và các lỗi thường gặp.

Google Photos cắt gói lưu trữ miễn phí từ lâu, chuyện đó ai cũng thấm. Nhưng cái đau thật sự không phải là cái ngày nó báo đầy 15GB — mà là cảm giác toàn bộ ký ức 10 năm của gia đình đang nằm trên server của một công ty ở tận đâu, và mỗi tháng bạn phải trả tiền để... được nhìn lại ảnh của chính mình. Immich sinh ra để chấm dứt cái nghịch lý đó: một bản sao Google Photos gần như y hệt — timeline, tìm bằng chữ, nhận diện khuôn mặt, app điện thoại tự sao lưu — nhưng mọi tấm ảnh nằm gọn trên ổ cứng NAS trong nhà bạn.

Bài này không phải kiểu "copy docker-compose rồi cầu trời cho nó chạy". Mình dựng Immich thật trên Synology (Container Manager), chụp lại từng màn hình ở cả NAS lẫn app điện thoại, và chỉ ra đúng những chỗ người mới hay vấp — firewall, phân quyền, RAM, và cái bẫy update database khiến không ít người mất cả thư viện. Đọc hết là cài được, không cần mở thêm 20 tab StackOverflow.

Bảng so sánh Immich với Google Photos và Synology Photos: chi phí, dung lượng, riêng tư, AI, backup

Immich là gì mà dân NAS rủ nhau bỏ Google Photos?

Immich là phần mềm quản lý ảnh/video mã nguồn mở, bạn tự cài lên NAS và dùng nó thay Google Photos. Trải nghiệm gần như không khác: mở app lên là thấy timeline ảnh cuộn theo ngày tháng, gõ một từ là ra đúng ảnh, mở tab People là thấy ảnh gom theo từng người trong nhà. Khác biệt duy nhất — và cũng là lý do người ta chuyển — là đích đến của mọi tấm ảnh là ổ cứng nhà bạn, không phải server của Google.

Đây là giao diện web của Immich sau khi mình sao lưu vài chục tấm lên. Nhìn quen chứ? Đó là chủ đích của Immich — để bạn không phải học lại gì cả:

Giao diện timeline của Immich trên web, ảnh xếp theo ngày tháng, giống Google Photos

Tìm ảnh bằng chữ (Smart Search). Không cần gắn tag, không cần đặt tên file. Gõ "phở" là Immich lôi ra mấy tô phở, gõ "bãi biển" là ra ảnh biển. Nó dùng mô hình AI CLIP chạy ngay trên NAS để "hiểu" nội dung ảnh — và vâng, xử lý hết cục bộ, không gửi ảnh của bạn đi đâu:

Tìm ảnh bằng chữ trong Immich: gõ "phở" ra đúng ảnh tô phở

Nhận diện khuôn mặt. Immich tự quét, gom các tấm có cùng một người về một cụm; bạn chỉ việc đặt tên (ví dụ "Lan Nguyễn") là từ đó lọc mọi ảnh có người đó chỉ bằng một cú chạm. Đúng kiểu Google Photos, chỉ khác là dữ liệu khuôn mặt người thân không rời khỏi nhà bạn:

Trang People trong Immich gom ảnh theo từng người, đã đặt tên Lan Nguyễn

Bản đồ ảnh. Ảnh có toạ độ GPS sẽ được ghim lên bản đồ — mở tab Bản đồ là thấy chuyến đi Đà Lạt, Nha Trang, Hạ Long nằm đúng chỗ. Bấm vào ảnh còn xem được đủ EXIF: máy chụp, ngày giờ, vị trí:

Bản đồ ảnh trong Immich, các ảnh có GPS được ghim lên bản đồ Việt Nam

Ngoài ra còn có album, chia sẻ album cho người ngoài xem bằng link (không cần họ có tài khoản), sao lưu ảnh trùng lặp thông minh, thùng rác, ảnh yêu thích... Nói ngắn gọn: gần như mọi thứ bạn quen ở Google Photos, Immich đều có — và phần lớn là miễn phí.

Immich vs Google Photos vs Synology Photos: khác nhau chỗ nào?

Nhiều người thắc mắc: "NAS Synology có sẵn Synology Photos rồi, cài Immich làm gì?". Câu trả lời nằm ở AI và tốc độ phát triển. Synology Photos rất ổn, chạy nhẹ, tích hợp sâu vào DSM — nhưng phần tìm kiếm ngữ nghĩa và nhận diện khuôn mặt của Immich nhỉnh hơn rõ, và Immich cập nhật tính năng mới nhanh như vũ bão. Đổi lại, Immich ăn RAM hơn và bạn phải tự bảo trì.

So với Google Photos thì công bằng mà nói: bạn đánh đổi sự tiện lợi "cắm là chạy, có đội kỹ sư Google lo" để lấy quyền sở hữu dữ liệu 100%dung lượng chỉ giới hạn bởi ổ cứng. Không ai âm thầm quét ảnh con bạn để train mô hình, cũng không còn hoá đơn hàng tháng. Cái giá là: backup, update, sửa lỗi giờ là việc của bạn.

Nếu bạn còn phân vân giữa Immich và giải pháp "chính chủ" nhẹ nhàng hơn, đọc thêm bài Synology Photos sao lưu ảnh điện thoại để cân nhắc. Nhiều người dùng cả hai: Synology Photos cho vợ/bố mẹ dùng cho đơn giản, Immich cho bản thân vọc AI.

Immich chạy thế nào trên NAS? (hiểu 4 "container" trước khi cài)

Trước khi bấm nút, hiểu sơ nó gồm những gì sẽ giúp bạn debug nhanh gấp mười lần khi có sự cố. Immich không phải một app đơn lẻ, mà là 4 container Docker làm việc cùng nhau:

Sơ đồ kiến trúc Immich: điện thoại gửi ảnh về immich-server, lưu vào Postgres/Redis/ML và ổ cứng NAS
  • immich-server — bộ não, nhận ảnh từ app và phục vụ giao diện web ở cổng 2283.
  • immich-machine-learning — chạy AI: nhận diện khuôn mặt và tìm kiếm ngữ nghĩa (CLIP). Đây là thằng ăn RAM nhất.
  • database — PostgreSQL (kèm extension VectorChord để tìm bằng vector). Lưu metadata: ai, ở đâu, khi nào — không lưu ảnh gốc.
  • redis/valkey — bộ nhớ đệm và hàng đợi xử lý.

Ảnh gốc của bạn không nằm trong database — chúng nằm nguyên dạng file trong thư mục library trên ổ cứng. Đây là điểm cực kỳ an tâm: kể cả một ngày đẹp trời Immich có dở chứng, ảnh của bạn vẫn là file JPG/HEIC bình thường, copy ra là dùng được.

Vì sao dùng Container Manager, không phải máy ảo?

Trên Synology có hai đường chạy Immich: dựng máy ảo (Virtual Machine Manager) rồi cài Docker bên trong, hoặc dùng thẳng Container Manager với tính năng Project (đọc file docker-compose.yml). Bài này đi đường thứ hai — cũng là cách docs.immich.app khuyến nghị chính thức cho Synology:

Tiêu chíContainer ManagerMáy ảo (VMM)
Cách chạy ImmichProject (compose)VM + cài Docker bên trong
Immich khuyến nghị chính thứcKhông
Tốn thêm lớp ảo hoá (RAM/CPU)Không
Cập nhật, backupĐơn giảnPhức tạp hơn

Container Manager từ DSM 7.2 đọc trực tiếp compose file, không cần cài thêm plugin. Nếu bạn từng dùng Portainer thì càng quen — nhưng với Immich, Container Manager tự lo được hết.

Chuẩn bị: máy của bạn có "gánh" nổi Immich không?

  • DSM 7.2 trở lên — bắt buộc, vì tính năng Project (compose native) chỉ có từ bản này. Chưa lên thì đọc hướng dẫn cập nhật DSM trước.
  • RAM tối thiểu ~4GB, khuyến nghị 6GB+. Immich chạy 4 container cùng lúc; thiếu RAM là swap liên tục, chậm rề. Con máy đời J-series 2 nhân RAM ít sẽ khá vất, nhất là phần machine learning.
  • CPU x86-64. Vài dòng entry-level ARM có thể không chạy nổi phần AI — nhận diện khuôn mặt và smart search đều cần CPU kha khá.
  • Gói Container Manager cài sẵn từ Package Center (tên cũ là Docker, đổi tên từ DSM 7.2).

Một lời nói thẳng: đây là "community guide", đội Immich không chính thức support Synology. Vẫn chạy tốt, vẫn là cách cộng đồng dùng nhiều nhất, nhưng khi gặp lỗi lạ thì lên Discord/GitHub của Immich mà hỏi — và đừng bao giờ nhắm mắt kéo version mới nhất khi chưa đọc Upgrade Guide. Thư viện ảnh cả nhà không phải chỗ để thử vận may.

Cài đặt Immich từng bước trên Synology

Bước 1 — Tạo cấu trúc thư mục

Mở File Station, tạo thư mục docker/immich-app, bên trong tạo thêm 2 thư mục con postgreslibrary. Toàn bộ hệ thống nằm gọn trong /volume1/docker/immich-app/ — dễ backup, dễ tìm khi cần dọn dẹp về sau. (Shared folder docker sẽ được Container Manager tạo tự động ở lần chạy đầu nếu chưa có.)

Bước 2 — Tải docker-compose.yml và .env về NAS

Đây là 2 file "công thức" để Container Manager biết cần dựng những gì. Lấy chúng ở trang Releases chính thức của Immich (bản ổn định, không lấy file ở nhánh main vì đó là bản dev hay lỗi):

  • Mở: https://github.com/immich-app/immich/releases/latest
  • Kéo xuống mục Assets — bạn sẽ thấy docker-compose.ymlexample.env.

Có 2 cách đưa 2 file này vào thư mục docker/immich-app trên NAS. Chọn 1 trong 2:

Cách 1 — Dễ nhất, không cần gõ lệnh (khuyến nghị cho người mới). Trên máy tính, tải 2 file về (bấm chuột phải vào tên file trong mục Assets → Save link as…, hoặc dùng 2 link tải trực tiếp bên dưới). Sau đó mở File Station trên DSM, vào thư mục docker/immich-app vừa tạo, bấm nút Upload để đẩy 2 file lên NAS.

# Link tải trực tiếp bản mới nhất (dán vào trình duyệt là tải ngay)
https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
https://github.com/immich-app/immich/releases/latest/download/example.env

Cách 2 — Nhanh gọn nếu bạn đã bật SSH. SSH vào NAS rồi tải thẳng vào thư mục, khỏi vòng qua máy tính:

cd /volume1/docker/immich-app
sudo wget https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
# tải luôn ra tên .env cho tiện (khỏi phải đổi tên ở bước dưới)
sudo wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env

Nếu bạn đi Cách 1, nhớ đổi tên example.env thành .env. Mẹo hay bị bỏ qua: File Station không cho mở file bắt đầu bằng dấu chấm bằng Text Editor. Cách lách: cứ sửa nội dung khi nó còn tên example.env (hoặc đổi tạm thành env.txt), xong xuôi mới đổi lại thành .env. Quên bước đổi tên thì container vẫn chạy lên bình thường, chỉ có điều nó đọc biến môi trường trớt quớt — và bạn sẽ ngồi debug cả buổi mới nhớ ra thủ phạm là cái tên file.

Bước 3 — Sửa file .env

Mở .env và chỉnh mấy dòng quan trọng, đừng để nguyên giá trị mẫu:

# Nơi lưu ẢNH GỐC của bạn — trỏ vào thư mục library vừa tạo
UPLOAD_LOCATION=/volume1/docker/immich-app/library

# Nơi lưu database — phải là ổ nội bộ, KHÔNG để trên thư mục mạng
DB_DATA_LOCATION=/volume1/docker/immich-app/postgres

# Đổi mật khẩu database — ĐỪNG để "postgres" mặc định
DB_PASSWORD=DatMatKhauMoiCuaBan

# Múi giờ cho đúng ngày giờ ảnh và log
TZ=Asia/Ho_Chi_Minh

# Ghim bản ổn định mới nhất (hoặc pin cứng như v3.0.3 nếu muốn kiểm soát update)
IMMICH_VERSION=release

Riêng DB_PASSWORD: đổi ngay dù chỉ dùng trong mạng LAN — mặc định là "postgres", để nguyên chẳng khác gì không khoá cửa. Còn DB_DATA_LOCATION nhớ trỏ vào ổ nội bộ (volume1), tuyệt đối đừng để trên thư mục mạng (SMB/NFS) — Postgres sẽ hỏng dữ liệu.

Bước 4 — Tạo Project trong Container Manager

Mở Container Manager → Project → Create. Đặt Project nameimmich, ở Path bấm "Set Path" trỏ tới thư mục /volume1/docker/immich-app (nơi chứa docker-compose.yml và .env). Ở Source chọn "Use existing docker-compose.yml" để DSM tự đọc file có sẵn:

Hộp thoại Create Project trong Container Manager của Synology, đặt tên immich

Bấm Next → Next → Done, Container Manager sẽ kéo về 4 image (immich-server, machine-learning, postgres kèm VectorChord, và valkey). Lần đầu tải khoảng ~2GB nên hãy pha ly cà phê; những lần cập nhật sau chỉ tải phần thay đổi nên nhanh hơn nhiều.

Bước 5 — Kiểm tra 4 container đã chạy

Build xong, qua tab Container. Điều bạn muốn thấy: cả 4 container immich_server, immich_machine_learning, immich_postgres, immich_redis đều sáng đèn xanh và không restart liên tục:

4 container Immich đang chạy xanh trong Container Manager: server, machine-learning, postgres, redis

Ở tab Overview, Container Manager cũng báo gọn "All services are healthy". Đây chính là khoảnh khắc Immich thật sự đang sống trên con NAS của bạn:

Container Manager báo tất cả dịch vụ Immich khoẻ mạnh, 4 container healthy

Nếu immich_server khởi động hơi lâu ở lần đầu, đừng hoảng — nó đang import ~227.000 điểm dữ liệu địa lý cho tính năng bản đồ. Xem log thấy dòng "geodata records imported" là bình thường.

Bước 6 — Mở Firewall (chỗ 90% người mới vấp)

Đây là bước quyết định bạn có vào được Immich hay không, và cũng là lỗi phổ biến nhất khi mới cài. Nếu bạn có bật Firewall trên DSM (Control Panel → Security → Firewall), phải thêm rule cho phép cổng 2283 (cổng mặc định của immich-server). Thiếu rule này, container vẫn chạy ngon (đèn xanh, log sạch tinh) nhưng trình duyệt cứ quay mãi không vào — câu than "rõ ràng nó đang chạy mà sao không vào được" là kinh điển của mục này.

Bước 7 — Tạo tài khoản admin

Mở trình duyệt gõ http://[IP-NAS]:2283. Lần đầu vào bạn sẽ gặp màn hình chào và nút "Bắt đầu":

Màn hình chào mừng lần đầu của Immich trên web, nút Bắt đầu

Bấm vào, điền email + mật khẩu để tạo tài khoản Quản trị viên (người dùng đầu tiên mặc định là admin, chịu trách nhiệm quản lý cả hệ thống và có thể thêm tài khoản cho người nhà sau này):

Màn hình đăng ký tài khoản Quản trị viên đầu tiên của Immich

Đăng nhập xong là vào thẳng dashboard. Tới đây phần NAS coi như xong — giờ tới phần vui nhất: biến điện thoại thành máy tự động đổ ảnh về NAS.

Cài app điện thoại & bật tự động sao lưu

Đây mới là thứ khiến Immich "thay" được Google Photos: cứ chụp là ảnh tự chảy về NAS. Tải app Immich trên Google Play hoặc App Store (Android có thể lấy APK chính chủ ở GitHub Releases). Mở app lên, việc đầu tiên là nhập địa chỉ server — chính là URL ở bước 7, dạng http://[IP-NAS]:2283:

Màn hình nhập địa chỉ server trên app Immich điện thoại

Nhập xong bấm Next, đăng nhập bằng email/mật khẩu vừa tạo, và cấp quyền cho app truy cập ảnh. Ngay lập tức bạn thấy timeline giống hệt bản web — vì cùng một server:

Giao diện timeline trên app Immich điện thoại, tiếng Việt

Giờ vào phần Sao lưu (biểu tượng đám mây ở góc trên). Bấm Chọn để chọn album cần đồng bộ — thường là Camera, nơi chứa ảnh chụp:

Chọn album Camera để sao lưu trong app Immich

Chọn xong quay lại, app hiện bảng thống kê rất trực quan: tổng số ảnh, đã sao lưu bao nhiêu, còn lại bao nhiêu. Gạt công tắc Bật sao lưu là nó bắt đầu đổ ảnh lên NAS:

Bảng điều khiển sao lưu Immich: tổng cộng, đã sao lưu, còn lại

Đợi một chút, cột "Còn lại" về 0 nghĩa là toàn bộ ảnh đã nằm an toàn trên NAS. App còn nhắc bạn bật thông báo và tắt tiết kiệm pin để việc sao lưu nền chạy đều:

Sao lưu hoàn tất trong app Immich, còn lại 0 tài nguyên

Cuối cùng, vào Tùy chọn sao lưu để tinh chỉnh cho hợp túi tiền data: mặc định app chỉ sao lưu qua Wi-Fi (rất hợp lý), bạn có thể bật thêm sao lưu qua 4G, chỉ chạy khi đang sạc, hay đặt độ trễ. Đây là chỗ giúp bạn không bị "bay" hết data 4G vì lỡ quay một clip 4K:

Tùy chọn sao lưu Immich: chỉ Wi-Fi, chạy nền, khi đang sạc

Từ giờ, cứ chụp ảnh là vài phút sau nó xuất hiện trên NAS. Bạn có thể yên tâm xoá ảnh trên điện thoại cho nhẹ máy — ảnh gốc đã nằm ở nhà.

Bật AI: tìm ảnh bằng chữ & nhận diện khuôn mặt

Hai tính năng "ăn tiền" nhất của Immich — Smart Search và nhận diện khuôn mặt — đều do container machine-learning lo, và mặc định đã bật sẵn. Bạn chỉ cần đợi hệ thống quét xong thư viện lần đầu (thư viện càng lớn càng lâu). Muốn kiểm tra hoặc chỉnh, vào Administration → Settings:

Trang cài đặt quản trị hệ thống của Immich, tiếng Việt

Trong phần cài đặt Machine Learning bạn có thể đổi model, bật/tắt nhận diện khuôn mặt, chỉnh ngưỡng gom cụm. Với máy yếu, đây cũng là nơi bạn tắt bớt AI cho nhẹ nếu chỉ cần xem ảnh theo album/thời gian. Muốn "châm" cho nó quét lại, vào tab Hàng đợi tác vụ và bấm chạy Smart Search / Face Detection.

Cách kiểm tra AI đã chạy đúng: lên bản web, gõ đại một từ mô tả ("phở", "biển", "mèo") ở ô tìm kiếm. Ra đúng ảnh nghĩa là machine learning đã làm việc thật, chứ không phải chỉ "làm màu" trong log.

Album & chia sẻ: khoe ảnh mà không cần ai tải app

Gom ảnh chuyến đi vào một album, rồi tạo link chia sẻ — người nhận chỉ cần mở link trên trình duyệt là xem được cả album, không cần tài khoản Immich, không cần cài gì. Bạn đặt được mật khẩu, hạn dùng, cho phép tải về hay không:

Một album ảnh chuyến đi trong Immich, sẵn sàng chia sẻ bằng link

Lỗi thường gặp (và cách thoát)

  • Container chạy nhưng không vào được từ trình duyệt/app. 90% là thiếu rule Firewall cho cổng 2283. Kiểm tra Control Panel → Security → Firewall. (Một số máy còn dính chuyện subnet Docker đổi sau mỗi lần rebuild — nếu bạn tạo rule theo IP container thì nên cố định subnet trong compose để rule khỏi vỡ.)
  • Permission denied, container không ghi được vào volume. Synology mặc định khá chặt về phân quyền folder. Vào Control Panel → User & Group, cấp quyền Read/Write cho user chạy Docker vào thư mục docker/immich-app.
  • Máy yếu, machine learning quét ì ạch. Thư viện vài chục nghìn ảnh có thể mất nhiều ngày để quét lần đầu trên máy entry-level. Cứ để nó chạy nền; hoặc tắt bớt AI nếu không cần.
  • Update báo lỗi "invalid upgrade path". Immich đôi khi có bước migration database (ví dụ chuyển từ pgvecto.rs sang VectorChord). Luôn snapshot/backup thư mục postgres trước khi update và đọc kỹ Upgrade Guide — đừng nhảy cóc nhiều version một lúc.
  • Đổi UPLOAD_LOCATION sau khi đã có dữ liệu. Database lưu đường dẫn cũ, đổi path là dính lỗi "inconsistent media location". Đặt đúng ngay từ đầu, sau này đừng đổi nếu không thật sự cần và biết cách migrate.

Điều quan trọng nhất: Immich KHÔNG phải là backup

Đây là chỗ mình muốn hét vào tai bạn. Immich lưu ảnh local hoàn toàn — không có bản sao cloud miễn phí âm thầm chạy nền như Google. Nghĩa là: NAS hỏng mà không có backup thì mất trắng cả thư viện. Và ổ cứng nào rồi cũng có ngày dở chứng, chỉ là chưa biết ngày nào.

Sơ đồ quy tắc 3-2-1: Immich trên NAS cần snapshot chống xoá nhầm và Hyper Backup ra ngoài

Chiến lược an toàn tối thiểu cho thư mục docker/immich-app:

  • Snapshot Btrfs — chống xoá nhầm và ransomware, khôi phục trong vài phút. Nhưng snapshot vẫn nằm trên chính con NAS đó, nên chưa đủ.
  • Hyper Backup ra ngoài — đẩy dữ liệu ra USB, NAS khác, hoặc cloud (Backblaze B2, Wasabi...). Đây mới là backup thật sự, phòng khi NAS chết hẳn hoặc cháy nhà.

Cả hai gộp lại chính là tinh thần quy tắc 3-2-1 : 3 bản sao, 2 loại lưu trữ, 1 bản ở nơi khác. Đừng để "đã tự host cho an toàn" trở thành "mất sạch vì tưởng đã an toàn".

Về bảo mật: đừng bao giờ mở thẳng cổng 2283 ra Internet. Muốn xem ảnh khi ra ngoài, đi qua reverse proxy có HTTPS (Application Portal của DSM hoặc Nginx Proxy Manager) — xem bài cấu hình SSL cho Synology — hoặc gọn hơn là dùng Tailscale/VPN để chỉ mình bạn truy cập được. Cổng trần không mã hoá ra Internet chẳng khác nào để cửa mở mời trộm.

Kết luận: ảnh của bạn, ở lại nhà bạn

Cài Immich trên Synology không khó như vẻ ngoài "4 container, compose, firewall" của nó. Tóm lại đường đi: tạo thư mục → sửa .env → tạo Project trong Container Manager → mở firewall 2283 → tạo tài khoản admin → cài app điện thoại bật auto-backup. Đổi lại vài buổi tối vọc vạch, bạn có một "Google Photos của riêng mình" — không giới hạn dung lượng, không hoá đơn hàng tháng, và không ai đụng vào ký ức gia đình bạn.

Chỉ cần nhớ một điều duy nhất kẻo mất trắng: bật backup ra ngoài cho thư mục Immich. Còn nếu bạn mới bắt đầu với NAS, ghé lộ trình A–Z cho người mới để đi từ gốc, hoặc xem thêm Nextcloud nếu muốn cả kho file lẫn ảnh trong một nhà.

Mua NAS chính hãng

Xem tất cả →

Thiết bị NAS Synology & ổ cứng chính hãng Nhật Bản — tư vấn cấu hình, lắp đặt và bảo hành. Mua qua Shopee, giao toàn quốc.

No comments yet