Language: vi
Immich: tạo đám mây riêng cho ảnh và video trên VPS
Immich là dịch vụ tự lưu trữ ảnh và video, có thể tự động tải tệp lên. Dịch vụ cung cấp ứng dụng di động, giao diện web, album, tìm kiếm thông minh và nhận diện khuôn mặt, trong khi thư viện vẫn nằm trên máy chủ do bạn lựa chọn.
Dưới đây chúng ta sẽ tìm hiểu yêu cầu của Immich, cách cài đặt trên Ubuntu bằng Docker Compose, thiết lập HTTPS, kết nối điện thoại và sao lưu ra bên ngoài.
Immich trong sáu bước
- Tạo VPS Linux có đủ RAM và dung lượng đĩa.
- Trỏ một tên miền phụ, chẳng hạn
photos.example.com, đến địa chỉ IP của máy chủ. - Cài Docker và tải cấu hình Immich chính thức.
- Chỉ định đường dẫn thư viện phương tiện và cơ sở dữ liệu, sau đó khởi động các container.
- Đóng cổng nội bộ và bật HTTPS.
- Cài ứng dụng di động và cấu hình bản sao lưu bên ngoài.
Immich là gì?
Immich là ứng dụng mã nguồn mở để quản lý thư viện ảnh và video của riêng bạn. Ảnh xuất hiện trên dòng thời gian, có thể được gom vào album, tìm qua chức năng tìm kiếm và tự động tải từ điện thoại lên máy chủ.
Khác biệt chính so với dịch vụ ảnh đám mây thông thường là bạn kiểm soát phần máy chủ. Tệp được lưu trên VPS hoặc máy chủ gia đình, nhưng chủ sở hữu phải chịu trách nhiệm về dung lượng trống, cập nhật, bảo mật và sao lưu.
| Tham số | Dịch vụ ảnh đám mây | Immich |
|---|---|---|
| Nơi lưu tệp | Hạ tầng của nhà cung cấp | Máy chủ của bạn |
| Bảo trì | Nhà cung cấp xử lý | Chủ sở hữu xử lý |
| Chi phí | Gói tính theo dung lượng | VPS, dung lượng đĩa và sao lưu |
Immich không tự thay thế một bản sao lưu. Nếu ảnh chỉ tồn tại trên một VPS, lỗi đĩa hoặc xóa nhầm vẫn có thể phá hủy kho lưu trữ.
Các tính năng chính của Immich
- Tự động tải lên. Ứng dụng Android và iOS tải ảnh, video từ các album đã chọn. Wi-Fi được dùng theo mặc định, còn những tệp đã tồn tại sẽ được bỏ qua dựa trên checksum.
- Tìm kiếm thông minh. Dịch vụ có thể tìm theo người, địa điểm, ngày, camera, văn bản trong ảnh và mô tả nội dung. Các khuôn mặt được nhóm lại rồi bạn có thể gán tên.
- Album và chia sẻ. Immich hỗ trợ nhiều người dùng, album dùng chung, chia sẻ với người đồng hành và liên kết công khai có mật khẩu cùng ngày hết hạn.
- Bản đồ và siêu dữ liệu. Immich đọc dữ liệu EXIF, hiển thị nơi chụp ảnh, tạo kỷ niệm và hỗ trợ mục yêu thích, kho lưu trữ cùng thư viện bên ngoài.
Machine learning tạo tải lớn nhất lên CPU và RAM trong lần nhập đầu tiên. Sau khi thumbnail và chỉ mục được tạo, mức sử dụng tài nguyên hằng ngày thường thấp hơn.
Yêu cầu máy chủ Immich
Yêu cầu chính thức cho các phiên bản hiện tại:
- hệ thống Linux hoặc Unix-like 64-bit;
- ít nhất 2 lõi CPU, khuyến nghị 4 lõi;
- ít nhất 6 GB RAM, khuyến nghị 8 GB;
- Docker Engine với plugin
docker compose; - SSD cục bộ cho cơ sở dữ liệu PostgreSQL;
- dung lượng cho tệp gốc, thumbnail và video đã chuyển mã.
Immich có thể chạy trên máy chủ 4 GB RAM nếu tắt các tính năng machine learning. Để nhận diện khuôn mặt và tìm kiếm thông minh, nên chọn 8 GB ngay từ đầu.
Thumbnail và tệp đã chuyển mã làm tăng trung bình 10–20% dung lượng thư viện phương tiện. Với kho lưu trữ 200 GB, hãy dành ít nhất 240–260 GB. Thư mục cơ sở dữ liệu DB_DATA_LOCATION nên nằm trên SSD cục bộ, không phải ổ mạng.
Cấu hình khởi điểm thực tế là 4 vCPU, 8 GB RAM, Ubuntu 24.04 LTS và SSD có dung lượng lớn hơn thư viện gốc 20–30%. Không bắt buộc phải có card đồ họa riêng, dù nó có thể tăng tốc xử lý kho lưu trữ lớn.
Cách cài Immich trên VPS
Ví dụ này sử dụng Ubuntu 24.04 và tên miền phụ photos.example.com.
1. Cấu hình DNS và chuẩn bị Ubuntu
Tạo bản ghi DNS A trỏ đến địa chỉ IPv4 của VPS. Sau đó kết nối qua SSH:
ssh root@SERVER_IP
apt update && apt upgrade -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enableKhông đóng phiên SSH hiện tại cho đến khi bạn xác nhận kết nối mới hoạt động.
2. Cài Docker và Docker Compose
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
apt update
apt install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
docker compose versionHãy dùng đúng lệnh docker compose: lệnh cũ docker-compose không còn được dự án hỗ trợ.
3. Tải và cấu hình Immich
mkdir -p /opt/immich /srv/immich-data
cd /opt/immich
curl -L -o docker-compose.yml \
https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
curl -L -o .env \
https://github.com/immich-app/immich/releases/latest/download/example.envMở tệp:
nano /opt/immich/.envThay đổi các tham số chính:
UPLOAD_LOCATION=/srv/immich-data
DB_DATA_LOCATION=/opt/immich/postgres
TZ=Europe/Berlin
DB_PASSWORD=REPLACE_WITH_A_LONG_PASSWORDNhập múi giờ của bạn. Mật khẩu PostgreSQL nên chỉ gồm chữ cái Latin và chữ số; lệnh openssl rand -hex 24 sẽ tạo một giá trị ngẫu nhiên. Giữ nguyên các dòng khác như trong tệp example.env hiện tại.
4. Đóng cổng nội bộ và khởi động container
Trong docker-compose.yml, tìm cổng của dịch vụ immich-server:
ports:
- '2283:2283'Thay bằng:
ports:
- '127.0.0.1:2283:2283'Giờ đây cổng chỉ có thể truy cập từ chính VPS. Khởi động dịch vụ:
cd /opt/immich
docker compose up -d
docker compose psĐể chẩn đoán, dùng docker compose logs --tail=200.
5. Bật HTTPS bằng Caddy
apt install -y caddy
cat > /etc/caddy/Caddyfile <<'EOF'
photos.example.com {
reverse_proxy 127.0.0.1:2283
}
EOF
caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddyCaddy sẽ tự động yêu cầu chứng chỉ nếu DNS trỏ đến VPS và các cổng 80, 443 có thể truy cập. Immich phải chạy ở gốc của tên miền hoặc tên miền phụ; địa chỉ như example.com/immich không được hỗ trợ.
6. Tạo quản trị viên và kết nối điện thoại
Mở https://photos.example.com. Người dùng đăng ký đầu tiên trở thành quản trị viên và có thể tạo thêm tài khoản.
Cài Immich từ App Store hoặc Google Play. Trên màn hình đăng nhập, nhập địa chỉ không có /api:
https://photos.example.comChọn các album và bật sao lưu. Lần nhập đầu tiên có thể mất thời gian: máy chủ tạo thumbnail, nhận diện khuôn mặt, lập chỉ mục dữ liệu tìm kiếm và xử lý video.
Cập nhật Immich
Trước khi cập nhật, hãy đọc ghi chú phát hành, đặc biệt khi chuyển sang phiên bản chính mới:
cd /opt/immich
docker compose pull
docker compose up -d
docker image pruneCập nhật ứng dụng di động trước, sau đó cập nhật máy chủ. Việc đưa cơ sở dữ liệu trở lại phiên bản cũ có thể không được hỗ trợ nếu không có hướng dẫn riêng.
Sao lưu Immich
Immich tự động tạo bản dump PostgreSQL, nhưng chúng chỉ chứa cơ sở dữ liệu và siêu dữ liệu, không có ảnh và video. Để khôi phục đầy đủ, hãy lưu:
- toàn bộ thư mục
/srv/immich-data; /opt/immich/.envvàdocker-compose.yml;- cấu hình Caddy.
Bản sao trên cùng VPS không bảo vệ bạn trước lỗi đĩa hoặc việc máy chủ bị xóa. Gửi dữ liệu sang máy chủ, NAS hoặc bộ nhớ đối tượng riêng và áp dụng chiến lược sao lưu 3-2-1. Định kỳ thử khôi phục thay vì chỉ kiểm tra xem các tệp sao lưu có tồn tại hay không.
Chọn VPS nào cho Immich?
Để dùng đầy đủ tính năng nhận diện khuôn mặt và tìm kiếm thông minh, nên chọn VPS có ít nhất 4 vCPU và 8 GB RAM. Tính kích thước đĩa dựa trên thư viện phương tiện, cộng thêm dung lượng cho thumbnail, video và sự phát triển của kho lưu trữ.
VPS Linux từ tropic.host có IP tĩnh và bộ nhớ SSD phù hợp cho công việc này. Bạn có thể bắt đầu với cấu hình 8 GB RAM rồi tăng tài nguyên khi thư viện lớn lên. Giữ cơ sở dữ liệu PostgreSQL trên đĩa cục bộ nhanh và đặt bản sao lưu bên ngoài VPS này.
VPS thuận tiện để truy cập suốt ngày đêm từ mọi mạng. Với kho lưu trữ vài terabyte, máy chủ gia đình có thể rẻ hơn, nhưng bạn sẽ phải tự lo điện, truy cập bên ngoài và khả năng dự phòng.
Hạn chế của Immich
Tự lưu trữ không đảm bảo độ tin cậy. Mật khẩu yếu, mở cổng 2283, container lỗi thời hoặc không có bản sao lưu bên ngoài đều tạo ra nguy cơ mất dữ liệu.
Immich cũng không phải bản sao chính xác của Google Photos hay iCloud: khả năng chỉnh sửa và đồng bộ nền khác nhau, còn tốc độ phân tích phụ thuộc vào phần cứng. Trước khi chuyển kho lưu trữ duy nhất, hãy thử dịch vụ với một thư viện nhỏ.
Kết luận
Immich cho phép bạn tạo thư viện ảnh riêng với tải lên từ điện thoại, album, nhận diện khuôn mặt, tìm kiếm và chia sẻ. Với phiên bản hiện tại, nên chuẩn bị VPS Linux 4 lõi, 8 GB RAM và SSD có ít nhất 20–30% dung lượng dự phòng.
Sau khi cài đặt, hãy cấu hình HTTPS, cập nhật và sao lưu bên ngoài thư mục phương tiện cùng cơ sở dữ liệu. Chính bản sao lưu — chứ không phải riêng việc tự lưu trữ — mới bảo vệ ảnh khỏi bị mất.
FAQ
Immich có miễn phí không?
Máy chủ Immich là mã nguồn mở và có thể chạy mà không cần gói đăng ký bắt buộc. Bạn vẫn phải trả tiền cho VPS, tên miền, dung lượng đĩa và bản sao lưu.
Immich cần bao nhiêu RAM?
Mức tối thiểu chính thức là 6 GB RAM, còn 8 GB được khuyến nghị. Với 4 GB, bạn sẽ phải tắt machine learning.
Có thể cài Immich mà không cần tên miền không?
Về kỹ thuật là có, nhưng để truy cập lâu dài từ điện thoại, tốt hơn nên dùng tên miền và HTTPS. Cách này bảo vệ quá trình xác thực và truyền tệp.
Immich có thay thế được bản sao lưu ảnh không?
Không. Hãy sao chép riêng thư viện phương tiện và cơ sở dữ liệu sang thiết bị hoặc địa điểm khác.
Có thể di chuyển kho ảnh hiện có không?
Có. Tệp có thể được tải qua giao diện web hoặc CLI, hoặc bạn có thể kết nối một thư mục dưới dạng thư viện bên ngoài. Hãy sao chép dữ liệu nguồn trước khi nhập với quy mô lớn.
